Use the Retry Record action to manage dependencies between pipelines. It allows for waiting for a true/false condition to occur before a record completes processing through a pipeline.
Key things to know when configuring the Retry Record Action:
- The Retry Record Action can only be used on the source side of your Entity Pipelines. It cannot be used after the core node in your Entity Pipeline.
- The Retry Record Action is not available for use within a Field Pipeline.
- It's meant to be used in conjunction with a Decision condition to retry the record in every sync cycle for a specified timeframe, or until the Decision condition is satisfied.
- The Retry Record action can be attached to the True or False path of a Decision.
- By default, the branch in your pipeline should terminate at Retry Record node (the last node of the branch in your pipeline), unless `Process Expired Record` configuration is selected. This is because the record that passes through the Retry Record is removed from the pipeline and parked for a retry in the next sync cycle.
- When `Process Expired Record` flag is checked, the expired record flows through the pipeline one last time, allowing you to process expired record after the Retry Record node. Make sure you check for the presence of `Action Result From <retry record node name>.expiredRecord` in the context using a Decision node.
Configuration
The Retry Record action has a Node Label and Description that can be set to text that will help you identify how it is being used in your pipeline.
The Retry Until setting will define the amount of time the record will be retried through the entity pipeline before timing out. In other words, the record will be retried every sync cycle until the Retry Until timeframe is reached. This setting can be set to a date, datetime or relative time. You can also set the value as a token by clicking Insert Token.
Note: The Insert Token option will not display if the Retry Record action is not connected to the pipeline.
Setting a Relative Timeframe
Relative timeframes are set with this format.
next <integer> (seconds|minutes|years|months|days|weeks)
Examples:
next 5 minutes
next 1 day
If you need to set the timeframe to 1 hour and 30 minutes you should use minutes as the timeframe unit: next 90 minutes
Note the unit can be set to singular or plural values (i.e. day or days)
The Process Expired Record setting will make the record flow through the pipeline once more after the record has expired (based on Retry Until setting above). This allows you to process expired records in some way (park it, notify someone, send it to an external system etc). When an expired record goes through the pipeline, you have access to the following tokens in the context under the key `Action Result From <retry record node name`:
expiredRecord - The entire record from the source that has expired.
{{Action Result From Retry Record.expiredRecord}}
expiredAt - datetime at which the record expired
{{Action Result From Retry Record.expiredAt}}
enteredAt - datetime at which the record entered the retry logic for the first time.
{{Action Result From Retry Record.enteredAt}}
If you want to process the expired record after the Retry Record node, use a Decision node to make sure that the expiredRecord token has a value, as shown in the example below
The Decision node is configured as shown below, with a check on expiredRecord token