{"id":6606,"date":"2026-07-30T11:16:10","date_gmt":"2026-07-30T09:16:10","guid":{"rendered":"https:\/\/help.ino.cx\/?post_type=ht_kb&#038;p=6606"},"modified":"2026-07-30T11:16:11","modified_gmt":"2026-07-30T09:16:11","slug":"workflows-set-them-up","status":"publish","type":"ht_kb","link":"https:\/\/help.ino.cx\/index.php\/help-center\/workflows-set-them-up\/","title":{"rendered":"Workflows \u2013 Set them up"},"content":{"rendered":"\n<figure class=\"wp-block-image alignright is-resized\"><img decoding=\"async\" src=\"https:\/\/help.ino.cx\/wp-content\/uploads\/2024\/09\/Smart-licence-needed-2.png\" alt=\"Smart licence needed\" style=\"width:250px\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">[<em>Reading time: 12 minutes<\/em>]<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Overview<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A&nbsp;<strong>Workflow<\/strong>&nbsp;is an automated process that runs in the background when a specific event happens \u2014 for example when an incoming webhook is received, when an outgoing campaign has run, when a database row changes, or when another rule fires it. From the entity description in the platform:&nbsp;<em>\u201cConfigure actions to carry out when specific events take place.\u201d<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Concretely, a workflow is:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A sequence (tree) of&nbsp;<strong>actions<\/strong>&nbsp;\u2014 calling a web service, reading or writing a database, sending an SMS or email, creating a CRM card or a task, inserting a target in a campaign, etc.<\/li>\n\n\n\n<li>Wired to one or several&nbsp;<strong>triggers<\/strong>&nbsp;(webhook events) that decide when it runs.<\/li>\n\n\n\n<li>Versioned: each workflow has development versions you can iterate on safely, one version in production, and a history of backup versions you can roll back to.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Workflows are the way to automate business processes inside the platform without writing custom code. They share the same visual editor and most of the action library with Smart Routings, but they run outside of an interaction\u2019s lifecycle \u2014 they react to events rather than to live interactions.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"233\" src=\"https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/06\/Capture-decran-2026-06-30-a-10.16.25-1024x233.png\" alt=\"\" class=\"wp-image-6647\" srcset=\"https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/06\/Capture-decran-2026-06-30-a-10.16.25-1024x233.png 1024w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/06\/Capture-decran-2026-06-30-a-10.16.25-300x68.png 300w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/06\/Capture-decran-2026-06-30-a-10.16.25-768x174.png 768w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/06\/Capture-decran-2026-06-30-a-10.16.25-50x11.png 50w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/06\/Capture-decran-2026-06-30-a-10.16.25-1536x349.png 1536w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/06\/Capture-decran-2026-06-30-a-10.16.25-2048x465.png 2048w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/06\/Capture-decran-2026-06-30-a-10.16.25-60x14.png 60w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/06\/Capture-decran-2026-06-30-a-10.16.25-100x23.png 100w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">1. Access and permissions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Workflows are configured in the&nbsp;<strong>Maker<\/strong>, in the&nbsp;<strong>Routing<\/strong>&nbsp;module. From the left menu, open&nbsp;<strong>Routing &gt; Workflows<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To access and configure workflows, the user\u2019s role must include the appropriate rights on the&nbsp;<strong>Workflows<\/strong>&nbsp;entity (Read \/ Create \/ Modify \/ Delete). These permissions are managed in the&nbsp;<strong>Roles<\/strong>&nbsp;module of the Maker.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Create a workflow<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To create a new workflow:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to&nbsp;<strong>Maker &gt; Routing &gt; Workflows<\/strong>.<\/li>\n\n\n\n<li>Click the&nbsp;<strong>+<\/strong>&nbsp;button at the top right.<\/li>\n\n\n\n<li>Fill out the form:<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Field<\/th><th class=\"has-text-align-left\" data-align=\"left\">Required<\/th><th class=\"has-text-align-left\" data-align=\"left\">Description<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Name<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Yes<\/td><td class=\"has-text-align-left\" data-align=\"left\">Display name of the workflow.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Reference<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Yes<\/td><td class=\"has-text-align-left\" data-align=\"left\">Unique identifier used to reference the workflow in your configurations. Must be unique and may contain only the following special characters:&nbsp;<code>_ + . @ -<\/code><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Description<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">No<\/td><td class=\"has-text-align-left\" data-align=\"left\">Free text describing the purpose of the workflow.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Time zone<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">No<\/td><td class=\"has-text-align-left\" data-align=\"left\">Time zone used by the actions of the workflow (for example for date\/time computations). Leave on&nbsp;<em>By default<\/em>&nbsp;to use the time zone of the object that triggered the workflow, or the customer account default.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Language<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">No<\/td><td class=\"has-text-align-left\" data-align=\"left\">Language used by the actions of the workflow (for example for templates). Leave on&nbsp;<em>By default<\/em>&nbsp;to use the customer account default.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>Click&nbsp;<strong>Save<\/strong>.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">The new workflow appears in the list with the columns&nbsp;<strong>Name<\/strong>,&nbsp;<strong>Reference<\/strong>,&nbsp;<strong>Time zone<\/strong>&nbsp;and&nbsp;<strong>Language<\/strong>. Click on its name to open the details page, which is split into three tabs:&nbsp;<strong>Settings<\/strong>,&nbsp;<strong>Triggers<\/strong>&nbsp;and&nbsp;<strong>Versions<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"856\" height=\"1024\" src=\"https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/06\/Capture-decran-2026-06-30-a-10.18.31-856x1024.png\" alt=\"\" class=\"wp-image-6648\" style=\"width:350px\" srcset=\"https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/06\/Capture-decran-2026-06-30-a-10.18.31-856x1024.png 856w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/06\/Capture-decran-2026-06-30-a-10.18.31-251x300.png 251w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/06\/Capture-decran-2026-06-30-a-10.18.31-768x919.png 768w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/06\/Capture-decran-2026-06-30-a-10.18.31-42x50.png 42w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/06\/Capture-decran-2026-06-30-a-10.18.31-50x60.png 50w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/06\/Capture-decran-2026-06-30-a-10.18.31-84x100.png 84w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/06\/Capture-decran-2026-06-30-a-10.18.31.png 958w\" sizes=\"auto, (max-width: 856px) 100vw, 856px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">3. Settings tab<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The&nbsp;<strong>Settings<\/strong>&nbsp;tab is where you set the global parameters that apply to every execution of the workflow. <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Name<\/strong>,&nbsp;<strong>Reference<\/strong>&nbsp;and&nbsp;<strong>Description<\/strong>&nbsp;\u2014 modifiable at any time. Changing the Reference impacts any place that already references the workflow by its code (for example a Smart Routing action&nbsp;<em>Distribution to a workflow<\/em>&nbsp;configured by reference).<\/li>\n\n\n\n<li><strong>Time zone<\/strong>&nbsp;\u2014 used by every action that computes a date or a time (<em>Test a schedule<\/em>,&nbsp;<em>Date and time (retrieval and calculations)<\/em>,&nbsp;<em>Reschedule an attempt<\/em>, etc.) and by communication actions to time messages correctly. Leave on&nbsp;<em>By default<\/em>&nbsp;to use the time zone of the object that triggered the workflow (for example, the interaction\u2019s queue) \u2014 if the trigger object has none, the customer account default is used.<\/li>\n\n\n\n<li><strong>Language<\/strong>&nbsp;\u2014 used when an action picks a localised resource (an email template, an SMS template, a sound file). Leave on&nbsp;<em>By default<\/em>&nbsp;to use the customer account default.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Below the general info, a block&nbsp;lets you declare a list of&nbsp;<strong>key\/value pairs<\/strong>&nbsp;that the workflow itself stores, and that any action of the workflow can reference.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Each row is numbered (<em>Setting 1<\/em>,&nbsp;<em>Setting 2<\/em>\u2026) and contains:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Key<\/strong>&nbsp;\u2014 a unique identifier of the setting (for example&nbsp;<code>support_email<\/code>,&nbsp;<code>api_url<\/code>,&nbsp;<code>retry_limit<\/code>). Two settings cannot share the same key.<\/li>\n\n\n\n<li><strong>Value<\/strong>&nbsp;\u2014 the actual value. The value field accepts variables in the&nbsp;<code>{{variable}}<\/code>&nbsp;notation (for example&nbsp;<code>{{card.email}}<\/code>&nbsp;or&nbsp;<code>{{interaction.id}}<\/code>), so you can derive a setting from data passed by the trigger.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Both fields are required when a row is added. Use the&nbsp;<strong>+<\/strong>&nbsp;button at the end of the last row to add another setting, and the&nbsp;<strong>delete<\/strong>&nbsp;icon to remove one.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Settings are useful to centralise the constants used by your workflow \u2014 when you need to change one, you only edit it here instead of every action that references it. They are also the way to expose configuration to your business team without giving them access to the action tree.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"459\" src=\"https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/07\/Capture-decran-2026-07-21-a-13.55.03-1024x459.png\" alt=\"\" class=\"wp-image-6681\" srcset=\"https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/07\/Capture-decran-2026-07-21-a-13.55.03-1024x459.png 1024w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/07\/Capture-decran-2026-07-21-a-13.55.03-300x134.png 300w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/07\/Capture-decran-2026-07-21-a-13.55.03-768x344.png 768w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/07\/Capture-decran-2026-07-21-a-13.55.03-50x22.png 50w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/07\/Capture-decran-2026-07-21-a-13.55.03-1536x688.png 1536w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/07\/Capture-decran-2026-07-21-a-13.55.03-2048x918.png 2048w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/07\/Capture-decran-2026-07-21-a-13.55.03-60x27.png 60w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/07\/Capture-decran-2026-07-21-a-13.55.03-100x45.png 100w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">4. Triggers tab<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A workflow does not run on its own \u2014 it has to be&nbsp;<strong>fired<\/strong>&nbsp;by something. The&nbsp;<strong>Triggers<\/strong>&nbsp;tab is where you declare what fires it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.1. What is a trigger?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A trigger is a&nbsp;<strong>predefined event<\/strong>&nbsp;emitted by the platform when something noteworthy happens. The platform ships with a catalogue of webhook triggers grouped by category, including for example:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Category<\/th><th class=\"has-text-align-left\" data-align=\"left\">Examples of triggers<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>User &amp; agents<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">An advisor logs in \/ logs out, an advisor changes activity, etc.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Interaction<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">An interaction starts, ends, is transferred, enters a queue, leaves a queue, is recorded, is joined by an extra participant, etc.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Payment<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">A payment succeeds, an installment is collected, etc.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Voice campaign \/ SMS campaign<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">A campaign target is processed, an attempt fails, the campaign ends, etc.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>CRM &amp; cases<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">A CRM card is created \/ updated \/ deleted, a case is created or updated, etc.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>WhatsApp campaign<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">A target is inserted or updated, the campaign starts or stops, etc.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Tools<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">A calendar item or a values-table item is edited, etc.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">You cannot create your own trigger \u2014 you pick from the catalogue. When the corresponding event occurs anywhere on the platform, every workflow that has subscribed to it is fired one after another. Each firing receives the contextual data of the event (for example an&nbsp;<em>interaction:end<\/em>&nbsp;trigger provides the interaction, the customer, the queue, the duration, the result, etc.), which the workflow can use in its actions through variables.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.2. Attach a trigger to the workflow<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">From the Triggers tab:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click&nbsp;<strong>Add triggers<\/strong>.<\/li>\n\n\n\n<li>Pick one or several triggers from the catalogue (the modal shows the triggers that have not been associated yet).<\/li>\n\n\n\n<li>Confirm.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">The newly attached triggers appear in the Triggers list with an&nbsp;<strong>Active<\/strong>&nbsp;toggle next to each one. Two situations:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Active<\/strong>: every time the event fires somewhere on the platform, this workflow runs.<\/li>\n\n\n\n<li><strong>Inactive<\/strong>: the workflow stays attached to the trigger but no longer runs \u2014 useful to pause a workflow temporarily without losing its configuration.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Triggers can also be&nbsp;<strong>removed<\/strong>&nbsp;individually or in bulk from the same tab.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.3. No trigger or no production version = no run<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For a trigger to actually do something, two conditions must be met:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The trigger must be&nbsp;<strong>active<\/strong>&nbsp;on the workflow.<\/li>\n\n\n\n<li>The workflow must have a&nbsp;<strong>production<\/strong>&nbsp;version (or a scheduled production version that has reached its date).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If a trigger fires while the workflow only has development versions, nothing happens. A reminder is displayed when you wire a trigger:&nbsp;<em>\u201cRemember to check that the selected workflow has a production or test version. If this is not the case, then the workflow will not run.\u201d<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.4. Other ways to fire a workflow<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Triggers are the standard way to launch a workflow, but two other paths exist:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>From a Smart Routing<\/strong>: the action&nbsp;<em>Distribution to a workflow<\/em>&nbsp;launches a workflow inline during an interaction\u2019s routing tree.<\/li>\n\n\n\n<li><strong>Manually<\/strong>: from the workflow details page, a&nbsp;<strong>Start the workflow<\/strong>&nbsp;action lets you launch the production version on demand. If the workflow has Settings with values still empty, a small form asks you to provide them. This is mostly used to test a freshly-promoted workflow.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"172\" src=\"https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/07\/Capture-decran-2026-07-21-a-14.29.06-1024x172.png\" alt=\"\" class=\"wp-image-6682\" srcset=\"https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/07\/Capture-decran-2026-07-21-a-14.29.06-1024x172.png 1024w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/07\/Capture-decran-2026-07-21-a-14.29.06-300x50.png 300w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/07\/Capture-decran-2026-07-21-a-14.29.06-768x129.png 768w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/07\/Capture-decran-2026-07-21-a-14.29.06-50x8.png 50w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/07\/Capture-decran-2026-07-21-a-14.29.06-1536x257.png 1536w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/07\/Capture-decran-2026-07-21-a-14.29.06-2048x343.png 2048w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/07\/Capture-decran-2026-07-21-a-14.29.06-60x10.png 60w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/07\/Capture-decran-2026-07-21-a-14.29.06-100x17.png 100w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">5. Versions tab<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The&nbsp;<strong>Versions<\/strong>&nbsp;tab is where you build and manage the actual logic of the workflow. A workflow can contain several versions at the same time, each one in a different lifecycle state:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Status<\/th><th class=\"has-text-align-left\" data-align=\"left\">Description<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>In production<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">The version currently executed when a trigger fires. Only one version can be in production at any time. A production version cannot be edited directly \u2014 to make changes, create a development copy.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Development<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Draft versions you can edit freely. As many as you need, within the configured limit. Used to design and test changes before promoting them to production.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Backup<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Previous production versions that have been replaced. A backup version can be put back into production at any time, which is the way to roll back to an earlier behaviour. The number of backups kept is capped by a configurable limit.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Scheduled for production<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">A development version that has been planned for an automatic switch to production at a future date. Useful to align a behaviour change with a business deadline.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Each row of the Versions tab shows the version\u2019s status, the date it was last modified and the available actions (open, modify, put in production, schedule, delete, etc.).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. Build a version \u2014 the action tree<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Open a development version to access the&nbsp;<strong>action tree editor<\/strong>, the same visual editor used by Smart Routings. Each node of the tree is an action, and links between nodes describe the order \u2014 and the conditional branches \u2014 in which actions are executed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Every version starts from a&nbsp;<strong>Start<\/strong>&nbsp;node that is created automatically. From there, you add actions and connect them.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">6.1. Add an action<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A new action is added either by clicking the&nbsp;<strong>+<\/strong>&nbsp;output handle of an existing action (or of the&nbsp;<strong>Start<\/strong>&nbsp;node, for the very first action), or by right-clicking on an existing action and selecting&nbsp;<strong>Add an action<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The action form then opens in the side panel with a choice between two creation modes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>From zero<\/strong>: start from an empty action and configure it.<\/li>\n\n\n\n<li><strong>Copy an existing action<\/strong>: duplicate an action that already exists in the version.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6.2. Available actions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A workflow version can chain about thirty action kinds. They cover most of the operations needed to automate a business process:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Category<\/th><th class=\"has-text-align-left\" data-align=\"left\">Examples of actions<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Variables and data<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><em>Assign values to variables<\/em>,&nbsp;<em>Values table<\/em>,&nbsp;<em>Fill in the variables from a database<\/em>,&nbsp;<em>Save values to a database<\/em>,&nbsp;<em>Modify database values<\/em>,&nbsp;<em>Date and time (retrieval and calculations)<\/em>.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Tests and branches<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><em>Test a value(s)<\/em>,&nbsp;<em>Test a schedule<\/em>,&nbsp;<em>Test if the number is mobile<\/em>,&nbsp;<em>Test if it is an even or odd week<\/em>.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Communication<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><em>Send an email<\/em>,&nbsp;<em>Send a SMS<\/em>.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Cases &amp; CRM<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><em>Create a new case and associate it with the interaction<\/em>,&nbsp;<em>Modify a case<\/em>,&nbsp;<em>Associate the interaction with a CRM card<\/em>,&nbsp;<em>Create a CRM card<\/em>,&nbsp;<em>Associate the interaction with a CRM V2 card<\/em>,&nbsp;<em>Create a CRM V2 card<\/em>.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Tasks &amp; checkpoints<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><em>Create a task<\/em>,&nbsp;<em>Add a checkpoint<\/em>.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Campaigns<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><em>Insert a target in a voice campaign<\/em>,&nbsp;<em>Insert a target in the SMS campaign<\/em>,&nbsp;<em>Insert a target into a WhatsApp campaign<\/em>,&nbsp;<em>Check the number of target attempts<\/em>,&nbsp;<em>Check the result of the target attempts<\/em>,&nbsp;<em>Reschedule an attempt<\/em>.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Integrations<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><em>Web service<\/em>,&nbsp;<em>Node<\/em>.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Not every Smart Routing action is available in a workflow. Channel-specific actions (voice announcement, ASR, recording controls, distribution to a queue, distribution to a user, voicemail, etc.) live in Smart Routings only, since they manipulate a live interaction. Workflows focus on data and back-office automation.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">6.3. Link the actions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Each action exposes one or several outgoing branches (success, failure, conditional results, etc.) that you connect to the next action. Each branch has its own&nbsp;<strong>+<\/strong>&nbsp;output handle: click the&nbsp;<strong>+<\/strong>&nbsp;to add the next action \u2014 the link to that new action is created at the same time. You don&#8217;t need to draw the link separately.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Two types of links can coexist:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Normal link<\/strong>: forward progression created when you add a new child action from a&nbsp;<strong>+<\/strong>&nbsp;output.<\/li>\n\n\n\n<li><strong>Unnatural link<\/strong>: a link that goes back to a previous action or jumps across branches, to handle loops or shortcuts. To create one,&nbsp;<strong>drag<\/strong>&nbsp;the&nbsp;<strong>+<\/strong>&nbsp;of the source branch and&nbsp;<strong>drop it onto an existing action<\/strong>&nbsp;in the tree \u2014 the link is created without adding a new node.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Existing links remain editable: click on a link to open its side panel and reassign it, or delete it from the right-click menu of the link itself. Actions can be modified (<em>Modify this action<\/em>) or removed (<em>Delete this action<\/em>&nbsp;\/&nbsp;<em>Delete this action and its entire branch<\/em>) at any time on a development version.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">7. Put a version in production<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Once a development version is ready, two options switch it to&nbsp;<em>In production<\/em>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Immediate production<\/strong>: the version becomes the production version straight away. If a previous version was in production, it is automatically moved to&nbsp;<em>Backup<\/em>.<\/li>\n\n\n\n<li><strong>Scheduled production<\/strong>: pick a future date and time. The version moves to&nbsp;<em>Scheduled for production<\/em>, and the platform automatically swaps it in at the scheduled time. Two versions cannot share the same scheduled production date.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">To roll back, open a&nbsp;<em>Backup<\/em>&nbsp;version and put it back in production \u2014 the current production version then goes to Backup itself.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">8. Edit, duplicate or delete a workflow<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">From the&nbsp;<strong>Workflows<\/strong>&nbsp;list, each row provides the following actions:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Action<\/th><th class=\"has-text-align-left\" data-align=\"left\">Description<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Edit<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Edit the Name, Reference, Description, Time zone and Language of the workflow. Versions and triggers are managed from the details page.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Duplicate<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Create a copy of the workflow, including its versions, triggers and configuration. The copy is created without triggers \u2014 re-associate triggers manually if needed.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Delete<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Remove the workflow. Deleting a workflow also removes its versions and its trigger associations. As a good practice, make sure it is no longer referenced (for example from a Smart Routing action Distribution to a workflow) before deleting it.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Several workflows can be deleted at once by selecting them in the list and using the bulk delete action.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[Reading time: 12 minutes] Overview A&nbsp;Workflow&nbsp;is an automated process that runs in the background when a specific event happens \u2014 for example when an incoming webhook is received, when an outgoing campaign has run, when a database row changes, or when another rule fires it. From the entity description in&#8230;<\/p>\n","protected":false},"author":5,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"ht-kb-category":[107],"ht-kb-tag":[131],"class_list":["post-6606","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-configuring","ht_kb_tag-maker"],"_links":{"self":[{"href":"https:\/\/help.ino.cx\/index.php\/wp-json\/wp\/v2\/ht-kb\/6606","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/help.ino.cx\/index.php\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/help.ino.cx\/index.php\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/help.ino.cx\/index.php\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/help.ino.cx\/index.php\/wp-json\/wp\/v2\/comments?post=6606"}],"version-history":[{"count":6,"href":"https:\/\/help.ino.cx\/index.php\/wp-json\/wp\/v2\/ht-kb\/6606\/revisions"}],"predecessor-version":[{"id":6724,"href":"https:\/\/help.ino.cx\/index.php\/wp-json\/wp\/v2\/ht-kb\/6606\/revisions\/6724"}],"wp:attachment":[{"href":"https:\/\/help.ino.cx\/index.php\/wp-json\/wp\/v2\/media?parent=6606"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/help.ino.cx\/index.php\/wp-json\/wp\/v2\/ht-kb-category?post=6606"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/help.ino.cx\/index.php\/wp-json\/wp\/v2\/ht-kb-tag?post=6606"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}