Lumail
Product
Agents
PricingDocsChangelog
Log inSign up
IntroductionTutorialsAI IntegrationSDKAPI ReferenceIntegrationsFeaturesWorkflows

Ship with Email

Choose an Email MCP for Claude Code, Then Ship the LaunchSend a Newsletter from Cursor, Then Ship the LaunchMove a Launch List from Kit Without Paying for Dormant Subscribers

Tutorials

Create an API TokenSend Transactional Email with SMTPSend React Email Templates with LumailBuild a V0 Capture PageDynamic Promo Codes with Webhooks

AI Integration

Claude Code (Plugin)Codex (Plugin)ChatGPT PluginHermesSkills (CLI)OpenClawCursor (MCP)TypeScript SDK IntegrationsTools API (v2)Examples & Recipes

SDK

SDK IntroductionSDK ConfigurationSDK ResourcesSDK ToolsErrors and Retries

API Reference

API TokensTypeScript SDKCLIMCP ServerTools API (v2)Admin Tools APIRate LimitsSMTP EndpointPOSTSend Transactional EmailPOSTEmail Verification APIPOSTCreate SubscriberGETGet SubscriberPATCHUpdate SubscriberDELETEDelete SubscriberPOSTAdd Tags to SubscriberDELETERemove Tags from SubscriberPOSTTrack EventGETGet Subscriber EventsGETGet All TagsPOSTCreate a TagGETList All CampaignsPOSTCreate CampaignGETGet CampaignPATCHUpdate CampaignDELETEDelete CampaignPOSTSend CampaignPOSTSend Email in HTMLPOSTSend Email in MarkdownPOSTSend Email in TiptapGETList SubscribersGETGet Tag by ID or Name

Integrations

ClickFunnels IntegrationSystemIO Integration

Features

Affiliate ProgramAccount VerificationVariablesTag Action LinksSurveysContent Deliverability CheckerSender HealthCampaign Delivery ScoreEmail Engagement ScoreSubscriber EventsRevenue TrackingEmail Sending Queue

Workflows

WorkflowWorkflow Getting StartedWorkflow TriggersWorkflow Manual EnrollmentWorkflow BranchingWorkflow A/B TestingWorkflow GoalsWorkflow Exit RulesWorkflow Publishing and VersionsWorkflow Test Runs and ResultsWait StepEmail StepAction StepWebhook StepWorkflow Groups

domains

Email DomainsWeb Domains

Workflow Manual Enrollment

Filter subscribers, select all matches, and start a published workflow without waiting for a trigger.

You can enroll people by hand from the subscribers list. Use this when you want a filtered audience to start now, to enter at a specific step, or to run a published workflow without waiting for a trigger event.

The workflow starts immediately after you confirm. It does not evaluate the trigger events or trigger audience filters that normally decide who may enter. It still applies every normal exit rule once the run is active.

Filter the list, then Select all

  1. Open Subscribers.
  2. Add the audience filters you want. Search and status also apply.
  3. Click Select all N subscribers. This selects every subscriber matching the current filters, not only the current page.
  4. Open Actions and choose Add to workflow.

Filtered subscribers list with an email filter and the Select all control

Select all is the control that targets the full filtered set. Ticking rows by hand only enrolls the current page.

Select all banner after every matching subscriber is selected

Actions menu with Add to workflow

Choose the workflow and starting step

The dialog asks for two things:

Add to workflow dialog with workflow and optional starting step

  1. Choose an active, published workflow. Drafts do not appear.
  2. Optionally choose Start from Step. Leave it empty to start at the trigger.
  3. Click Add to workflow.

Workflow picker listing active published workflows

Lumail then enrolls each matching subscriber and dispatches the run. Eligible subscribers begin executing without another click and without a trigger event.

Starting step is optional. Use it to drop someone into a later email, wait, or branch. Omit it when the whole sequence should run from the beginning.

What this bypasses

Manual enrollment skips the trigger configuration on the published graph:

  • Trigger events such as subscriber created, tag added, or payment
  • Event filters such as a specific tag, campaign, or product
  • Trigger audience filters — the subscriber rules on the trigger node

Those rules decide who may enter automatically. They are not re-checked when you add people from the subscribers list. That is intentional: you already chose the audience with the list filters.

An Add to workflow action step inside another workflow behaves the same way for the target workflow: it enrolls without matching the target's trigger.

What this does not bypass

Once the run exists, it is a normal run of the published version.

Exit rules still apply. Before each guarded step, Lumail evaluates the published exitMode and exitRules. A match cancels the run and records an exited timeline event. Manual enrollment does not skip that check.

These enrollment guards also still apply:

GuardResult if it fails
Workflow is not activeEnrollment is skipped
No published versionEnrollment is skipped
Subscriber is not subscribedEnrollment is skipped
An active run already existsEnrollment is skipped
Repeat cooldown is blockingEnrollment is skipped
Workflow-group conflictFollows Latest wins, First wins, or Send first email only
Organization sending is offEnrollment is skipped

Condition steps, waits, wait-until, goals, exit steps, and success goals all still execute as published. Manual enrollment only skips the entry rules, not the exit or in-graph rules.

See Exit Rules and Workflow Groups.

Do this from an agent

Agents should not click the subscribers table. Use the same enrollment engine as Select all:

  1. Call get_skill with { "type": "filters" } if you need filter shapes.
  2. Call count_subscribers or add_subscribers_to_workflow with dryRun: true to preview the match count and published steps.
  3. Call add_subscribers_to_workflow with the same filters and an optional stepId.
  4. For one person, call add_subscriber_to_workflow with email or subscriberId.
{
  "workflowId": "workflow-id",
  "dryRun": true,
  "filters": [
    {
      "type": "STRING",
      "field": "email",
      "operator": "CONTAINS",
      "value": "melvynmal"
    }
  ]
}

Read this page from a tool with get_skill({ "type": "docs", "page": "workflows/workflow-manual-enrollment" }). Call get_skill({ "type": "docs" }) with no page to list every docs slug.

When to use this

NeedUse manual enrollment
Start a published sequence for a segment nowFilter → Select all → Add to workflow
Enter at a later email or waitSet Start from Step
Bypass a trigger that is too narrowYes — that is the purpose
Ignore exit rules for customersNo — configure or disable the exit rules

For a side-effect-free path, use a test run instead. Dry runs skip emails and actions; manual enrollment is a real run.

Related documentation

  • Triggers
  • Exit Rules
  • Publishing and Versions
  • Test Runs and Timelines
  • Workflow Groups
  • Action Step
PreviousWorkflow TriggersNextWorkflow Branching

On This Page

Filter the list, then Select allChoose the workflow and starting stepWhat this bypassesWhat this does not bypassDo this from an agentWhen to use thisRelated documentation