Skip to main content
Workflows are available to teams on the Pro subscription.
This guide walks you through creating, building, publishing, and managing workflows in the Dimedove dashboard.

Prerequisites

Before building a workflow, ensure you have:
  • A Dimedove account with a Pro subscription
  • Depending on the workflow you want to build, one or more of the following configured and active:
    • An agent (for Qualified Opportunity, Human required, or contact triggers, for Email, SMS, and Call steps through agent-assigned channels, and for Run tools)
    • A form (for Form Submission triggers)
    • An email channel (for Email Received triggers or Email steps sent from an email channel)
    • A phone number (for Inbound Call or Inbound SMS triggers, or for SMS and Call steps)
    • A Slack workspace (for Slack Message Received triggers or Slack steps)
    • Contact attributes and labels (for the Update contact attribute and Add label steps)
    • Teammates on your team (for Assign teammate, Notify teammate, and Approval request steps)
    • Agent work turned on in Goals settings (for Start goal steps)

Creating a Workflow

  1. Go to Workflows, in the Manage section of your dashboard sidebar
  2. Click Add. A new workflow opens on its Overview tab
  3. Under Workflow Details, give it a Name (for example “Notify Sales on New Lead”) and an optional Description, then click Save
  4. Open the Editor tab to build it
A new workflow is a Draft: it does not run until you publish it and turn it on. Each workflow page has three tabs:
  • Overview: analytics for the workflow’s runs, its Workflow Details, and its Versions
  • Editor: the canvas where you build the workflow
  • Runs: every run of the workflow, with its logs

Building on the Canvas

The Canvas

The editor shows your workflow as a tree of steps, laid out top to bottom automatically: you do not drag steps or draw connections by hand. The trigger sits at the top with a Trigger tag, and each step shows its type and a short summary of its settings. Use the zoom controls in the bottom left corner to move around a large workflow. Steps that split the run show a label on each of their connections: A branch with no steps simply ends the run there, and the run counts as completed.

Adding Steps

A dashed Add placeholder sits at the end of every open branch (Add trigger in a new workflow), and a + button on any connection inserts a step at that point.
  1. Click Add, or + on a connection
  2. In the palette, search with Search steps or browse the groups: Triggers, Logic, Wait, Actions, Data, AI, and Teammates
  3. Choose a step. Its panel opens on the right with a short explanation and the settings to fill in
See Steps for every step type and its settings. Some steps act on the contact or conversation behind the run and are greyed out when the trigger does not carry one; see Steps That Need a Contact or Conversation.

Editing, Changing, and Deleting Steps

Click any step to open its panel. From there you can:
  • Add a description…: note what the step does or why it exists, for your team
  • Change type: the pencil button (Change trigger on the trigger) picks a different type. Changing the type resets the step’s settings to the defaults for the new type
  • Delete: the trash button removes the step. You can also select a step and press Delete or Backspace, then confirm
When changing or deleting a step would also remove the steps on its other branches, Dimedove asks you to confirm first: “Delete this step and the steps after it?” Press Esc to deselect a step.
Steps cannot be renamed. To use what an earlier step produced, such as an AI summary, write the later message in Prompt mode: the agent writing it sees the results of the earlier steps. See Message Bodies.

Autosave

Every change you make in the editor is saved automatically as a draft. A small indicator shows Saving… while it works, or “Save failed. Your next change will retry.” if a save did not go through. Drafts have no effect on the live workflow until you publish them.

Configuring the Trigger

Every workflow has exactly one trigger, at the top of the canvas. Click it to choose its type and set its filters. Filters narrow which events start a run; when a filter is left on “Any”, the trigger fires for every matching event across your team. Resources that are currently disabled show a warning, because they do not generate events. For a Webhook trigger, the panel shows the workflow’s unique URL:
See Triggers for every trigger type, its filters, and the data it provides.

Using Template Variables

Template variables insert data from the trigger into any text field of your steps.

Syntax

Template variables use double curly braces:

