Get Started with Webhooks

This feature is available on all plans.
Users with the manage integrations permission can access this page.

Webhooks allow your application to receive real-time notifications from your EasyContent account. One example of such notification is when a user submits a content item to the next workflow status or when a deadline is missed.

To utilize webhooks, you must create a small web application that will receive and process incoming HTTP requests. Once you have that setup, you're ready to get started!

Adding Your Webhook Endpoint URL

Go to the Integrations page and then scroll down to the Webhook endpoints section.

Click Add endpoint and input your webhook endpoint URL. Then, select the events you want this URL to receive.

Currently, you can select to receive the following events:

  • When a brief is claimed
  • When a content item's workflow status changed
  • When a deadline is missed
  • When a deadline changed
  • When a user is assigned to a content item
  • When a content item is marked as completed

Some things to keep in mind:

  • You can add as many endpoint URLs as you wish. Each one will have its own settings.
  • All endpoint URLs will receive events from all active projects under the account where it was added.
  • The same endpoint URL can be added to multiple accounts. If you have multiple accounts in EasyContent or a developer working with or offering services to multiple clients in EasyContent, you can use a single endpoint to receive notifications from all of them. Organizing the updates should be easy since each event includes the account name where it was sent from.

The following section will give you detailed information about the events that your endpoint URL will receive. Use this to help you customize your webhook endpoint URL so that it can better process the information it receives.

Events

When an event is triggered, the following data is sent to your endpoint. They all follow a similar structure and consist of three main fields:

  • type (string) - human-readable event identifier i.e. the type of event that occurred
    • Example: user_assigned_to_an_assignmentdeadline_changed
  • timeFired (integer) - Unix timestamp of when the event occurred
    • Example: 1601346649 (equivalent to 09/29/2020 @ 2:30 am [UTC])
  • data (object) - the event's data
    • JSON object containing all necessary information about the event

Brief Claimed

Your webhook endpoint URL will receive this notification when a brief is claimed by a user via the Briefs page.

This event will have a type of task_claimed.

Data

  • account (object) - the account where the event triggered
    • id (integer) - account ID
    • name (string) - account name (accountname.easycontent.io)
  • project (object) - the project where the event triggered
    • id (integer) - project ID
    • name (string) - project name
  • claimedBy (object) - the user who claimed the brief
    • id (integer) - user ID
    • name (string) - user name
  • id (integer) - claimed brief ID
  • template (object) - claimed brief template
    • id (integer) - template ID
    • name (string) - template name
  • categories (empty array or array of categories) - brief's categories, can be empty; each category is a single object with its own properties (ID and name)
    • category (object) - a single category
      • id (integer) - category ID
      • name (string) - category name
  • title (string) - claimed brief title
  • keywords (empty array or array of strings) - claimed brief keywords, can be empty
  • notes (string) - claimed brief description, can be empty

Workflow Status Changed

Your webhook endpoint URL will receive this notification when a content item's workflow status has changed.

This event will have a type of workflow_status_changed.

Triggers when:

  • One or more content items' workflow status is updated through the Content page via Actions Change status or through the edit content item page via the workflow status widget.
  • A content item is submitted to the next workflow status via the submit button or is sent back to a previous workflow status for a revision.
  • A content item's workflow status is updated in WordPress through the official plugin.

Data

  • account (object) - the account where the event triggered
    • id (integer) - account ID
    • name (string) - account name (accountname.easycontent.io)
  • project (object) - the project where the event triggered
    • id (integer) - project ID
    • name (string) - project name
  • changedBy (object) - user that caused the change in workflow status
    • id (integer) - user ID
    • name (string) - user name
  • status (object) - item's new status
    • id (integer) - new status ID
    • name (string) - new status name
  • assignments (array of content items) - content items that had their workflow status changed
    • assignment (object) - a single content item
      • id (integer) - content item ID
      • taskName (string) - content item title/summary
      • title (string) - content item's actual title (in the main editor, this will be the title field)
      • categories (empty array or array of categories) - content item categories, can be empty; each category is a single object with its own properties (ID and name)
        • category (object) - a single category
          • id (integer) - category ID
          • name (string) - category name
      • keywords (empty array or array of strings) - content item's keywords
      • notes (string) - content item's description
      • template (object) - content item's template
        • id (integer) - template ID
        • name (string) template name
      • oldStatus (object) - content item's previous workflow status
        • id (integer) - previous status ID
        • name (string) - previous status name
      • tabs (array of tabs) - content item's available tabs (this is configurable via template)
        • name - tab's name
        • fields (array of fields) - tab's fields
          • field (object) - a single field
            • id (integer) - field ID
            • type (integer) - field type
            • label (string) - field name (label)
            • value (string) - field content
      • author (object) - user responsible for the item's first workflow status
        • id (integer) - user's ID
        • name (string) - user's name
      • newStatusUser (object) - user assigned to the new workflow status
        • id (integer) - user's ID
        • name (string) - user's name

