Help center      Automations & Integrations  
   Webhooks

Webhooks

Updated October 13, 2022

Webhooks are event-driven messages sent from one app to another. The messages contain a payload that you can exploit to pass or receive data into or out of Process Street.

You can use outgoing webhooks to keep your other tools notified about the status of a workflow run or task in Process Street, or use incoming webhooks (webhook triggers) to run a workflow automatically when something happens in another app.

Users: You must be an Administrator or a Full Member with edit permissions in order to set up Webhook Triggers. Outgoing webhooks can only be created by Admins.

Webhook Triggers

You can use Process Street’s webhook triggers to listen for event-driven triggers in other apps, to run a workflow in Process Street.

For example, run a workflow when a candidate is marked as hired in People HR, when supplier details change in Hubspot or when a new task is added in Asana.

Check your form fields

Be sure to have form fields set up and ready to capture data from your webhook trigger. For example, Employee First name, Employee Last name, Date of contract, Salary etc.

Setting up a Webhook Trigger

Start by editing the workflow you’d like to set up the webhook trigger on.

Click Triggers to open the setup modal, as shown below.

Search for the app you’d like to connect to and give it a name.

Note: You can also set up a custom webhook for any app you’d like. Type webhook into the search box to set this up.

For additional guidance, each of the apps has a link to a help document for webhooks inside the set-up modal.

Note: If your app gives you options for payload content type, be sure to select JSON format.

Click to Copy your webhook URL.

Next, select the event you’d like to use as the trigger. Some apps only have one option, in which case, select default as shown above.

Click See Payload to check what data comes in from your chosen webhook.

Now you can map the fields from the webhook to form fields in your workflow. The webhook fields are automatically created for you. All you need to do is map them to your Process Street form fields.

When you’re done mapping fields, turn on the webhook with the toggle switch and click Save to finish.

Now each time the event occurs in your other app, a workflow will be run in Process Street.

Webhook Trigger FAQ’s

Why isn’t my workflow running?

You may not have completed the setup for the webhook. If you see an orange warning sign like the one below, click the app’s name to complete the setup. Turn on the trigger and click Save to finish setting it up.

I don’t see the app I want to use in the list

We will be adding more apps to the list over time, but please contact our support team to request the app you’d like to use. Alternatively, you can use the other third-party tools shown in the setup modal to run your workflow.

Outgoing Webhooks

Outgoing webhooks send event-driven triggers from Process Street to other apps.

These are the webhooks available that can be used to notify another service:

  • When tasks are checked/unchecked
  • When a workflow run is created
  • When a workflow run is completed
  • When a task is ready to be checked
  • When a task is approved
  • When a task is rejected

Setting up Outgoing Webhooks

Click your profile picture in the upper right corner of your screen, then click “Settings” to access your organization management area. Then navigate to the Integrations tab.

You can define up to 50 webhooks by clicking on “+New Webhook” button and then pasting the URL of your other service:

You can also configure notifications for a specific workflow. Then choose which webhooks you would like to send.

When does the “When tasks are ready to be checked” webhook get sent?

It will trigger in the following cases:

  • When a workflow run starts, it will fire for each task that is not stopped, is not hidden, and is approvable (if it’s an Approval Task)
  • When a task is shown by a conditional logic rule
  • When a task is unstopped
  • When a task becomes approvable (i.e. when all tasks the Approval Task is approving have been submitted for approval)

It will not trigger if any of these things happen from updating a workflow run to a new version.

Technical information

Here are some example outputs and the object structure to help you get started.

The webhook will POST data in JSON with ISO-8601 date format.

Task webhook event

When a task in an approval is checked/unchecked or ready, the webhook event sent will have a payload like this:

{
    "id": "h9tahaTXnCcdyMq54lVF8A",
     "createdDate": "2019-09-03T12:10:19.483+02:00",
    "data": {
          "id": "n97r3Z9bZClSK95H7shJ5g",
          "status": "NotCompleted",
          "stopped": false,
          "hidden": false,
          "name": "task-template"
    },
    "type": "TaskCheckedUnchecked"
}

Workflow run webhook event

When a workflow is run or completed the webhook event sent will have a payload like this:

{
     "id": "tzyOoBrkWCY4UDbTBUJF5Q",
     "createdDate": "2019-09-03T12:52:51.379+02:00",
     "data": {
           "id": "j1BEuA4W5vRS8r3NLZhHwA",
          "name": "gk7SwJBFpT",
          "audit": {
               "createdDate": "2019-09-03T12:52:51.373+02:00",
               "createdBy": {
                    "id": "rBWE5QaTqiYm35DdQJ5BTg",
                   "email": "[email protected]"
          },
          "updatedDate": "2019-09-03T12:52:51.373+02:00",
          "updatedBy": {
               "id": "rBWE5QaTqiYm35DdQJ5BTg",
               "email": "[email protected]"
          }
      },
     "template": {
          "id": "mv6Ndy6mHPC4pIsX3lhPUQ",
          "name": "template name"
     },
     "formFields": [],
     "tasks": [{
          "id": "myOIwmUxm3yYoTxYGTNMFw",
          "status": "NotCompleted",
          "stopped": false,
          "hidden": false,
          "name": "task-template"
      }]
     },
     "type": "ChecklistCreated"
}

Approval webhook event

When a task in an approval is approved/rejected the webhook event sent will have a payload like this:

{
  "createdDate": "2022-08-18T11:31:02.423+02:00",
  "data": {
    "reviewedBy": {
      "id": "hB-0X_ZeGUMZq1wyA4tLow",
      "email": "[email protected]",
      "username": "Selina Kyle"
    },
    "status": "Rejected",
    "comment": "This is an optional comment",
    "task": {
      "id": "qg3Pw3XzudoaO6jS5qJBYw",
      "updatedDate": "2022-08-18T11:31:02.283+02:00",
      "updatedBy": {
        "id": "hB-0X_ZeGUMZq1wyA4tLow",
        "email": "[email protected]",
        "username": "Bruce Wayne"
      },
      "taskTemplateGroupId": "trZhT-P4L_-lEEEMPVZKQA",
      "taskType": "Standard",
      "status": "NotCompleted",
      "stopped": false,
      "hidden": false,
      "name": "Wayne Manor Repair Quote",
      "formFields": [],
      "checklist": {
        "id": "gkiJgjs4G9MhPOJT0uFM4w",
        "name": "Daily Tasks"
      }
    }
  },
  "id": "jLcCrgeckFtw1jsX_ZVPtg",
  "type": "TaskRejected"
}

Object structure

Dates are stringified to ISO8601 format (yyyy-MM-ddTHH:mm:ss.SSSZZ).

Boolean is one of: true, false.

Event (notification sent to the webhook)

    id: String
    createdDate: DateTime
    data: WebhookEventData – Workflow run or Task
    type: String – type of a trigger that fired notification, one of:

  • TaskCheckedUnchecked
  • ChecklistCreated
  • ChecklistCompleted

Workflow run

    id: String
    name: String – workflow run name
    audit: AuditMetadata – info about modifications
    completedDate: Option[DateTime] – workflow run completion date (optional)
    completedBy: Option[User] – user which completed the workflow run (optional)
    template: Template – workflow
    formFields: List[FormField] – list of form fields
    tasks: List[Task] – list of tasks

Task

    id: String
    completedDate: Option[DateTime] – task completion date (optional)
   
completedBy: Option[User] – user who completed the task (optional)
    status: String – one of:

  • Completed
  • NotCompleted

    dueDate: Option[DateTime] – task due date (optional)
    stopped: Boolean – is task stopped from completion
    hidden: Boolean – is task hidden by conditional logic
    name: String – task name

AuditMetadata

    createdDate: DateTime – creation date
    createdBy: User – user who created the item
    updatedDate: DateTime – date of last update
    updatedBy: User – user who updated the item

FormField (editable form fields in a workflow run)

    id: String
    updatedDate: DateTime – date of last update
    updatedBy: Option[User] – user who updated the item (optional)
    label: String – field’s name
    type: String – type of form field, can be one of:

  • MultiSelect
  • MultiChoice
  • Text
  • Textarea
  • Date
  • Hidden
  • Select
  • File
  • Email
  • Url
  • Member

    value: Option[String] – stringified field’s value (optional)

Workflow

    id: String
    name: String – template name

User

    id: String
    email: String – user’s primary email

IP addresses used

There is no specific IP address used when sending webhooks, but it will always be an AWS IP address.


 

Discover Process Street

Use Process Street to make your team processes fun, fast and faultless. We'll help you transform your team's static checklists into powerful interactive workflows!

Learn more about Process Street

YouTube videos
Deep dive into Process Street with our YouTube video series.
Join a webinar
Effectively record, replicate, and replace your workflow!
See latest releases
Catch up on the latest releases and enhancements.
Join the community
Share with others about how you are using the app day to day.

Take control of your workflows today.

Process Street