Marketing Automations

Visual customer journeys with your own email & SMS providers — segments, compliance, analytics, A/B tests, and AI-assisted building.

Overview

Marketing automations let you build visual customer journeys on Becomy: welcome emails after signup, cart recovery sequences, post-purchase follow-ups, product browse retargeting, VIP segments, A/B tests, and more. You design flows on a canvas, connect steps with arrows, and Becomy runs them automatically for each contact who matches your trigger and entry filters.

Each automation is called a scenario. A scenario has one trigger (what starts the journey), a graph of steps (what happens next), and enrollments (individual contacts moving through the flow).

What’s included

Tip: Scenarios must be activated (or scheduled) before they run. Draft scenarios are saved but do not enroll anyone.
Also see: Marketing Campaigns — dated marketing campaigns with a Copilot + canvas (distinct from triggered automations).

Getting started

1. Connect your integrations (first time)

Go to Marketing → Integrations and connect at least your email provider before going live. See Integrations & delivery setup for SendGrid, Mailgun, Twilio, and Stripe details.

2. Open the flow editor

From your store admin, go to Marketing → Automations (flow editor).

3. Pick a template (recommended)

On the scenarios list, click a template card — Welcome series, Cart recovery, Post-purchase, Win-back, VIP thank you, or Review request. Each opens the editor with a ready-made flow you can customize.

4. Build your flow

  1. Click step types in the left palette to add nodes to the canvas.
  2. Drag nodes to arrange them.
  3. Connect steps by dragging from an output port (bottom of a node) to an input port (top of another node).
  4. Click any node to edit its settings in the right panel.
  5. Click the trigger node to rename the scenario, pick a segment, set entry filters, and configure when contacts enter.
  6. Use the AI Assistant panel at the bottom to describe your flow in plain language.

5. Test, save, and go live

  1. On an email step, use Preview or Send test to me (requires connected email provider).
  2. Click Save to persist your graph (Ctrl+S also works).
  3. Connect at least one step to the trigger — otherwise activation is blocked.
  4. Click Go live to start enrolling contacts, or set a scheduled activation date on the trigger.
  5. Use Pause to stop new enrollments without deleting the scenario.
Public documentation: This guide is available without signing in at /docs/marketing-automations on your store domain or on becomy.com.

Integrations & delivery setup

Before your automations can send emails or SMS in production, connect your own provider accounts. Keys are stored per store, encrypted at rest, and never shown in full after saving (masked as ••••1234).

Open the integrations hub

Go to Marketing → Integrations in admin, or visit /admin/integrations on your store domain while signed in as an admin.

IntegrationPurposeWhat you need
Email delivery All automation emails and test sends SendGrid, Mailgun, Postmark, Amazon SES, or custom SMTP — plus a verified from email and optional from name.
SMS (Twilio) Text messages from SMS steps Twilio Account SID, Auth Token, and a sending phone number.
Store payments (Stripe) Your storefront checkout (customer payments) Stripe publishable + secret keys for your Stripe account.
Not the same as Becomy billing: Your Becomy subscription is billed separately via Settings → Billing. Do not paste your Becomy billing Stripe keys into the store payments integration.

Setup workflow

  1. Choose a provider card on the integrations hub (status: Not set up / Connected / Needs attention).
  2. Enter credentials — inline hints point you to each provider’s console.
  3. Click Save credentials, then Test connection.
  4. When status is Connected, return to the flow editor and go live.

Email deliverability (recommended)

After connecting SendGrid, Mailgun, or Postmark, authenticate your sending domain (SPF, DKIM, DMARC) in the provider’s dashboard. This improves inbox placement for marketing emails.

Editor behavior without integrations

In development, Becomy may fall back to the platform mailer when no merchant email provider is configured. Production automations should always use your own provider.

Compliance & consent

Becomy blocks marketing sends when a contact has opted out, lacks consent, or is on your suppression list. Transactional flows can bypass consent when configured.

Marketing consent

Transactional vs marketing

