Save as PDF

Creating and Executing Webhooks for Responsive

Overview

Contact support@responsive.io to access this feature or request enablement.

A webhook is an automated message sent from apps to a unique URL when a specified event occurs, enabling communication between two web applications. These user-defined callbacks over HTTP include a message or payload. The format is usually JSON and the request is done via an HTTP POST method.

With Responsive webhooks, you can send HTTP requests to a URL that you’ve configured whenever an event or action occurs in Responsive. Webhooks work with Responsive APIs to provide two-way communication between Responsive and other applications.

You want a notification sent to your custom application whenever a project is created in Responsive, and/or a notification sent whenever a Q&A pair is deleted from the Content Library.

Creating a Webhook

To create a webhook, perform the following steps:

  1. Go to Organization Settings > Integrations > Collaboration, then click Configure associated with Webhook.
  2. Click Add Instance.
  3. Enter the webhook’s details.
    • Name: The webhook’s name (required)
    • Description: A description of the webhook
    • URL: The destination of the messages sent by the webhook (required)
    • Optional Request Headers: The parameter name and parameter value for the authorization request headers. Click the plus icon to add more request headers.
      Click Hide to hide these fields.
    • Events: The events that will trigger a message to the specified destination URL (required).
      Note: Valid events are listed below.
  4. Click Send Test Webhook to send a test event to the URL using the values in the Optional Operational Headers fields to provide authorization information.
    • If the test event is successful, a success toast message will be displayed.
    • If the test event fails, an error toast message will be displayed.
  5. Click Submit.
  6. After the webhook has been added successfully, it will appear on the list of available webhooks. Click the Edit icon to edit the webhook, and the Trash icon to delete it, if necessary.

Valid Webhook Events

You can set up the following in Responsive as events that will trigger a corresponding webhook message.

Event Description
Section-Related Events:
SECTION_COMPLETED Completing a section in a project triggers this event.
Project-Related Events:
PROJECT_CREATED Creating a project triggers this event.
PROJECT_EDITED Editing project metadata triggers this event.
PROJECT_COMPLETED Marking a project as complete triggers this event.
PROJECT_ARCHIVED Archiving a project triggers this event.
PROJECT_DELETED Moving a project to the trash or deleting it permanently triggers this event.
Answer Library-Related Events:
ANSWER_LIB_CREATED Saving a Q&A pair to the Answer Library or the first time triggers this event.
ANSWER_LIB_UPDATED Changing a Q&A pair or publishing a pair in Answer Library Moderation triggers this event. Changing answers during Answer Library Moderation and Review also triggers this event.
ANSWER_LIB_DELETED Deleting a Q&A pair triggers this event.
Intake Related Events:
INTAKE_CREATED Creating an Intake triggers this event.

Executing a Webhook

After an event occurs in the Responsive, the webhook will send a request with JSON callback to the URL which is configured at the time of creation.

Each JSON callback contains the following:

Response Description
EVENT_ID EVENT_ID(String). Event ID will start with EVT- followed by unique ID.
EVENT_TYPE EVENT_TYPE(String). Event that triggers the webhook.
ENTITY_ID ENTITY_ID(Array[String]). List of entity IDs
ENTITY_TYPE ENTITY_TYPE(String). Type of entity (SECTION, PROJECT, ANSWER_LIBRARY)
PERFORMED_BY PERFORMED_BY(String). Email of the user who performed the event.
PERFORMED_AT PERFORMED_AT(Date-Time). Date-Time of the event happened.

Callbacks may have additional information, depending on the type of event associated with it.

Sample Callback for a Test Event

{
  "EVENT_ID": "EVT-60ae7adb1b3cb967a6450f9c",
  "EVENT_TYPE": "TEST",
  "PERFORMED_BY": "john@responsive.io",
  "PERFORMED_AT": "2021-05-26 12:44:11 PST"
}

 

Sample Callback for a Project-Related Event

{
 "EVENT_ID": "EVT-60adfdb750b58a0c2d78bdd8",
 "EVENT_TYPE": "PROJECT_EDITED",
 "ENTITY_ID": [
   "5dd51ea63f3dad73ab0a344b"
 ],
 "ENTITY_TYPE": "PROJECT",
 "PERFORMED_BY": "john@responsive.io",
 "PERFORMED_AT": "2021-05-26 00:50:15 PDT"
}

 

Sample Callback for an Answer Library-Related Event

{
 "EVENT_ID": "EVT-60adfdb750b58a0c1d78bed8",
 "EVENT_TYPE": "ANSWER_LIB_CREATED",
 "ENTITY_ID": [
   "5dd51ea63f3dad73ab0a344b",

    "5edc7dfe305d96661df0fc14"
 ],
 "ENTITY_TYPE": "ANSWER_LIBRARY",
 "PERFORMED_BY": "john@responsive.io",
 "PERFORMED_AT": "2021-05-26 00:52:15 PDT"
}

 

Sample Callback for a Intake-Related Event

{
"EVENT_ID": "EVT-60adfdb750b58a0c2d78bdd8",
"EVENT_TYPE": "INTAKE_CREATED",
"ENTITY_ID": [
"5dd51ea63f3dad73ab0a344b"
],
"ENTITY_TYPE": "INTAKE",
"PERFORMED_BY": "abc@responsive.io",
"PERFORMED_AT": "2023-03-26 00:50:15 PDT"
}

Was this article helpful?

/