Build flows with Webhook Zibots

Dina Bennett
Dina Bennett
  • Updated

A Webhook Zibot let you send data to any external system that accepts HTTP requests. This allows you to integrate Ziflow with tools that don't have prebuilt Zibots or to push proofing data into your internal systems.

In Ziflow, a Webhook Zibot:

  • Sends data about that event to another tool or service.

Add a Webhook Zibot when you need to:

  • Send proof, comment, or decision data to an external app or system
  • Trigger actions in custom tools or APIs
  • Log Ziflow activity in external databases or dashboards

Example use cases:

  • Log comments to an internal support system
  • Send approval data to your company’s CRM
  • Trigger a build or deployment pipeline when a proof is approved
     

Select your Ziflow event

Start by selecting which Ziflow event you want to trigger your flow.

  1. Select Connect in Ziflow’s main navigation and select Create Flow.
  2. Select Ziflow as your flow’s application source.
  3. Enter a name for your flow (e.g., "Push Comments to Support System").
  4. Select the event that will start the flow. See Ziflow events.
  5. Configure the event-specific settings (folder, user, etc.).
  6. Select Next.
  7. From the list of available Zibots, select Webhook Zibot.
  8. Select Next.

Configure a Webhook Zibot

A Webhook Zibot sends specific Ziflow data to another app or service in a format that it can read and use. 

webhook-config.png

To configure your webhook:

  1. In the Create section, select the type of HTTP request:
  • GET retrieves information.
  • POST is commonly used to send new data.
  • PUT and PATCH update existing information.
  • DELETE removes data.

2. Enter the endpoint URL for the app or system receiving the information (e.g., your app’s webhook URL). This is where Ziflow will send your data. 

3. [optional] Enter query string parameters. These are extra bits of data added to the URL. Use them if the receiving system requires specific parameters in the URL (e.g., ?project=design123).

4. [POST, PUT, or PATCH] In the Request body section, define what Ziflow should send. Use JSON format, which is a standard way to structure data. 

To include Ziflow-specific data (like proof name or reviewer), use JSONata syntax with tokens inside the body. See the example below.

5. [optional] Enter headers. Headers are key-value pairs often used for authentication or to define the data format. 

6. Click Next, review your configuration, and select Save and Turn on to activate the flow.

Example: display a decision status

How to read these expressions:

  • Each #{$. ... }# is a placeholder for real data from Ziflow.

  • Arrays like stages[] and members[] require an index

    • [0] = first item

  • Available fields depend on the trigger type

Proof decision (all decision update triggers)

Use to get the overall decision for the proof:

#{$.proof.decision_status_label}#

Stage decision

Use to get the decision for a specific stage.

  • When using a “decision update on stage” trigger:

#{$.stage.status.decision_status_label}#
  • For other triggers (specify the stage index):

#{$.proof.stages[0].status.decision_status_label}#

This example returns the decision status of the first stage ([0]).

Reviewer decision

Use these to get the decision made by an individual reviewer.

  • When using a “decision update by reviewer” trigger:

#{$.reviewer.decision_status_label}#
  • When using a “decision update on stage” trigger (specify reviewer index):

#{$.stage.members[0].decision_status_label}#
  • For other triggers (specify stage and reviewer index):

#{$.proof.stages[0].members[0].decision_status_label}#

 

JSONata examples and usage

All open text fields in Webhook settings support JSONata syntax, allowing you to insert data from:

  • Proof name: #{$.proof.name}#
  • Stage name: #{$.stage.name}#
  • Reviewer email: #{$.reviewer.email}#
  • Comment text: #{$.comment.text}#
  • Intake form data: #{$.form.field_name}#
  • Previous Zibots data: #{$.zibot[0].data.key}# (replace 0 with Zibot position in flow)

For more information, see Use JSONata to insert values.

More examples:

  • Folder name: #{$.proof.folder.name}#
  • Proof creator full name: #{$.proof.created_by.first_name}# #{$.proof.created_by.last_name}#
  • First stage name: #{$.proof.stages[0].name}#

 

Tips for using Webhook Zibots

 

 

Related to

Was this article helpful?

Comments

0 comments

Please sign in to leave a comment.