On the trigger node, set communication type to transactional for order confirmations and other essential messages that should send even without marketing consent. Leave as marketing (default) for promotional flows.

Unsubscribe

Every automation email automatically includes an unsubscribe footer with {{ unsubscribe_url }} (you can also place this variable manually in your template). When a contact clicks the link:

Public URL format: /marketing/unsubscribe/:token on your store domain. Suppressions are visible read-only under Marketing → Email suppressions in admin.

Frequency caps

Limit how many marketing emails a contact receives per rolling 7-day window (default: 5 per week, configurable in marketing store settings). When the cap is reached, the email step is skipped and logged as skipped_frequency_cap.

What the send gate checks

Before every email or SMS, Becomy verifies:

  1. Marketing consent (unless transactional)
  2. Contact is not globally unsubscribed
  3. Email is not on the suppression list
  4. Frequency cap not exceeded

The visual editor

The editor has four areas:

Connecting steps

Draw a connection from the small circle at the bottom of a node to the circle at the top of the next node. Click a connection line to remove it.

Branching nodes

Some nodes have multiple output ports:

Each port should connect to a different path so contacts follow the right branch.

Email step tools

Toolbar

Duplicate scenarios

From the scenarios list, duplicate any scenario to clone all steps and edges into a new draft. Bulk export enrollments and bulk pause are also available from the list page.

Deleting steps

Click the × on a step node to remove it. Connections to that step are removed automatically. The trigger node cannot be deleted.

Triggers

A trigger defines when a contact enters a scenario. Select the trigger on the trigger node and configure options in the settings panel.

Trigger When it fires Options
Order created A customer completes checkout and a new order is recorded. Re-enrollment policy, segment, entry rules.
Order fulfilled An order’s fulfillment status changes to fulfilled. Ideal for shipping confirmations, review requests, or loyalty offers.
Customer signed up A new customer account is created (guest checkouts are excluded). Respects marketing consent by default. Great for welcome series.
Cart abandoned A cart still has items and has not been updated for a set number of hours. Abandoned after (hours) — default 4 hours. Min cart value entry filter uses cart total in context.
Tag added A marketing tag is applied to a contact (manually or by another automation). Tag to watch — leave empty to match any tag, or enter a specific tag name.
Product viewed A customer views a product page on your storefront. Product filter — optional; run only when a specific product is viewed. Guest views are tracked via browse session and merged when the visitor signs in.

Segment & entry filters

On the trigger node you can also set:

See Segments & entry filters for the full rules reference.

Audiences (segments) & entry filters

Audiences are reusable contact groups. Use them on triggers to limit who enters a scenario, or in condition steps to branch the flow.

Two kinds

Managing audiences

Go to Marketing → Audiences (/marketing/segments). Start from a template, or build conditions with the visual rule builder (no JSON required). Use Preview count before saving.

Supported segment rules

FieldDescription
has_tagContact has a marketing tag
orders_countNumber of orders (with operator)
total_spentLifetime order value
last_order_days_agoDays since last order
average_order_valueAverage order amount
purchased_product_idBought a specific product
email_opened_in_daysOpened an email in the last N days
email_clicked_in_daysClicked an email link in the last N days
marketing_consentWhether consent is true/false
in_segment_idNested segment membership
email_suffixEmail domain suffix (e.g. gmail.com)
first_name / last_nameName is / contains (e.g. Julie)
birthdayDay+month every year (e.g. 7 août, 07-08)
date_of_birthFull DOB (before / after / eq)
shipping_city / shipping_countryEver shipped to (any order/address)
phone_country_codeCalling code from E.164 phone (e.g. 33)
paid_with_card_schemePaid at least once with brand (visa, mastercard, …)
purchased_product_idBought a specific product
purchased_collection_idBought any product from a collection

Trigger entry filters

On the trigger node, in addition to choosing an audience:

Condition step: In segment

Add a Condition step with check type In segment and pick an audience to branch yes/no mid-flow.

Customers filter

