With linking, you can establish bi-directional syncing between services without the need to keep IDs or other reference keys in order to match and locate the proper records. Linking provides the ability to keep data in sync as needed and designed.
Note: Linking has nothing to do with whether records are connected in a relationship.
How to establish bi-directional syncing between services
A bi-directional sync keeps relevant fields in two systems up to date. To do that in Quickbase Pipelines, you need to create two pipelines that use the Linked Items feature.
Note that there is a possibility that when you build a workflow like this, your workflow could result in an infinite loop. You should be mindful of that when building the triggering conditions of each pipeline. You could prevent an infinite loop by leveraging a service account and only triggering the pipeline when a user other than the service account is the one who made the update.
How to link items
Data can be linked at any step of the process but normally this is done when the item is initially created.
For example, you use Quickbase to manage your customer support tickets and your IT team is using ServiceNow to manage outage or platform incidents. Customer reports an issue, it gets tracked in Quickbase. The support person judges that they need to have IT look into it, so they escalate the issue. This creates a ticket in ServiceNow, which you would want to link back to the support case in Quickbase. Let's see how we can do this.
To create a pipeline that links specific ServiceNow and Quickbase tickets:
- Create a new pipeline that begins with a trigger, in this case the Table Object Created trigger from the ServiceNow channel.
- Next, add the action step Create Record from the Quickbase channel:
- Fields with a red dot are required fields. Fill in all the details that are required. For the Summary (required) and Description fields, you can drag placeholders from the panel that appears at the right to copy the field values, type information, or both.
- In the Link (advanced) field, select what item you want to link to, in this case, the ticket from your first step.
Tip: You can also link tickets on specific escalations based on tags, labels, or field sets, or create even more complex workflows.
Fetching linked items
To update specific information in the linked items, you can use Fetch steps.
For example, you may want to update specific information in the linked Quickbase and ServiceNow tickets whenever one of the tickets is updated. To do this you would create a pipeline with an Update in ServiceNow or Update in Quickbase trigger step followed by a Fetch a Linked Issue step.
You can add filters so that the Update step listens for the specific types of updates you want to track. Or you can choose not to use a filter, which would register every update on the ticket.
Note: There may be times when a linked item does not exist, such as if it has been deleted, or if it was created before the pipeline was created to link tickets. If no linked item exists, the pipeline will stop running. To avoid this, add a step to check for linked items before fetching.
To create a pipeline based on an issue updated in ServiceNow:
- Create a new pipeline that begins with a trigger, in this case the Issue Updated trigger from the ServiceNow Channel. Expand and fill in the fields of the first step Issue Updated in ServiceNow.
- Add a step to check to see if the linked ticket exists using a Look Up action.
- Add the action step Fetch a Linked Ticket from the Quickbase channel to slot B, and select the ServiceNow ticket from the first step.
- In the next box down, click Insert a Condition. This will add an If-Then-Else condition.
- In the IF section, clickAdd Conditions and select the ServiceNowTicket and leave the dropdown at the default, is set.
- In the THEN section, drag Update a Table Object from the Quickbase channel.
- In the Ticket field, select the ServiceNow Ticket from the step, this is a required field, and select Updated by.
Note: To establish a full bi-directional sync between the two tickets, you would need to create an additional pipeline that triggers based on an update in ServiceNow.