Summary: With our Smartsheet Webhook integration, you can extend your Ziflow online proofing operations to automatically create and update records. You'll see updates in Smartsheet in real-time - for new proofs, comments, decisions, and more. This will keep your team up to date in the tools they're already working with.
Available for: Users with Admin rights on Pro & Enterprise editions.
Our Webhook Zibot allows you to trigger a flow when the following events occur on a proof:
New proof/version: triggers when a new proof is ready for review.
Decision: triggers when a decision is made by a reviewer or when a decision is updated on the stage and/or proof.
New comment/reply: triggers when a reviewer adds a comment/reply to the proof.
Comment resolved: triggers when a comment is marked as resolved.
Comment labeled: triggers when a reviewer labels a comment.
Proof updated: triggers when the proof folder, setting, or custom property changes.
Stage updated: triggers when a stage is started or when a reviewer is added/removed.
Comment reaction: triggers when a comment reaction is added on a comment/reply level.
Learn how to:
Create Ziflow Webhook Flow
To integrate Smartsheet with Ziflow, you need to click on the Connect tab and then click on the + Create Flow button, choose Ziflow as the Application, and choose which Event (New proof/version, Decision made, New comment/reply, Comment resolved, Comment labeled) you want to trigger the integration.
Set up Flow Event settings
The first step is selecting the event that will trigger your Zibot:
Next, you will be presented with the event details page, which will vary depending on which event you select:
New proof/version
Triggered by - select the type of request that will trigger the Zibot.
Created in - select the Ziflow folder that this flow will monitor.
Created by - select the user responsible for this flow activation.
Decision made
Triggered by decision made - select what level decision needs to be made to activate the flow.
Type of decision - choose the decision that needs to be made to activate the flow.
Created in - select the Ziflow folder that this flow will monitor.
New comment/reply added
Triggered by new comment/reply, choose which option should activate the flow.
Made by - choose if a Zibot should be activated by a specific reviewer or anyone who adds a comment/reply.
Created in - select the Ziflow folder that this flow will monitor.
Comment resolved
Created in - select the Ziflow folder that this flow will monitor.
Comment labeled
Comment is labeled as - select which label(s) should trigger a Zibot.
Created in - select the Ziflow folder that this flow will monitor.
Proof updated
Triggered by - select which type of the proof updated event should trigger the Zibot.
Modified in - choose the Ziflow folder that this flow will monitor.
Stage updated
Triggered by - select which type of the stage updated event should trigger the Zibot. There are three types of stage update events: reviewer added, reviewer removed, stage locked, and deadline changed.
Modified in - choose the Ziflow folder that this flow will monitor.
Comment reaction
Triggered by - choose if you want to trigger a flow based on reactions added to comments or replies.
Comment reacted with - select what type of reaction should trigger a flow.
Created in - select the Ziflow folder that is going to be monitored by this flow.
Getting your Smartsheet API Key
To connect Ziflow with Smartsheet, you'll need to obtain an API Key from your Smartsheet account. To do that, please follow the instructions below:
On the left Navigation Bar, select Account.
Select Apps & Integrations.
In the Personal Settings form, select API Access.
In the API Access tab, select Generate new access token. Name the token that will be used for connecting with Ziflow. Once the API key is generated, copy it and save it somewhere in the notepad.
You can also revoke existing tokens in this tab if needed.
API Keys are only available in Smartsheet Business and Enterprise Plans.
Finding Sheet ID
To build integration between Ziflow and Smartsheet, you'll need to gather Sheet ID, which will be later used to set up Zibot.
Open up your Sheet and go to File, Properties, and then it’s displayed in the pop-up window.
Finding Column IDs
Another piece of information required to build a proper integration between Ziflow and Smartsheet is Column ID which will be also required to have both systems in sync.
For getting Column IDs, you'll need to use Postman or some other API tool that allows working with API.
Post a GET call for the following endpoint:
https://api.smartsheet.com/2.0/sheets/”SHEET ID”
Select Bearer Token as your authentication method and paste the API key copied from your Smarsheet account.
Authorization = Bearer Token
This is how the response should look like:
Please save these column IDs because we'll be using them later on when configuring the Smarsheet Zibot.
New Proof creates a new Row in Smartsheet
(New proof created trigger is recommended for this type of integration)
Next, choose a Webhook Zibot:
Fill out Webhook Zibot details; this Zibot will create a new row in Smartsheet and update whichever columns you specify.
Request type - the POST option should be selected as a request type since we want to send data to Smarsheet.
Request URL - fill out with your Smartsheet URL. Please follow this link to see how to collect Sheet ID.
https://api.smartsheet.com/2.0/sheets/{sheet_id}/rows
Request body - should be filled with JSON body referencing columns that you would like to update in Smartsheet with data from Ziflow. In this case, I decided that records on the Smartsheet side should be populated with four fields from Ziflow: Name, Status, Public Link URL & Version. You'll need to copy column IDs
[{"toTop":true,
"cells": [
{"columnId": {proof_name_column_id}, "value": "{$.proof.name}"},
{"columnId": {version_column_id}, "value": "V {$.proof.version}"},
{"columnId": {status_column_id}, "value": "In Progress"},
{"columnId": {proof_public_url_column_id}, "value": "{$.proof.public_link}"}
]}]The following fields (proof_name_column_id, version_column_id, status_column_id, proof_public_url_column_id) should match fields existing IDs inside your Smartsheet columns.
Save your Zibot configuration by pressing the Next button.
Before continuing with the next step, please create a custom property in Ziflow to hold this Smartsheet Row ID information. This is how I named the property in Ziflow:
Once you have the custom property ready, you might add a new Zibot to the flow, which will update the property with Row ID after the proof creation.
This Zibot will get a Smartwsheet Row ID so you can store the value in a custom property and use it later to tell Ziflow which record should be updated when there are changes on the Ziflow side (new version or approval status).
Once you finish the flow configuration, please save all settings and activate the flow.
You can test if the flow works correctly by creating a sample proof in Ziflow and then checking if it added a record in Smatsheet.
Ziflow proof decision or a new version is updated in Smarstheet.
(Decision made or New version trigger is recommended for this type of integration)
Next, choose a Webhook Zibot:
Fill out Webhook Zibot details; this Zibot will update a Smartsheet column status with a proof decision once it is calculated in Ziflow.
Request type - the PUT option should be selected as a request type since we want to update the Smatsheet row with information from Ziflow proof.
Request URL - fill out with your Smartsheet URL. Please follow this link to see how to collect Sheet ID.
https://api.smartsheet.com/2.0/sheets/{sheet_id}/rows
Request body - should be filled with JSON body referencing columns that you would like to update in Smartsheet with data from Ziflow. In this case, I decided that the row on the Smartsheet side should be updated with four fields from Ziflow: Status, Version & Proof Link URL.
[{"id": "{$.proof.custom_properties[?(@.properties[?(@.name=='Smartsheet')])].properties[?(@.name=='Smartsheet Row ID')].value}",
"cells":
[
{"columnId": {status_column_id}, "value": "Approved"},
{"columnId": {version_column_id}, "value": "V {$.proof.version}"},
{"columnId": {proof_public_url_column_id}, "value": "{$.proof.public_link}"}
]}]The following fields (version_column_id, status_column_id, proof_public_url_column_id) should match existing IDs inside your Smartsheet columns.
Please also make sure to correctly reference your custom group property and property name in the JSON body.
{$.proof.custom_properties[?(@.properties[?(@.name=='Smartsheet')])].properties[?(@.name=='Smartsheet Row ID')].value
Once you finish the flow configuration, please save all settings and activate the flow.
You can now test if the flow works correctly by submitting a proof decision on a sample proof in Ziflow and then checking if the flow has passed the correct proof status in the Smartsheet row.
Update Smarstheet row with approval decision and date
(Decision made trigger is recommended for this type of integration)
Next, choose a Webhook Zibot:
Fill out Webhook Zibot details; this Zibot will update a Smartsheet row when a proof decision is submitted in Ziflow.
Request type - the PUT option should be selected as a request type since we want to update the Smatsheet row with information from Ziflow proof.
Request URL - fill out with your Smartsheet URL. Please follow this link to see how to collect Sheet ID.
https://api.smartsheet.com/2.0/sheets/{sheet_id}/rows
Request body - should be filled with JSON body referencing columns you would like to update in Smartsheet with data from Ziflow. In this case, I decided that the row on the Smartsheet side should be updated with four fields from Ziflow: Status & Approval time.
[{"id": "{$.proof.custom_properties[?(@.properties[?(@.name=='Properties for integration purposes')])].properties[?(@.name=='Smartsheet Row ID')].value}",
"cells":
[
{"columnId": {status_column_id}, "value": "Approved"},
{"columnId": {approval_time_id}, "value": "#{$fromMillis($.trigger.proofSerializedModel.calculatedProofStatusDate)}#"}
]}]
The following fields (status_column_id, approval_time_id) should match existing IDs inside your Smartsheet columns.
Please also make sure to correctly reference your custom group property and property name in the JSON body.
{$.proof.custom_properties[?(@.properties[?(@.name=='Smartsheet')])].properties[?(@.name=='Smartsheet Row ID')].value
Once you finish the flow configuration, please save all settings and activate the flow.
You can now test if the flow works correctly by submitting a proof decision on a sample proof in Ziflow and then checking if the flow has passed the correct proof status and approval date in the Smartsheet row.
Additional information:
The Ziflow-Smartsheet Integration requires you to generate a Smartsheet API Token.