On Customers, filter the list by audience to see who would be targeted before you wire the automation.

Steps

Steps are the building blocks of your scenario. Add them from the palette and connect them in order.

Messages

StepWhat it does
Send email Sends via your connected email provider (SendGrid, Mailgun, etc.). Subject and body support Liquid personalization. Opens and link clicks are tracked automatically; links include UTM parameters (utm_source=becomy, utm_medium=email, utm_campaign, utm_content). Unsubscribe footer is appended automatically.
Send SMS Sends a text via your connected Twilio account using Liquid in the body. Uses the phone number from enrollment context or the contact’s most recent order. Requires Twilio integration at /admin/integrations.

Logic

StepWhat it does
Delay Pauses the contact for a set amount of time (minutes, hours, or days) before continuing. Optionally set Send at hour (0–23) to deliver the next step during a specific hour in your store timezone.
Condition Branches the flow on yes/no based on contact data, segments, cart value, or email engagement. See Conditions & email tracking.
A/B split Routes contacts to variant A or B — random split or winner mode after an evaluation period. See A/B testing.

Actions

StepWhat it does
Grant coupon Makes a coupon code available to the contact. Choose an existing store coupon or enter a code manually. The code is stored as {{ context.coupon_code }} for use in emails. Optionally add a tag when the coupon is granted.
Webhook Sends a JSON payload to an external URL (POST or GET). Payload includes contact, store, scenario name, segment (if any), funnel position, UTM campaign, and full enrollment context.
Add tag Applies a marketing tag to the contact. Can trigger other tag-based scenarios.
Remove tag Removes a marketing tag from the contact.
Exit Stops the scenario for this contact immediately (status: exited).

Conditions & email tracking

How email tracking works

Every email sent by an automation includes an invisible tracking pixel and rewrites links so Becomy can record opens and clicks. Links are tagged with UTM parameters for analytics in your store and external tools. No extra setup is required beyond connecting your email provider.

Using conditions after an email

A typical engagement branch looks like this:

Send email → Delay (e.g. 2 days) → Condition: Opened email? ├─ yes → Send follow-up with offer └─ no → Send reminder with different subject

Condition types

CheckDescription
Contact has tag Whether the contact currently has a specific marketing tag.
Total orders Compare the contact’s order count using >, ≥, =, ≤, or <.
Total spent Lifetime revenue from the contact’s orders.
Cart value Cart total from enrollment context (cart abandonment flows).
In segment Whether the contact matches a saved segment’s rules.
Opened email Whether a tracked email was opened. Optionally pick which email step to check; default is the most recent.
Clicked email link Whether the contact clicked a link in a tracked email. Same step selector as opens.
Tip: Always add a delay before an open/click condition so contacts have time to engage with the email.

A/B testing

The A/B split step routes contacts into two paths so you can compare different messages, offers, or timing.

Random split (default)

  1. Add an A/B split step where you want to branch.
  2. Set mode to Random split.
  3. Set Variant A traffic (%) — e.g. 50 means half go to A and half to B.
  4. Connect the left port (a) to your first variant path.
  5. Connect the right port (b) to your second variant path.

Winner mode

After an evaluation period, remaining contacts at the split can be routed to the winning variant based on email performance:

  1. Set mode to Winner after evaluation.
  2. Choose Winner metric: open rate or click rate.
  3. Set Evaluation days (e.g. 7) — Becomy evaluates daily via marketing:evaluate_ab_winners.
  4. Connect variant A and B paths to different email steps so metrics can be compared.

Example

Trigger: Cart abandoned → A/B split (50% / 50%) ├─ a → Email: "10% off with code SAVE10" └─ b → Email: "Free shipping today only"

Each contact’s assigned variant is stored on their enrollment. Compare results in Analytics for the scenario (funnel + per-step open/click rates) or inspect enrollments in admin.

Personalization with Liquid

Email subjects, email bodies, and SMS messages support Liquid variables. Use double curly braces: {{ variable }}.

Available variables

