Build a workflow

Automation

Build a workflow

Automations send the right email at the right moment, hands-free. A workflow starts with a trigger, then runs a series of steps: emails, delays and branches. For each contact who enters it.

On this page30 sections

Anatomy of a workflow#

  • Trigger: what starts it. A contact subscribes (optionally only from one specific signup form), abandons a checkout, adds to cart without buying, views a product or browses the store and leaves, places an order, has a birthday, or earns loyalty points.
  • Email step: an email built in the same drag-and-drop builder as campaigns.
  • Delay: wait a set time, or until a time of day, before the next step. Tick Continue only on the selected days of the week to keep the next email off the days you choose: a wait that would end on a Sunday slides to Monday, at the same hour, in your store's timezone.
  • Split: branch contacts down different paths based on a condition: whether they opened or clicked an email of the workflow, what the cart or order holds, or Segment membership (in the segment you choose when they reach the split). Both paths can hold steps, and steps placed after the split run for everyone once their path is done.
  • Tag: add a tag to the contact, or remove one, when they reach this point: to mark who got a sequence and segment on it later, or to clear a state another workflow set. A contact Sendcore does not hold yet is created with unknown consent, only to carry the tag.
  • Exit condition: remove a contact when something happens (e.g. they purchase, add to cart or start a checkout).

Create one#

  1. Go to Automations → Create workflow and pick a ready-made workflow (Customize workflow), or click Create from scratch (see Start from scratch).
  2. Choose the trigger.
  3. Add an email step: set subject, preheader and sender (personalization works here too) and, below Sender email, the Language the email is written in. Then Edit content to design it. The language decides the words Sendcore writes into the email, such as the cart's View product button: see The email's language.
  4. Add delays and, if needed, splits between emails.
  5. Set an exit condition so buyers stop receiving the sequence.
  6. Click Start workflow to make it live.

Personalization in automations

Automation emails support the same merge tags as campaigns ({{ contact.first_name }}, {{ contact.last_name }}, {{ contact.email }}) plus, in abandoned cart/checkout workflows, {{ abandoned_checkout_url }} and {{ abandoned_cart_url }} for the recovery links. All rendered per recipient at send time.

Start from scratch#

When none of the ready-made workflows fits, build your own. On Automations → Create workflow, click Create from scratch at the top right.

  1. Choose the Trigger type: what makes a contact enter. The line under the menu says when it fires.
  2. Give it a name if you like. Left empty, the workflow is called Untitled workflow; rename it in the editor with Edit next to the name.
  3. Click Create workflow. The editor opens on the empty workflow, with the trigger's settings in the panel on the right.
  4. Add the steps: drag a block from the column on the left onto the canvas, or click it to add it at the end (see The workflow canvas).
  5. When it is ready, click Start workflow.

