Webhooks

Webhooks are a way that apps can send automated messages or information directly to other apps. This can be useful to keep your other tools notified about the status of a workflow run or task in Process Street.

There are currently three 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

Plan: Webhooks are available on Pro and Enterprise plans

Users: You must be an Administrator in order to set up webhooks.

Setting up 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, shown below.

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

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

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 notification

Task checked/unchecked event will send Task notification. Example data:

{
    “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 notification

When a workflow is run/completed event will send a workflow run notification. Example data:

{
     “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”
}

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.


 

Was this article helpful?

Related Articles