VariableDescription
{{ user.first_name }}Contact’s first name
{{ user.last_name }}Contact’s last name
{{ user.email }}Contact’s email address
{{ store.name }}Your store name
{{ store.url }}Your storefront URL
{{ context.coupon_code }}Coupon code after a Grant coupon step
{{ context.order_id }}Order ID when triggered by an order event
{{ context.product_title }}Product title for product viewed triggers
{{ context.cart_total }}Cart value for abandonment triggers
{{ unsubscribe_url }}One-click unsubscribe link (also auto-appended in footer)

Example email body

Hi {{ user.first_name }}, Thanks for shopping at {{ store.name }}! Use code {{ context.coupon_code }} for 10% off your next order. Visit us: {{ store.url }} <a href="{{ unsubscribe_url }}">Unsubscribe</a>

Re-enrollment policies

Control how often the same contact can enter a scenario. Set this on the trigger node under Re-enrollment policy.

PolicyBehavior
One active run at a time Default. A contact cannot enter again while already active in this scenario, but may re-enter after completing or exiting.
Once per contact (never re-enroll) Each contact enters at most once, ever — even if they place multiple orders or abandon carts again.
Cooldown between enrollments A contact must wait N days since their last enrollment before entering again. Set Cooldown (days) on the trigger.
Allow concurrent enrollments The same contact can be enrolled multiple times simultaneously. Useful for product-viewed triggers where each browse may deserve its own journey.
Cart abandoned: Becomy also prevents duplicate enrollments for the same cart, regardless of policy, so one abandoned cart does not create multiple parallel flows.

Snippets, scheduling & version history

Email snippets

Reusable email blocks live at Marketing → Email snippets (/marketing/snippets). Start from a recipe (welcome, drop alert, cart nudge, VIP thanks, review ask, win-back, trust footer, collab code), drag smart tags into the subject or body, and check the live preview with sample shopper data.

In an automation, select an email step and use the Insert snippet dropdown to append snippet content to the body (and subject when set).

Scheduled activation

On the trigger node, set Scheduled activation to a future date/time. The scenario stays in draft until Becomy activates it automatically (checked every few minutes via marketing:scheduled_activations).

Version history

When saving, you can snapshot the graph to version history. Restore a previous version to your draft without affecting contacts already enrolled in the live flow — in-flight enrollments keep their current step.

Campaign calendar

View active scenarios and upcoming scheduled activations at Marketing → Campaign calendar (/marketing/calendar).

Starter templates

Besides Welcome, Cart recovery, and Post-purchase, you can start from:

Analytics & monitoring

Scenarios list

The automations list at /marketing/automations shows live stats for each scenario:

Scenario analytics page

Open any scenario and click Analytics, or visit /marketing/automations/:id/analytics. You’ll see:

Contact journey

View a single contact’s timeline at /marketing/contacts/:user_id/journey — enrollments, step events, email deliveries, and tags. Useful for support and debugging.

Step event log

Every step records events: started, completed, failed, or skipped (e.g. when send gate blocks an email due to consent, suppression, or frequency cap).

Admin resources

Under Marketing in your Becomy admin:

Enrollment statuses

StatusMeaning
ActiveContact is in the flow, possibly waiting on a delay.
CompletedContact finished all connected steps.
ExitedContact hit an Exit step.
FailedA step error occurred (e.g. provider misconfiguration). Check context for details.

Example workflows

Welcome series (with consent)

Trigger: Customer signed up (marketing consent required) → Send email: "Welcome to {{ store.name }}!" → Delay: 3 days → Condition: Opened email? ├─ yes → Add tag "engaged" └─ no → Send email: "We miss you — here's 10% off" → Grant coupon: WELCOME10 → Send email with {{ context.coupon_code }}

Cart recovery with segment

Trigger: Cart abandoned (4 hours, min cart value $30) → Segment: "Active shoppers" (optional) → Send email: "You left something behind — {{ context.cart_total }}" → Delay: 24 hours → Condition: Total orders > 0? ├─ yes → Exit (they purchased elsewhere) └─ no → Send SMS: "Your cart is waiting at {{ store.name }}"