Content Approval Completed

Your webhook endpoint URL will receive this notification when a content item is marked as Completed. A content item is considered completed when it reaches the final workflow status.

This event will have a type of assignment_completed.

Triggers when:

  • One or more content items' workflow status is marked as completed through the Content Items page via Actions Change status modal or through the edit content item page via the workflow status widget.
  • A content item is marked as completed via the Approve button on the edit content item page.
  • A content item is marked as completed in WordPress through the official plugin.

Data

  • account (object)
    • id (integer)
    • name (string)
  • project (object)
    • id (integer)
    • name (string)
  • assignments (array of assignments)
    • assignment (object)
      • id (integer)
      • taskName (string)
      • title (string)
      • categories (empty array || array of categories)
        • category (object)
          • id (integer)
          • name (string)
    • keywords (empty array || array of strings)
    • notes (string)
    • template (object)
      • id (integer)
      • name (string)
    • tabs
      • names 
      • fields (array of fields )
        • field (object)
          • id (integer)
          • type (integer)
          • label (string)
          • value (string)
    • author (object)
      • id (integer)
      • name (string)

Deadline Missed

This returns data about overdue content items the day before today. For example, when this runs on August 22nd, it will check if there are assignments due on August 21st. If there are, this event will fire and will send a list of projects containing overdue content items and the list of the content items that are overdue to your webhook endpoint URL.

Fires once a day.

Data

  • dueDate (string) - Date in Ymd format
  • account (object)
    • id (integer)
    • name (string)
    • projects (array of projects)
      • project (object)
        • id (integer)
        • name (string)
        • assignments (array of assignments)
          • assignment (object)
            • id (integer)
            • taskName (string)
            • title (string)
            • categories (empty array || array of categories)
              • category (object)
                • id (integer)
                • name (string)
            • keywords (empty array || array of strings)
            • notes (string)
            • template ( object)
              • id (integer)
              • name (string)
            • status (object) - the content item's current workflow status
              • id (integer)
              • name (string)
            • overdueStatuses (array of statuses)
              • status (object)
                • id (integer)
                • name (string)

Deadline Changed

Your webhook endpoint URL will receive this notification when a content item's deadline is changed through the Assigned people and due dates interface. This can be accessed via the contents page, in the workflow status widget, or through the content calendar.

This event will have a type of deadline_changed.

Data

  • account (object)
    • id (integer)
    • name (string)
  • project (object)
    • id (integer)
    • name (string)
  • assignments (array of assignments)
    • assignment (object)
      • id (integer)
      • taskName (string)
      • title (string)
      • categories (empty array || array of categories)
        • category (object)
          • id (integer)
          • name (string)
      • keywords (empty array || array of strings)
      • notes (string)
      • template (object)
        • id (integer)
        • name (string)
      • status (object) - Current workflow stage
        • id (integer)
        • name (string)
      • dates (array of dates)
        • date (object)
          • oldDate (string) - Can be an empty string
          • newDate (string) - Can be an empty string
          • status (object) - Workflow stage
            • id (integer)
            • name (string)

User Assigned To An Item

Your webhook endpoint URL will receive this notification when a user is assigned to a content item through the Assigned People and Due Dates interface. This can be accessed via the content page, in the workflow status widget, or through the content calendar.

This event will have a type of user_assigned_to_an_assignment.

Data

  • account (object)
    • id (integer)
    • name (string)
  • project (object)
    • id (integer)
    • name (string)
  • assignments (array of assignments)
    • assignment (object)
      • id (integer)
      • taskName (string)
      • title (string)
      • categories (empty array || array of categories)
        • category (object)
          • id (integer)
          • name (string)
      • keywords (empty array || array of strings)
      • notes (string)
      • template (object)
        • id (integer)
        • name (string)
      • status (object) - Current workflow stage
        • id (integer)
        • name (string)
      • users (array of users)
        • user (object)
          • id (integer)
          • name (string)
          • status (object) - Workflow stage
            • id (integer)
            • name (string)

Editing or Deleting a Webhook Endpoint URL

If you no longer use a webhook endpoint URL or if you want to change what type of events it receives, click on it and you will be taken to its configuration page. From there you can change what events it will receive or delete it if you want.

You can also disable a webhook endpoint URL by unchecking Enabled. Doing this stops EasyContent from sending notifications to the said URL.

A disabled webhook endpoint URL will be marked as disabled when viewed on the integrations page.