Accessing Trigger Data

  • {{trigger.body.email}}: A field from the trigger event data
  • {{trigger.body.user.name}}: Nested field access using dot notation
  • {{trigger.body.items.0.name}}: Array index access (zero-based)
  • {{trigger.headers.Content-Type}}: A request header (Webhook triggers)
  • {{trigger.query.utm_source}}: A query string parameter (Webhook triggers)
  • {{trigger.body.attributes.<key>}}: A contact attribute (Contact Created and Contact Updated triggers)
  • {{trigger.body.scheduled_at}}: The scheduled time (Schedule triggers)
  • {{loop.item}} and {{loop.index}}: The current item and its position, for steps inside a Loop
Each step’s panel lists the Available trigger data: for your trigger: click a variable to copy it. Fields that take a path rather than text, such as the field of a Condition, Switch, or Loop, offer an Insert a field picker. See Accessing Trigger Data for the fields each trigger provides.

Variable Resolution

  • A variable whose path is not found, or whose value is empty, becomes empty text
  • Object and array values are inserted as JSON text
Open the run logs of any run to inspect the exact trigger data and each step’s input and output. This is the quickest way to discover the available fields and confirm your variables resolve as expected.

Publishing and Versions

The Checklist

When no step is selected, the editor’s side panel shows the workflow’s name and description and its Checklist: everything that must be fixed before you can publish. Typical items include:
  • “Add a trigger to start the workflow” and “Add a next step for this trigger”
  • “Configure ” when a step is missing required settings (for a message in Prompt mode, the instructions count as its body)
  • ” is not compatible with the selected trigger”
  • “This step is not connected to the trigger”
  • A workflow over the limits, such as more than 40 steps, a delay over 365 days, or a schedule more frequent than every 15 minutes
  • Case keys that are not lowercase letters, digits, -, or _, or that repeat
  • A cycle, or a loop inside another loop
Steps with a problem show an amber warning badge on the canvas. Hover a checklist item to highlight its step, and click it to open the step. When everything is in order, the checklist reads “All checks passed.”

Publishing Changes

While your draft differs from the live workflow, the editor shows the banner “This workflow has unpublished changes” with two buttons:
  • Publish changes: applies your draft. It is available once the checklist is clear (“Resolve all checklist items before publishing”). New runs use the new version right away, while runs already in progress finish on the version they started with.
  • Discard changes: reverts the draft to the last published version.
Discarding changes cannot be undone. All unpublished modifications are permanently removed.

Versions

Every publish creates a new numbered version. The Versions list on the Overview tab shows each one as v1, v2, and so on, with a Current badge on the live version, when and by whom it was published, how many steps it has, and how many runs it served. Click View to open a read-only copy of that version on the canvas. Every run also records the version it ran on. Versions are read-only. To bring back an earlier setup, edit your draft to match it and publish again.

Turning a Workflow On and Off

Use the switch in the workflow header to move between Live and Paused. You can also Enable, Pause, or Delete a workflow from its menu on the Workflows list.
  • Live: the workflow responds to trigger events and starts new runs
  • Paused: trigger events are ignored and no new runs start. Runs already in progress are cancelled when they reach their next step, including runs that were in a delay or a wait
A workflow with unpublished changes cannot be turned on (“Publish the workflow changes first to enable it”). A live workflow can be paused at any time. To start a Manual workflow, use Run in the header, which offers Run once and Run for a list. It is available while the workflow is live and fully published. See Manual.

Deleting a Workflow

To delete a workflow, open its menu on the Workflows list, select Delete, and confirm. This stops its open runs and permanently deletes the workflow, its runs, and its history. Inbox conversations started by the workflow are kept, but their link to the workflow is removed.
Deleting a workflow is irreversible. All runs and execution history are permanently lost.

Monitoring Runs

The Runs Tab

The Runs tab lists every run of the workflow, with its Status, its Trigger (with the version it ran on), when it Started, its Duration, its progress in Steps (for example “2 of 3”), its Credits, and a link to its Logs. Filter by status (All statuses), by trigger (All triggers), or with Filter by run ID, and use Load more to go further back. Each run’s menu offers Copy Run ID, View Logs, Cancel run, and Retry.

Run Logs

View Logs opens the run’s logs:
  • Header: the run’s status, the version it ran on, the credits it used, and the View version, Cancel run, and Retry buttons
  • Banners: what the run is waiting for, such as a reply, and the error if the run failed
  • Trigger data: the full data that started the run
  • Steps: each step in order, with the branch it took, an Iteration badge for steps repeated by a loop, a Waits section showing when a wait expires or was resolved, and the step’s input and output

