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 checklist 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 Checklist is created
  • when a Checklist is completed

Note: You must be on a Paid Plan and be a Process Street administrator in order to set-up webhooks.

Setting up Webhooks

Under the Organization Manager, go to the new Integrations Tab. 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 template. Then choose which webhooks you would like to send.

Technical information

Here is some example outputs and the object structure to help you get started:

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

 

Checklist notification

Checklist created/completed event will send Checklist 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 – Checklist or Task
    type: String – type of a trigger that fired notification, one of:

  • TaskCheckedUnchecked
  • ChecklistCreated
  • ChecklistCompleted

Checklist

    id: String
    name: String – checklist name
    audit: AuditMetadata – info about modifications
    completedDate: Option[DateTime] – checklist completion date (optional)
    completedBy: Option[User] – user which completed the checklist (optional)
    template: Template – checklist template
    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 Checklist)

    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)

Template

    id: String
    name: String – template name

User

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

 

Was this article helpful?