The new workflow starts with settings that suit its trigger. Check them in the trigger panel before you start it:

  • Email recipients: Subscribed and non-subscribed for the moments the store owes the customer (a checkout, a cart, the order's moments, a product back in stock, the code of a redeemed reward), Subscribed contacts only for every other trigger. See Who receives the emails.
  • Frequency: a contact enters once when subscribing, and once a year on a birthday or anniversary; every time for the order's moments, a product back in stock and the loyalty notices; at most once a day for a checkout or a cart; at most once every 7 days for a viewed product or page (and not while in another automation), for points earned and for a reward within reach.
  • Trigger filters, exit conditions and audience filters start empty: add the ones you need.

It needs an email or a tag

A workflow can only be started once it has at least one Email or Tag contact step: until then Start workflow says what is missing. Delays and splits alone do nothing for a contact.
  • You can change the trigger in the editor later, but the email recipients and the frequency stay as they are: check them after the switch.
  • Clicking Create workflow again while an empty workflow you never touched has the same name and trigger opens that one, instead of making a copy. Once you change anything in it, the next one is a new workflow.
  • The loyalty triggers need the loyalty programme, on the Pro and Enterprise plans. On another plan the window shows See plans and does not create the workflow.
  • The new workflow is a draft: nothing is sent until you start it.

The workflow canvas#

The editor draws the workflow from top to bottom: the trigger, then a card for each step, on one line that ends at Exit. A card says what its step does in a line or two (an email's subject, a delay's length, the tag it adds); hover over it to read the whole text. Click a card to open its settings in the panel on the right; its menu (⋮) offers Duplicate step and Remove step. Once an email has been sent, its numbers appear at the bottom of its card: see Measure it.

Add and move steps#

To add a step, drag a block from the column on the left (Email, Delay, Split, Tag contact) onto the line: the gap where it will land is highlighted. Or click the block (Enter from the keyboard) to add it at the end of the workflow, and drag it elsewhere later if needed. Drag a card the same way to move its step, into a path of a split too.

A workflow with no steps yet, such as one created from scratch, shows a dashed box under the trigger: drop the first block there, or click it in the column.

The paths of a split#

Below a Split the line parts in two, side by side: the YES path on the left, for the contacts who meet the split's condition, and the NO path on the right, for the others. Each path takes its own steps, and either can stay empty. Below the longer path the two lines meet again: the steps you put there run for every contact once their path is done, whichever it was.

Wider than the screen

A split inside a split can make the workflow wider than the screen. The editor opens on its middle, with the trigger in view: scroll sideways (shift and the mouse wheel, or two fingers on a trackpad) to reach the paths at the sides.

The automations list#

Automations lists every workflow of the store with its status, the Date it was last changed (edited, turned on or turned off) and its results: emails sent, open and click rate, Sales (how many orders the workflow's emails brought in) and their Revenue.

Choose the columns from the gear at the right end of the header row. Customize data lists them: untick one to hide it, tick Created to add the day each workflow was created. To move a column, drag its title left or right. The workflow's name always comes first, and the gear and each row's menu stay at the right edge while you scroll the table sideways. Sendcore remembers your columns on this browser; Reset to default columns brings back the original ones.

Filter the list#

The menus above the list narrow it down: Any channel, Any status (Draft, Enabled, Disabled) and the period, which starts on All time. The search box next to them finds a workflow by its name or its description.

The period menu is the same as the campaigns list's: from Last 7 days to Last year, and Custom period… for any other stretch of days, where you click the first and the last day, then Apply.

The period changes the numbers, never the list: every workflow stays on screen, and its Sent, Open rate, Click rate, Sales and Revenue become what it did in the period. A workflow that did nothing in it shows 0. All time shows the totals since each workflow started. While the period's numbers load, the cells show a grey bar; if they cannot be loaded, the list says so and Refresh tries again.

  • Sales and Revenue count the orders placed in the period. Sent counts the emails sent in it, Open rate and Click rate the opens and clicks that happened in it, as a share of those emails: an open in the period of an email sent before it counts too, so on a short period a rate can reach 100%.
  • Sendcore counts an automation's sends day by day from 1 August 2026: a period that ends before that day shows no sends, while All time includes every email ever sent.
  • Days run from midnight to midnight in UTC, one or two hours behind Italy, as in the reports. Weeks start on Monday.
  • These are the numbers the workflow's editor shows for the same period (see Measure it) and the ones Reports → Automation adds up. Its total, which also keeps the sales of workflows deleted since, is the Automations figure of the Sales report for the same days.
  • The count next to Delete, and Delete itself, only take the ticked workflows you can see: a workflow a filter hides is never deleted, and it is still ticked when it shows again.

When no workflow matches, the list says so: Clear filters brings them all back.

Disable a workflow#

A live workflow can be disabled from Automations (the row's menu → Disable) or from the editor (the Disable button). Either way, Sendcore asks what should happen to the contacts who are currently inside it:

  • Let them finish the workflow (the default): the contacts already inside complete it with the current rules and content, and no new contact enters. Choose it when the sequence is fine and you only want to stop new entries.
  • Exit them from the workflow: the contacts inside leave immediately and receive none of the remaining emails. Choose it when the content is wrong or the automation must stop for everyone, now.

The dialog shows how many contacts are inside at that moment. Confirm with Disable workflow: the status becomes Disabled and new contacts stop entering right away.

  • Enable it again from the same menu or with Start workflow: new contacts enter from that moment on. Nobody is re-enrolled and nothing that was skipped is sent late.
  • While contacts finish a disabled workflow, Currently in on the report still counts them, and an edit to an email applies to the steps they have not reached yet.
  • A contact removed with Exit them from the workflow shows in the report as exited, with the reason workflow_disabled.

Workflows disabled before this choice existed

Their contacts were kept on hold. When you enable such a workflow again, the contacts whose next step came due during the pause are exited (nothing goes out late) and the others continue.

Delete a workflow#

From Automations, delete one workflow from its row menu (Delete) or several at once by selecting them and clicking Delete. If contacts are inside, Sendcore asks the same question as when disabling:

  • Let them finish the workflow: the workflow disappears from the list right away and takes no new contacts; the contacts inside complete it, and it is removed for good once the last one has finished.
  • Exit them from the workflow: the contacts inside receive none of the remaining emails and the workflow is deleted immediately.

Deleting cannot be undone

The workflow, its emails and its report go with it. A workflow with nobody inside is removed immediately whichever answer you give. To keep the report, disable the workflow instead.

An AI agent connected through MCP or Sendcore AI can disable or delete a workflow on your behalf: it must ask you the same question and gets your confirmation in the chat first. Turning a workflow on stays yours to do, in the dashboard.

Automations on the Free plan#

On the Free plan you can email up to 250 distinct contacts in total and send up to 500 emails a month (see Plans & billing). Automation emails count toward both limits, exactly like campaigns.

When a contact reaches an email step and the account is over either limit, that email is skipped: the contact still continues through the workflow (waits, splits, exit conditions) and completes it, but receives nothing, and nothing is sent later. Contacts you have already emailed are never blocked: the 250 are distinct people, not sends.

So that this never comes as a surprise, on the Free plan Start workflow in the editor and Enable in the row menu first open a window with:

  • how many contacts you can still reach and how many emails you can still send this month, with the day the monthly counter resets;
  • how many contacts are currently in the workflow and, of those, at most how many will receive the emails;
  • the Standard price that covers your whole list, with the link See plans.

Start anyway enables the workflow as it is: the window informs, it never blocks. The same counters sit at the top of Automations while the account is on the Free plan.

A lead-generation form on the Free plan

If a form brings in more people than the contacts you can still reach, most of them will complete the welcome or discount workflow without ever receiving its email. Upgrade before enabling the workflow: the price for your whole list is in the window and on Plans & billing. The contacts still waiting on a step are not lost: if you upgrade before their email step comes due, they receive it.

Frequency capping#

The trigger settings protect contacts from over-mailing:

  • Cooldown: skip contacts already enrolled in this automation, either ever or within the last 24 hours / 7 days / 30 days.
  • Cross-automation guard: skip contacts currently in, or that recently completed, another automation, so overlapping flows don't pile up in one inbox.

Ready-made workflows#

On Automations → Create workflow the templates with Customize workflow open in the editor with their trigger, delays and example emails already in place, ready to be edited and started. The other cards show workflows Sendcore does not run yet and stay disabled. The loyalty templates stay visible on every plan. On a plan without the loyalty programme, choosing one shows See plans and does not create the draft.

  • Welcome: one welcome email a minute after a contact subscribes.
  • Welcome series: three emails in the first week: the welcome, your brand's story, a first-order incentive. Whoever buys exits.
  • Abandoned Checkout: three reminders (11 and 12 hours apart) once a checkout has been idle for an hour, with the cart items and total. Whoever completes the order exits.
  • Abandoned Checkout (short): the same trigger and exit, a single reminder.
  • Abandoned Cart: the same recovery sequence, started from the cart.
  • Product Abandonment: a recognised visitor views a product and leaves without adding it to the cart: a reminder two hours after they go quiet and one the next day. Adding to cart or ordering exits; one entry a week per contact.
  • Browse Abandonment: a recognised visitor browses the store and leaves without buying: one email an hour after they go quiet, same exits and weekly cap.
  • Order Followup: a week after every order, one email to ask for a review or suggest the next purchase; a customer enters at most once every 30 days.
  • Product Reviews: a week after the order is fulfilled, one email asking for a review; a cancelled order exits; at most one request a month per customer.
  • Replenishment Reminder: a month after an order, one email to buy again; add the Product name filter for the products that run out; whoever reorders exits.
  • Back in Stock: one email the moment a sold-out product someone asked about is back, naming and linking it.
  • Order Confirmation: the moment the order is paid, one email confirming it.
  • Shipping Confirmation: the moment the order is fulfilled, one email announcing the shipment.
  • Birthday: a greeting at 09:00 on the contact's birthday.
  • Anniversary: the same greeting on the yearly return of a date kept in a custom property you choose (a wedding date, a first purchase), read as YYYY-MM-DD or DD/MM/YYYY.
  • A few points away: the day after a contact earns loyalty points, if they are at most 100 points short of the next reward, one email that says how many are missing; adjust the threshold in the trigger; at most once a month per contact.
  • A reward to redeem: the moment a contact's points reach a reward they could not afford before, one email naming it; at most once a week per contact. Both need the loyalty programme (Pro and Enterprise plans).
  • Your discount code: the moment a reward is redeemed, one email with the code, including people who are not subscribed.
  • New tier: one email when a member reaches a new loyalty tier.
  • Points for a referral: one email when a member receives points for referring a customer.
  • Points expiring: one email 14 days before loyalty points expire.

Which triggers exist

The trigger list offers exactly what Sendcore runs today: subscribed to marketing, started checkout, added product to cart, viewed product, viewed page, placed order, paid for order, order fulfilled, order cancelled, order refunded, product back in stock, birthday, anniversary (custom date), earned loyalty points, reward available, reward redeemed, tier reached, referral points awarded, points expiring. The order triggers start from what your store reports, Shopify or WooCommerce; a WooCommerce order older than two days that the initial sync imports is recorded but starts nothing.

The order's moments#

An order has a life after it is placed, and each moment can start a workflow: Paid for order (Shopify: payment captured; WooCommerce: status Processing or Completed), Order fulfilled (Shopify: fulfilled; WooCommerce: Completed), Order cancelled and Order refunded (Shopify: every refund; WooCommerce: Refunded). Each moment is recorded once per order, so a store that resends the same update starts nothing twice.

  • Ordered a specific product: use Placed order (or any order moment) with the trigger filter Product name contains a word. The order must hold a line item whose title contains it.
  • A discount for the larger size of the product they just bought: the Small format filter, described in A discount for the larger size.
  • The exit condition Order cancelled stops a shipping or review flow whose order was cancelled meanwhile.
  • These messages are what the store owes the customer: the Order Confirmation, Shipping Confirmation and Product Reviews templates reach Subscribed and non-subscribed customers (see Who receives the emails).
  • Shopify stores connected before these triggers existed receive the new order webhooks automatically at their next sync, which runs every six hours.

The order in the email#

A contact who enters through an order brings the order along. In the subject and the text, {{ event.order_number }} is its number, {{ event.order_total }} and {{ event.currency }} its total; the tag picker of the email step offers them. The Abandoned products and Order total blocks, in an order workflow, show what that order holds and its totals instead of the latest cart, so the Order Confirmation and Shipping Confirmation templates list what was bought. The cart link in those blocks points to the store, since there is no checkout to recover.

One workflow per product#

To send buyers emails about what they bought (how to use it, tips, a review request), create one Placed order workflow per product and give each the trigger filter Product name contains, with a word from that product's name. The filter reads every product in the order and ignores capital letters, so hoodie matches Blue Hoodie and HOODIE / XL alike.

  • An order holding products of two of these workflows enters both. If each one opens with the same thank-you email, the customer receives it twice: keep the thank-you in a single Placed order workflow without the filter, and leave in the product workflows only the emails about that product.
  • A word found in several product names matches all of them, a bundle named after two products included. Pick a word only that product's name contains.
  • Only on the first order lets in a customer's first order at your store and nothing else. A customer who bought something before and now buys this product for the first time does not enter. To reach every customer the first time they buy the product, leave it off: with Skip contacts who have already been in this automation ticked and at any time chosen, each customer enters the workflow once. Customers who bought the product before the workflow was turned on enter on their next order of it.
  • Sendcore recognises a first order from the orders it holds for that email in your store: the ones received since the store was connected, plus the history imported when you connected it. A customer whose earlier orders are older than that history counts as new.

A discount for the larger size#

When a customer buys a small size of a product, one automation can send a single-use code that applies only to the larger sizes of that same product. The email does not name a product. The order says which size was bought, and the code follows.

  1. Each size is a variant of one Shopify product, not a separate product. The size is the same option on every product, for example Formato. Every value contains a number and the unit, such as 2 ml, 10 ml, 50 ml or 100 ml. A value with no number, such as Campioncino on its own, is ignored. Campioncino 2 ml counts as 2 ml.
  2. Open Automations, create or edit a workflow, and set the trigger to Paid for order or Placed order. Add the trigger filter Small format. Write the option name, choose the unit (ml, cl, g or oz) and set the maximum size that still counts as the small purchase. With option Formato, unit ml and maximum 10, a 2 ml or a 10 ml purchase qualifies.
  3. In the email, add a Discount block. Under Apply discount to, choose Larger formats of the purchased product. Set the percentage or the fixed amount, and the expiry, as for any other code. The code stays single use.
  4. To name the sizes the code covers, write {{ event.step_up_products }} in the text. The tag picker of the email step offers it on order triggers. It stays empty when the filter did not run.
  • Someone who buys the 2 ml receives one code. At checkout it applies only to the larger variants of that product, such as 10 ml, 50 ml and 100 ml, not to other products and not to the 2 ml they already bought.
  • Someone who already bought a larger size of that product in the same order does not enter the workflow for it. Two different small products in one order produce one code, valid for the larger variants of both.
  • cl and oz are converted into the unit you chose when that unit is a volume (ml, cl or oz). Grams are compared only with grams. A value the filter cannot read never qualifies, and Sendcore does not guess a size from the product name.
  • A campaign has no order to read, so Larger formats of the purchased product cannot be used there. The send refuses the email instead of creating a code for the whole catalogue.
  • WooCommerce cannot use this filter yet. The code needs a connected Shopify store.

No small size, no email

If the order does not contain a qualifying small size, Sendcore does not start the workflow. Nobody receives an email with an empty code or a code for the whole store.

Back in stock#

A shopper who finds a product sold out can ask to be told when it returns; the Back in Stock template emails them the moment your store reports stock for it. Shopify stores only for now: the button lives on your product pages and the restock signal comes from Shopify.

  1. Open the template from Automations → Create workflow and, in the trigger panel of the Product back in stock trigger, switch on Storefront button. Within a few minutes, a "Notify me when it's back in stock" box appears under the add-to-cart button of every product page whose selected variant is sold out (it follows the variant the shopper picks).
  2. Write the email. Use {{ event.product_title }} to name the product and {{ event.product_url }} as the button link; {{ event.variant_title }} holds the size or colour they asked about. The template already does.
  3. Start the workflow. When Shopify reports stock for a variant someone is waiting for, they enter the workflow once per request and receive the email; a request for the product as a whole is answered by any variant coming back.
  • Asking is a request, not a marketing opt-in: a new contact is recorded without marketing consent and receives only this notice (the template reaches Subscribed and non-subscribed customers). They join your campaigns only through a real subscription.
  • A request waits until you have an enabled back-in-stock workflow: switching the button on before the workflow loses nobody.
  • Narrow the flow with the Product name trigger filter if only some products should announce their return. Merchants on WooCommerce cannot use this flow yet.

Loyalty points#

When the loyalty programme is on, two triggers follow the points. Earned loyalty points starts every time the programme credits points to a contact: a paid order, or points you give by hand from the Loyalty page. Reward available starts when, with the points just earned, the contact's balance reaches the cost of a reward it did not reach before. Each movement starts a workflow once: a store that resends the same payment starts nothing twice.

  1. Open A few points away or A reward to redeem from Automations → Create workflow, or choose the trigger in the trigger panel of any workflow.
  2. On Earned loyalty points, keep or adjust the trigger filter Points to next reward at most N: only contacts within N points of the next reward they cannot afford yet enter. Without the filter, every credit starts the workflow. Set N to what a typical order earns, so the reminder reaches those one purchase away.
  3. Write the email. {{ event.points_earned }} is what the movement credited, {{ event.next_reward_name }} and {{ event.points_to_next_reward }} the reward within reach and the gap; on the reward trigger, {{ event.reward_name }} and {{ event.reward_points }} are the reward and its cost. {{ loyalty.points }} is always the balance at send time. The templates already use them.
  4. Start the workflow. Contacts enter the moment the programme credits the points; the Frequency settings cap how often (the templates: once a month for the reminder, once a week for the reward).
  • Balances imported from another programme (Loyalty → Import balances) enrol nobody: they are history, not news. Points taken back by a refund, a cancellation or a redemption start nothing either.
  • A contact who redeems a reward and later climbs back to its cost enters Reward available again: it is a new reward within reach. The workflow's cooldown decides whether they are written to.
  • Points are marketing news: the templates reach Subscribed contacts only. A customer without marketing consent earns points all the same and sees them in the storefront widget, but receives no email.
  • Workflows on these triggers can be started only on the plans that carry the programme (Pro and Enterprise); on another plan Start workflow says so.

Exit conditions#

An exit condition removes a contact from the workflow the moment it is true; Sendcore checks the conditions before every step, so a contact never receives an email that has become pointless. Add them in the trigger panel under Exit conditions.

  • Placed order, Added product to cart, Started checkout: what the store reports for that contact after they entered (orders come from the store's webhooks, cart and checkout from the storefront tracking).
  • Opened an email of this workflow, Clicked an email of this workflow: the contact engaged with any email of this same workflow since they entered. Useful to stop a reminder sequence at the first reaction.
  • Is in segment, Is not in segment: membership of the segment you choose, as it stands when the step is about to run (a filter segment counts as of its last refresh). A condition without a segment exits nobody, and the workflow cannot start until you choose one.

Always an exit

Whoever unsubscribes, or whose address bounces or reports spam, leaves every workflow at the next step regardless of the conditions you set.

Who receives the emails#

In the trigger panel, under Workflow channel settings, Email recipients decides whether a contact who entered the workflow but has no marketing consent receives its emails.

  • Subscribed contacts only: a contact without consent skips the email and stays in the workflow (a later email may find them subscribed). The default of the marketing presets: welcome, product and browse abandonment, birthday.
  • Subscribed and non-subscribed: also reaches contacts without consent who entered through their own action, a checkout, a cart, an order. The default of the checkout, cart and order follow-up presets: those are the messages the store owes the customer. Use it only for such messages.

Never the unsubscribed

Whatever the setting, a contact who unsubscribed, or whose address bounced or reported spam, exits the workflow before any email. Workflows created before this setting existed keep sending as they always did, to everyone who entered; open the trigger panel to check what yours says.

Audience filters#

Trigger filters narrow the event (which form, which page, which product); audience filters narrow the people, whatever the trigger. Add one in the trigger panel under Audience filters: Only contacts in segment lets in only the members of the segment you choose, Only contacts not in segment keeps its members out. Several filters must all be true.

Membership is checked at the moment the contact would enter (a filter segment counts as of its last refresh). Typical uses: a win-back flow only for customers who have not bought in six months, a browse-abandonment flow that skips your VIP segment, an order follow-up only for first-time buyers.

Viewed product and viewed page#

The two browsing triggers read the storefront tracking: they only see recognised visitors, that is shoppers who are logged in or whose browser has already identified with your store (see Identifying visitors), and only if the visitor consented to tracking. An anonymous visitor cannot enter.

  • Viewed product: the visitor opened a product page. Viewed page: any page of the store.
  • The contact enters only after the inactivity time you set (30 minutes by default) with no further activity in the store, and only if they did not add to cart, start a checkout or place an order after the view: those visitors belong to the cart and checkout workflows.
  • Narrow the trigger with a filter: Product name contains a word for viewed product, Page URL contains a path (for example /collections/sale) for viewed page. The filter reads the product title and the page path the store reports.
  • Keep the Frequency settings on: the presets skip a contact who entered in the last 7 days and one who is already in another automation, so a regular browser is not written to every day.

Common workflows#

Welcome / first purchase#

Trigger on a new subscriber, greet them, and introduce your brand or a first-order incentive.

Abandoned cart / checkout#

Trigger when a shopper adds to cart or reaches checkout without buying, wait, then remind them: with cart items and, optionally, a unique discount code. Exit on purchase.

Browse / product abandonment#

Trigger when a recognised visitor views a product, or any page, and leaves without adding to cart. Wait a couple of hours, then bring them back, with a Product recommender block showing their recently viewed products if your plan includes it. Exit on add to cart or purchase.

Post-purchase follow-up#

Trigger on an order, wait a few days (the Customer breakdown shows your customers' average days between orders), then ask for a review or propose what to buy next.

Birthday#

Trigger on a contact's birthday (captured by a form's date field) with a treat.

Measure it#

Once a workflow has been started, its editor shows four numbers above the canvas: Entered (the contacts who entered it), Exited (those who left before the end: an exit condition came true, they unsubscribed, or a step failed), Completed (those who reached the end) and Currently in (those inside right now, waiting for their next step). At the bottom of each email's card on the canvas, Sent, Opened and Clicked give its sends, open rate and click rate, and Sales the revenue of the orders it brought in.

The menu at the right of the four numbers picks the period they count. The editor opens on All time; the menu also offers Last 7 days, Last 30 days, Last 90 days, This week, This month, This year, Last week, Last month and Last year. For any other stretch of days, choose Custom period…, click the first and the last day in the calendar, then Apply.

  • Entered, Exited and Completed count the contacts who entered the workflow in the period, wherever they are now.
  • Each email's Sent counts the emails sent in the period, Opened and Clicked the opens and clicks that happened in it, and Sales the orders placed in it: the same numbers as the automations list for that period. Contacts who entered before the period keep receiving emails, so an email can have sends in a period nobody entered.
  • Sends are counted day by day from 1 August 2026: a period that ends before that day shows no sends. All time includes every email ever sent.
  • Currently in is always who is inside now: the period does not change it.
  • Days run from midnight to midnight in UTC, one or two hours behind Italy, as in the reports. Weeks start on Monday.

For lifetime totals, open a workflow's report: the Overview tiles (Contacts entered, In progress, Completed, Exited, Errors, Emails sent, Opens, Clicks, Revenue), the Workflow steps funnel and the Contacts list. See Reports.

Next steps