Seeing a Run on the Canvas

Click View version to draw the run on the canvas of the version it ran on. The branches the run took are highlighted, and each step’s border shows what happened to it: green for completed, red for failed, blue for running, amber for waiting, and dashed for skipped. Steps repeated by a loop show how many times they ran.

Cancelling a Run

Choose Cancel run and confirm. The run stops after its current step, and a “Cancellation requested” banner appears until it does. Steps that already ran are not undone.

Retrying a Run

Retry starts a new run from the beginning, with the same trigger data, on the version the original run used. The new run shows “Retry of run” followed by the original run’s ID. Retry is available for finished runs while the workflow is live and fully published.
A retry runs every step again, so messages the original run already sent are sent a second time. Check the original run’s logs before retrying a run that sent emails, text messages, or calls.
Automatic retries are different: when Dimedove retries a step on its own after a temporary problem, messages that already went out are never sent again. See Reliability and Consent.

Analytics

The Overview tab charts your workflow’s activity over the Last 30 days, Last 6 months, or Last year:
  • Run History: runs over the selected period
  • Total Runs: the number of runs in the period
  • Success Rate: the percentage of runs that completed successfully
  • Avg Duration: the average time a completed run took
Each metric compares the selected period to the previous one, so you can see how the workflow trends over time.

Examples

Notify Your Team on Form Submission

Email your sales team whenever a lead completes your contact form:
  1. Create a workflow named “Notify Sales on Contact Form”
  2. Add a Form Submission trigger, filtered to your “Contact Us” form
  3. Add an Email step with:
    • From: Default (Dimedove)
    • To: sales@yourcompany.com
    • Subject: New lead: {{trigger.body.form_data.first_name}} {{trigger.body.form_data.last_name}}
    • Body (Static): A new lead submitted the Contact Us form. Email: {{trigger.body.form_data.email}}, phone: {{trigger.body.form_data.phone}}.
  4. Publish the workflow and turn it on

Post to Slack When Human Help Is Needed

Notify a Slack channel whenever an agent asks for a person:
  1. Create a workflow named “Alert Team on Escalation”
  2. Add a Human required trigger (no filters, to fire for any agent)
  3. Add a Slack step with:
    • Channel: #support-escalations
    • Message (Static): {{trigger.body.agent_name}} needs a person in "{{trigger.body.chat_title}}" (conversation {{trigger.body.chat_id}})
  4. Publish the workflow and turn it on

Route New Contacts by Size

Hand larger prospects to an agent as a goal, and send everyone else a welcome email:
  1. Create a workflow named “Route New Contacts”
  2. Add a Contact Created trigger, filtered to your website agent
  3. Add a Condition checking that trigger.body.attributes.company_size (a contact attribute you defined) is greater than 50
  4. On the True branch, add a Start goal step with the goal “Book an introduction call with this contact”
  5. On the False branch, add an Email step in Prompt mode, with instructions to welcome the contact and point them to your getting started guide
  6. Publish the workflow and turn it on

Text, Then Follow Up If There Is No Reply

Text new contacts who came in through a form, and let a teammate know if they have not answered within two days:
  1. Create a workflow named “Welcome New Contacts by SMS”
  2. Add a Contact Created trigger, filtered to the Forms channel
  3. Add a Delay of 30 minutes with Business hours only turned on
  4. Add an SMS step from your team phone number, to {{trigger.body.attributes.phone}}, with a short welcome message
  5. Add a Wait for event step: Reply received, waiting on The run’s contact, with a Timeout of 2 days
  6. On the Timeout branch, add a Notify teammate step emailing your sales lead
  7. Publish the workflow and turn it on

Forward Webhook Data to an External API

Receive data from an external system and forward it to another API:
  1. Create a workflow named “Forward to CRM”
  2. Add a Webhook trigger and copy its URL
  3. Add an HTTP Request step with:
    • Method: POST
    • URL: https://api.yourcrm.com/contacts
    • Headers: Authorization: Bearer your-api-key
    • Body: {"email": "{{trigger.body.email}}", "name": "{{trigger.body.name}}", "source": "dimedove"}
  4. Publish the workflow and turn it on
  5. Configure your external system to send POST requests to the webhook URL