[{"data":1,"prerenderedAt":624},["ShallowReactive",2],{"docs-navigation":3,"\u002Fdocs\u002Femails\u002Fflows":202,"\u002Fdocs\u002Femails\u002Fflows-surround":619},[4],{"title":5,"path":6,"stem":7,"children":8,"page":22},"Docs","\u002Fdocs","docs",[9,23,36,65,86,115,128,172,185],{"title":10,"path":11,"stem":12,"children":13,"page":22},"Getting started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started",[14,18],{"title":15,"path":16,"stem":17},"Quickstart","\u002Fdocs\u002Fgetting-started\u002Fquickstart","docs\u002F1.getting-started\u002F1.quickstart",{"title":19,"path":20,"stem":21},"Concepts","\u002Fdocs\u002Fgetting-started\u002Fconcepts","docs\u002F1.getting-started\u002F2.concepts",false,{"title":24,"path":25,"stem":26,"children":27,"page":22},"Sending domain","\u002Fdocs\u002Fdomains","docs\u002F2.domains",[28,32],{"title":29,"path":30,"stem":31},"Add your domain","\u002Fdocs\u002Fdomains\u002Fadd-your-domain","docs\u002F2.domains\u002F1.add-your-domain",{"title":33,"path":34,"stem":35},"Troubleshooting","\u002Fdocs\u002Fdomains\u002Ftroubleshooting","docs\u002F2.domains\u002F2.troubleshooting",{"title":37,"path":38,"stem":39,"children":40,"page":22},"Audience","\u002Fdocs\u002Faudience","docs\u002F3.audience",[41,45,49,53,57,61],{"title":42,"path":43,"stem":44},"Contacts","\u002Fdocs\u002Faudience\u002Fcontacts","docs\u002F3.audience\u002F1.contacts",{"title":46,"path":47,"stem":48},"Import contacts","\u002Fdocs\u002Faudience\u002Fimport","docs\u002F3.audience\u002F2.import",{"title":50,"path":51,"stem":52},"Lists","\u002Fdocs\u002Faudience\u002Flists","docs\u002F3.audience\u002F3.lists",{"title":54,"path":55,"stem":56},"Segments","\u002Fdocs\u002Faudience\u002Fsegments","docs\u002F3.audience\u002F4.segments",{"title":58,"path":59,"stem":60},"Signup forms","\u002Fdocs\u002Faudience\u002Fsignup-forms","docs\u002F3.audience\u002F5.signup-forms",{"title":62,"path":63,"stem":64},"Unsubscribe and preferences","\u002Fdocs\u002Faudience\u002Funsubscribe-and-preferences","docs\u002F3.audience\u002F6.unsubscribe-and-preferences",{"title":66,"path":67,"stem":68,"children":69,"page":22},"Sending emails","\u002Fdocs\u002Femails","docs\u002F4.emails",[70,74,78,82],{"title":71,"path":72,"stem":73},"Writing emails","\u002Fdocs\u002Femails\u002Fwriting-emails","docs\u002F4.emails\u002F1.writing-emails",{"title":75,"path":76,"stem":77},"Campaigns","\u002Fdocs\u002Femails\u002Fcampaigns","docs\u002F4.emails\u002F2.campaigns",{"title":79,"path":80,"stem":81},"Flows","\u002Fdocs\u002Femails\u002Fflows","docs\u002F4.emails\u002F3.flows",{"title":83,"path":84,"stem":85},"Transactional emails","\u002Fdocs\u002Femails\u002Ftransactional","docs\u002F4.emails\u002F4.transactional",{"title":87,"path":88,"stem":89,"children":90,"page":22},"Deliverability","\u002Fdocs\u002Fdeliverability","docs\u002F5.deliverability",[91,95,99,103,107,111],{"title":92,"path":93,"stem":94},"Overview","\u002Fdocs\u002Fdeliverability\u002Foverview","docs\u002F5.deliverability\u002F1.overview",{"title":96,"path":97,"stem":98},"Warm-up","\u002Fdocs\u002Fdeliverability\u002Fwarm-up","docs\u002F5.deliverability\u002F2.warm-up",{"title":100,"path":101,"stem":102},"Contacts under review","\u002Fdocs\u002Fdeliverability\u002Fimported-contacts","docs\u002F5.deliverability\u002F3.imported-contacts",{"title":104,"path":105,"stem":106},"Reputation","\u002Fdocs\u002Fdeliverability\u002Freputation","docs\u002F5.deliverability\u002F4.reputation",{"title":108,"path":109,"stem":110},"Bounces and suppressions","\u002Fdocs\u002Fdeliverability\u002Fbounces-and-suppressions","docs\u002F5.deliverability\u002F5.bounces-and-suppressions",{"title":112,"path":113,"stem":114},"Deliverability report","\u002Fdocs\u002Fdeliverability\u002Fdeliverability-report","docs\u002F5.deliverability\u002F6.deliverability-report",{"title":116,"path":117,"stem":118,"children":119,"page":22},"AI","\u002Fdocs\u002Fai","docs\u002F6.ai",[120,124],{"title":121,"path":122,"stem":123},"Assistant","\u002Fdocs\u002Fai\u002Fassistant","docs\u002F6.ai\u002F1.assistant",{"title":125,"path":126,"stem":127},"Connect your agent (MCP)","\u002Fdocs\u002Fai\u002Fmcp","docs\u002F6.ai\u002F2.mcp",{"title":129,"path":130,"stem":131,"children":132,"page":22},"API reference","\u002Fdocs\u002Fapi","docs\u002F7.api",[133,137,141,145,148,152,156,160,164,168],{"title":134,"path":135,"stem":136},"Introduction","\u002Fdocs\u002Fapi\u002Fintroduction","docs\u002F7.api\u002F01.introduction",{"title":138,"path":139,"stem":140},"Emails","\u002Fdocs\u002Fapi\u002Femails","docs\u002F7.api\u002F02.emails",{"title":142,"path":143,"stem":144},"Templates","\u002Fdocs\u002Fapi\u002Ftemplates","docs\u002F7.api\u002F03.templates",{"title":42,"path":146,"stem":147},"\u002Fdocs\u002Fapi\u002Fcontacts","docs\u002F7.api\u002F04.contacts",{"title":149,"path":150,"stem":151},"Events","\u002Fdocs\u002Fapi\u002Fevents","docs\u002F7.api\u002F05.events",{"title":153,"path":154,"stem":155},"Lists and segments","\u002Fdocs\u002Fapi\u002Flists-and-segments","docs\u002F7.api\u002F06.lists-and-segments",{"title":157,"path":158,"stem":159},"Campaigns and flows","\u002Fdocs\u002Fapi\u002Fcampaigns-and-flows","docs\u002F7.api\u002F07.campaigns-and-flows",{"title":161,"path":162,"stem":163},"Domains and suppressions","\u002Fdocs\u002Fapi\u002Fdomains-and-suppressions","docs\u002F7.api\u002F08.domains-and-suppressions",{"title":165,"path":166,"stem":167},"Spaces","\u002Fdocs\u002Fapi\u002Fspaces","docs\u002F7.api\u002F09.spaces",{"title":169,"path":170,"stem":171},"Webhooks","\u002Fdocs\u002Fapi\u002Fwebhooks","docs\u002F7.api\u002F10.webhooks",{"title":173,"path":174,"stem":175,"children":176,"page":22},"Account & billing","\u002Fdocs\u002Faccount","docs\u002F8.account",[177,181],{"title":178,"path":179,"stem":180},"Spaces and members","\u002Fdocs\u002Faccount\u002Fspaces-and-members","docs\u002F8.account\u002F1.spaces-and-members",{"title":182,"path":183,"stem":184},"Billing","\u002Fdocs\u002Faccount\u002Fbilling","docs\u002F8.account\u002F2.billing",{"title":186,"path":187,"stem":188,"children":189,"page":22},"Guides","\u002Fdocs\u002Fguides","docs\u002F9.guides",[190,194,198],{"title":191,"path":192,"stem":193},"Welcome new subscribers","\u002Fdocs\u002Fguides\u002Fwelcome-sequence","docs\u002F9.guides\u002F1.welcome-sequence",{"title":195,"path":196,"stem":197},"Onboarding with events","\u002Fdocs\u002Fguides\u002Fonboarding-with-events","docs\u002F9.guides\u002F2.onboarding-with-events",{"title":199,"path":200,"stem":201},"Migrate from another tool","\u002Fdocs\u002Fguides\u002Fmigrate-from-another-tool","docs\u002F9.guides\u002F3.migrate-from-another-tool",{"id":203,"title":79,"body":204,"description":612,"extension":613,"links":614,"meta":615,"navigation":616,"path":80,"seo":617,"stem":81,"__hash__":618},"docs\u002Fdocs\u002F4.emails\u002F3.flows.md",{"type":205,"value":206,"toc":594},"minimark",[207,211,216,232,243,250,254,303,306,317,320,335,340,345,349,363,366,376,383,387,392,427,437,441,452,468,472,483,486,495,499,541,548,553,557,574,578],[208,209,210],"p",{},"A flow sends a sequence of emails automatically: a welcome series, a product onboarding, a reminder before a trial ends. Each contact goes through it at their own pace.",[212,213,215],"h2",{"id":214},"how-a-flow-works","How a flow works",[208,217,218,219,223,224,227,228,231],{},"A flow has a ",[220,221,222],"strong",{},"trigger"," and a list of ",[220,225,226],{},"steps",". When the trigger fires for a contact, Kula starts a ",[220,229,230],{},"run"," for that contact, which goes through the steps from top to bottom:",[233,234,240],"pre",{"className":235,"code":237,"language":238,"meta":239},[236],"language-text","Starts when: a contact subscribes to \"Newsletter\"\n  1. Send an email      \"Welcome to Acme Weekly\"\n  2. Wait               3 days\n  3. Send an email      \"Our 5 most read issues\"\n  4. Continue only if   plan is not set\n  5. Send an email      \"Try Acme Pro\"\n","text","",[241,242,237],"code",{"__ignoreMap":239},[208,244,245,246,249],{},"Steps run in order, with no branches. A ",[220,247,248],{},"Condition"," step lets a contact continue or stops their run there.",[212,251,253],{"id":252},"triggers","Triggers",[255,256,257,273],"table",{},[258,259,260],"thead",{},[261,262,263,267,270],"tr",{},[264,265,266],"th",{},"Trigger",[264,268,269],{},"Fires when",[264,271,272],{},"Good for",[274,275,276,290],"tbody",{},[261,277,278,284,287],{},[279,280,281],"td",{},[220,282,283],{},"A contact subscribes to a list",[279,285,286],{},"A subscription to that list is confirmed: from a form, the API or the dashboard",[279,288,289],{},"Welcome series, newsletter onboarding",[261,291,292,297,300],{},[279,293,294],{},[220,295,296],{},"A contact performs an event",[279,298,299],{},"Your app sends that event through the API",[279,301,302],{},"Product onboarding, trial reminders, post-purchase emails",[208,304,305],{},"Imports never trigger a flow: imported contacts did not just sign up. With double opt-in, the flow starts when the contact confirms, not when they submit the form.",[208,307,308,309,312,313,316],{},"Events are sent by your app with ",[241,310,311],{},"POST \u002Fv1\u002Fevents",". If the address is not yet a contact, Kula creates it. ",[314,315,195],"a",{"href":196},".",[212,318,319],{"id":226},"Steps",[208,321,322,323,326,327,330,331,334],{},"Add steps with ",[220,324,325],{},"Add email",", ",[220,328,329],{},"Add delay"," and ",[220,332,333],{},"Add condition",". A flow has up to 50 steps.",[336,337,339],"h3",{"id":338},"send-an-email","Send an email",[208,341,342,343,316],{},"An email with its subject, preview text, sender and content, written in the same editor as campaigns. Flow emails are marketing emails: they carry an unsubscribe link and follow your warm-up and reputation rules. ",[314,344,71],{"href":72},[336,346,348],{"id":347},"wait","Wait",[208,350,351,352,326,355,358,359,362],{},"Pauses the run for a duration in ",[220,353,354],{},"Minutes",[220,356,357],{},"Hours"," or ",[220,360,361],{},"Days",", from 1 minute to 365 days.",[336,364,248],{"id":365},"condition",[208,367,368,371,372,375],{},[220,369,370],{},"Continue only if"," the contact matches a set of conditions, built like a ",[314,373,374],{"href":55},"segment",": attributes, lists, events, email activity. A contact who does not match exits the flow.",[208,377,378,379,382],{},"Put a wait before a condition to give contacts time to act: \"Wait 3 days, then continue only if has not done ",[241,380,381],{},"project_created","\".",[212,384,386],{"id":385},"re-entry","Re-entry",[208,388,389,391],{},[220,390,386],{}," sets what happens when the trigger fires again for a contact who already went through the flow:",[255,393,394,404],{},[258,395,396],{},[261,397,398,401],{},[264,399,400],{},"Option",[264,402,403],{},"Behavior",[274,405,406,417],{},[261,407,408,414],{},[279,409,410,413],{},[220,411,412],{},"Once per contact"," (default)",[279,415,416],{},"A contact goes through the flow only once, ever",[261,418,419,424],{},[279,420,421],{},[220,422,423],{},"Every time the trigger fires",[279,425,426],{},"The contact starts again, unless they are still in the flow",[208,428,429,430,432,433,436],{},"Use ",[220,431,423],{}," for repeated events, such as ",[241,434,435],{},"order_paid"," for a post-purchase email.",[212,438,440],{"id":439},"when-a-contact-leaves-a-flow","When a contact leaves a flow",[208,442,443,444,447,448,451],{},"A run ends when it reaches the last step (",[220,445,446],{},"Completed",") or earlier (",[220,449,450],{},"Exited","), when the contact:",[453,454,455,459,462,465],"ul",{},[456,457,458],"li",{},"unsubscribes from the list that triggered the flow, or from everything;",[456,460,461],{},"bounces or complains;",[456,463,464],{},"is deleted;",[456,466,467],{},"does not match a condition step.",[212,469,471],{"id":470},"activate-a-flow","Activate a flow",[208,473,474,475,478,479,482],{},"A new flow is a ",[220,476,477],{},"Draft",". ",[220,480,481],{},"Activate"," checks the trigger and every step, then starts the flow.",[208,484,485],{},"Contacts already on the list do not enter the flow: only new subscriptions and new events start runs.",[208,487,488,489,478,492,316],{},"AI assistants can build a flow but never activate it: they request an activation, and a member clicks ",[220,490,491],{},"Approve and activate",[314,493,494],{"href":122},"AI assistant",[212,496,498],{"id":497},"edit-a-running-flow","Edit a running flow",[255,500,501,511],{},[258,502,503],{},[261,504,505,508],{},[264,506,507],{},"Change",[264,509,510],{},"When",[274,512,513,521,532],{},[261,514,515,518],{},[279,516,517],{},"Content of an email (subject, text, sender)",[279,519,520],{},"Any time, even while active. Contacts who have not reached the step yet get the new version",[261,522,523,526],{},[279,524,525],{},"Add, remove or reorder steps",[279,527,528,531],{},[220,529,530],{},"Pause"," the flow first",[261,533,534,537],{},[279,535,536],{},"Trigger and re-entry",[279,538,539,531],{},[220,540,530],{},[208,542,543,544,547],{},"While a flow is paused, no contact enters it and runs in progress wait. Click ",[220,545,546],{},"Resume"," to continue: runs pick up where they stopped.",[208,549,550,551,316],{},"If marketing is paused for your space, runs wait too, and continue once sending resumes. ",[314,552,104],{"href":105},[212,554,556],{"id":555},"runs","Runs",[208,558,559,560,562,563,326,566,326,568,326,570,573],{},"The ",[220,561,556],{}," tab lists every contact who entered the flow, with the status of their run (",[220,564,565],{},"Active",[220,567,446],{},[220,569,450],{},[220,571,572],{},"Failed","), the step they are on and the reason they exited. The flow page also shows delivered, opened and clicked counts for each email step.",[212,575,577],{"id":576},"related","Related",[579,580,581,588],"card-group",{},[582,583,585],"card",{"icon":584,"title":191,"to":192},"i-mingcute-git-merge-fill",[208,586,587],{},"Build a welcome series",[582,589,591],{"icon":590,"title":195,"to":196},"i-mingcute-flash-fill",[208,592,593],{},"Trigger flows from your product",{"title":239,"searchDepth":595,"depth":596,"links":597},1,2,[598,599,600,606,607,608,609,610,611],{"id":214,"depth":596,"text":215},{"id":252,"depth":596,"text":253},{"id":226,"depth":596,"text":319,"children":601},[602,604,605],{"id":338,"depth":603,"text":339},3,{"id":347,"depth":603,"text":348},{"id":365,"depth":603,"text":248},{"id":385,"depth":596,"text":386},{"id":439,"depth":596,"text":440},{"id":470,"depth":596,"text":471},{"id":497,"depth":596,"text":498},{"id":555,"depth":596,"text":556},{"id":576,"depth":596,"text":577},"Automated sequences triggered by a subscription or an event","md",null,{},true,{"title":79,"description":612},"k-Klfe9tSqyRrUHwQQpEjy7ezkIjXxu5dGW3HC1u3ws",[620,622],{"title":75,"path":76,"stem":77,"description":621,"children":-1},"Send a one-off email to a list",{"title":83,"path":84,"stem":85,"description":623,"children":-1},"Send password resets, receipts and notifications from your app",1792265663496]