Post-purchase review ask

Trigger: Order fulfilled → Delay: 7 days (send at hour: 10) → Send email: "How was your order?" → Webhook → your CRM or review platform

Product browse retargeting (guests + members)

Trigger: Product viewed (specific product optional) → Delay: 1 hour → Send email: "Still thinking about this item?" → A/B split — winner mode, 7 days, metric: click rate ├─ a → Grant coupon + email with code └─ b → Send email without discount

VIP win-back

Trigger: Order created → Entry filter: min 3 orders (or use VIP segment) → Delay: 60 days → Send email: "We miss you, {{ user.first_name }}" → Condition: In segment "lapsed VIP"? └─ yes → Grant coupon + follow-up email

Frequently asked questions

Why isn’t my scenario enrolling anyone?

Why didn’t my email send?

Can I edit a live scenario?

Yes. Save changes anytime. Contacts already enrolled continue from their current step; new contacts use the updated graph from their entry point. Use version history to restore an earlier draft without affecting in-flight enrollments.

Do emails include an unsubscribe link?

Yes. Becomy automatically appends an unsubscribe footer with {{ unsubscribe_url }}. Clicks add the contact to your suppression list and set unsubscribed_at. See Compliance & consent.

How do SMS messages send?

Connect Twilio at /admin/integrations with your Account SID, Auth Token, and from number. SMS steps use the same credentials as production. Contacts can reply STOP to opt out (handled via Twilio webhook).

Does product viewed work for guests?

Yes. Anonymous visitors get a browse session cookie; product views are merged when they sign in or register, then matching product viewed scenarios can enroll them.

What data does a webhook receive?

A JSON body including:

Where can I get help?

Share this documentation with your team at /docs/marketing-automations. For technical issues, contact Becomy support through your admin dashboard.

AI assistant & MCP

Becomy includes in-editor AI assistants and a Model Context Protocol (MCP) server so you can build automations with natural language — in the browser or from Cursor, Claude Desktop, and other MCP clients.

In-editor AI assistants

SurfaceAgent kindWhat it does
Marketing flow editor marketing Build and edit scenario graphs, query segments and analytics
Theme editor theme Edit Dawn-compatible theme sections and files (draft only)
Strategy advisor strategy Read-only commerce and scenario analysis

Marketing flow editor

  1. Open any scenario in the flow editor.
  2. Use the AI Assistant panel at the bottom of the screen.
  3. Describe what you want, e.g. “Build a VIP segment welcome with a coupon for customers with 3+ orders.”
  4. The assistant updates the canvas automatically. Review the flow, tweak if needed, then click Save.
  5. Use New chat to start a fresh conversation; prior turns are restored via chat_id.
Requires: OPENAI_API_KEY on your Becomy server (or openai.api_key in Rails credentials). Without it, assistants return a configuration error. Full agent API details: MCP docs — AI agents.

MCP integration (Cursor & external agents)

Connect your store’s MCP endpoint to build or audit scenarios from your IDE. Full setup instructions: Becomy MCP documentation.

Marketing MCP tools

ToolDescription
list_marketing_scenariosList scenarios with enrollment stats
get_marketing_scenarioFull graph JSON for one scenario
create_marketing_scenarioCreate a new draft scenario
save_marketing_scenario_graphSave steps and edges from the editor format
activate_marketing_scenarioGo live (requires confirmation in the in-app agent)
pause_marketing_scenarioPause enrollments
duplicate_marketing_scenarioClone scenario with all steps and edges
list_marketing_segmentsList audience segments and rules
get_scenario_analyticsFunnel, email stats, revenue attribution
get_store_integrations_statusConnection status (no secrets returned)

Example Cursor prompt

Using the becomy MCP server, check my integrations status, list segments, then build a cart recovery flow: segment "high-value carts" with min cart $50, two emails 24h apart, A/B test subject lines with winner after 7 days.