[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-posthog-building-workflows":3,"mdc-rjh93e-key":49,"related-repo-posthog-building-workflows":3104,"related-org-posthog-building-workflows":3198},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":44,"sourceUrl":47,"mdContent":48},"building-workflows","build and edit PostHog workflows","Build, edit, test, enable, and monitor PostHog workflows over MCP. Author the action\u002Fedge graph so it runs and opens cleanly in the visual editor, then change drafts surgically with patch operations. Use when asked to build, set up, automate, change, fix, or debug a workflow, campaign, broadcast, drip sequence, or event-triggered automation in the workflows product.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"posthog","PostHog","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fposthog.png",[12,14,17,20],{"name":9,"slug":8,"type":13},"tag",{"name":15,"slug":16,"type":13},"Automation","automation",{"name":18,"slug":19,"type":13},"MCP","mcp",{"name":21,"slug":22,"type":13},"Workflow Automation","workflow-automation",35568,"https:\u002F\u002Fgithub.com\u002FPostHog\u002Fposthog","2026-07-28T05:34:12.167015",null,2977,[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"ab-testing","ai-analytics","analytics","cdp","data-warehouse","experiments","feature-flags","javascript","product-analytics","python","react","session-replay","surveys","typescript","web-analytics",{"repoUrl":24,"stars":23,"forks":27,"topics":45,"description":46},[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"🦔 PostHog is an all-in-one developer platform for building successful products. We offer product analytics, web analytics, session replay, error tracking, feature flags, experimentation, surveys, data warehouse, a CDP, and an AI product assistant to help debug your code, ship features faster, and keep all your usage and customer data in one stack.","https:\u002F\u002Fgithub.com\u002FPostHog\u002Fposthog\u002Ftree\u002FHEAD\u002Fproducts\u002Fworkflows\u002Fskills\u002Fbuilding-workflows","---\nname: building-workflows\ndescription: 'Build, edit, test, enable, and monitor PostHog workflows over MCP. Author the action\u002Fedge graph so it runs and opens cleanly in the visual editor, then change drafts surgically with patch operations. Use when asked to build, set up, automate, change, fix, or debug a workflow, campaign, broadcast, drip sequence, or event-triggered automation in the workflows product.'\n---\n\n# Building workflows\n\nA PostHog **workflow** is a directed graph: a list of **action nodes** (`actions`) wired by **edges** (`edges`), with exactly one `trigger` node that starts every run. You author that graph as JSON and ship it over MCP. Always call it a \"workflow\" to the user. \"Hog flow\" is the internal code name (`HogFlow`), not a user-facing term.\n\nThe single biggest failure mode is **getting the graph JSON structurally wrong**. The backend stores `actions`\u002F`config` as loose JSON, but the visual editor parses every node against a strict schema, so a malformed node saves but then **breaks the editor view** for the whole workflow. Before composing or editing any graph, read [references\u002Fgraph-schema.md](references\u002Fgraph-schema.md). It is the contract; do not improvise node shapes from these examples alone.\n\n## The lifecycle\n\nWork the workflow through these stages. Don't jump straight to enabling it.\n\n1. **Compose the graph.** Build `actions` + `edges` per [references\u002Fgraph-schema.md](references\u002Fgraph-schema.md). For any `function` node, don't guess the template: list the live catalog with `cdp-function-templates-list` and read its required inputs with `cdp-function-templates-retrieve`.\n2. **Create as a draft.** `workflows-create`. Every workflow is created `draft`; it does not execute yet.\n3. **Test-run it.** `workflows-test-run` runs **one step at a time**. Start at the first step (omit `current_action_id`, or point it at the trigger) with sample `globals` (`{event, person, groups}`); the result includes the next step's id (`nextActionId`). Feed that back as `current_action_id` and run again, walking step by step to the end. Skip `delay` nodes by jumping to the action after them (delays aren't simulated). Async side effects (HTTP\u002Femail\u002FSMS\u002Fpush) are mocked unless you set `mock_async_functions=false`. Read each step's trace to confirm the path taken.\n4. **Read logs while iterating.** `workflows-logs` shows the per-step execution trace (levels DEBUG to ERROR). This is how you see _why_ a step skipped, branched, or errored.\n5. **Edit, then re-test.** Patch the graph with `workflows-patch-graph` (see [Editing a draft](#editing-a-draft)). **Every edit invalidates your earlier test** — re-run the affected path before moving on. On a draft workflow, edits apply directly; on an active one they stage a draft (see [Changing a live workflow](#changing-a-live-workflow)).\n6. **Enable (needs the user's explicit sign-off).** `workflows-enable` flips it to `active` and an **event\u002Fwebhook\u002Fmanual** trigger starts firing on matching activity. From then on it runs on real people, and every change goes through the draft → test → publish cycle before taking effect — so finish testing, then get the user's explicit go before enabling. Don't enable on your own initiative.\n7. **Dispatch (batch\u002Fschedule only).** A `batch` workflow does **not** fire on enable alone. Send a one-off broadcast with `workflows-run-batch`, or attach a recurring schedule with `workflows-schedule-create`. Confirm with `workflows-get` that `status=='active'` _and_ its read-only `schedules` field has an active entry.\n8. **Monitor.** Drill down: `workflows-global-stats` (which workflows are failing) to `workflows-stats` (one workflow's trend) to `workflows-list-invocations` (who it failed for) to `workflows-get-invocation` (the triggering payload) to `workflows-logs` (the failing step).\n\nFull tool catalog, grouped by job: [references\u002Flifecycle-and-debugging.md](references\u002Flifecycle-and-debugging.md).\n\n## Editing a draft\n\n**Patch, don't replace.** Edit a draft with `workflows-patch-graph`: a small, ordered list of id-addressed operations (`update_action`, `add_action`, `remove_action`, `add_edge`, `remove_edge`, `replace_action_edges`). `update_action` deep-merges its patch, so changing one email subject is a few lines, not the whole graph. The ops apply atomically server-side (read, apply in order, validate, save only if valid), and the response echoes the **full updated graph**, so you never re-fetch before the next edit. This keeps each round-trip tiny instead of re-transmitting every action and edge.\n\n`workflows-update` covers only what a graph patch can't express: top-level fields like name, description, exit_condition, conversion, trigger_masking, and variables. It rejects `actions`\u002F`edges` outright - a partial list would silently drop every step it omits - so every graph change goes through `workflows-patch-graph`.\n\nAfter **any** patch, re-test the path you changed (step 3). A patch that validates structurally can still route the wrong way.\n\nEmail templates follow the same rule: edit a template's design with **`workflows-patch-email-template`** (surgical, id-addressed ops over the Unlayer blocks), not `workflows-update-email-template`, which resends the entire design JSON. Compose and edit templates with the **`designing-email-templates`** skill.\n\n## Changing a live workflow\n\nEditing an active workflow stages a **draft** instead of changing what's running: nothing reaches real people until you publish. Work the cycle:\n\n1. **Edit.** `workflows-patch-graph` (or `workflows-update` for content fields) on the active workflow writes to its draft — the first edit copies the live graph into the draft, later edits compose onto it. `workflows-get` shows the staged draft in `draft`; the live config stays in `actions`\u002F`edges`. Metadata (name, description) applies live immediately.\n2. **Test the draft.** `workflows-test-run` with `use_draft=true` executes the staged draft instead of the live config. Re-test every path you changed.\n3. **Publish deliberately.** `workflows-publish` without `confirm` returns `in_flight_runs`, a `confirm_token`, and an `impact` summary: per deleted step, about how many people are parked there and whether they move to a surviving step (`moves_to`) or exit; `empty_variables` that may render empty for people already past their new producer when they reach a reference (a structural warning — it can fire even when everyone in-flight is still upstream of the producer); `schedule_conflicts` where a schedule overrides a variable the draft removes. **Echo the impact to the user and get their go-ahead**, then call again with `confirm=true` and that `confirm_token`. A 409 means the draft changed since the preview and a 400 means the token expired (15 minutes) — preview again and re-confirm either way. Publish revalidates everything, so an invalid draft is rejected and live config stays untouched.\n4. **Or bail.** `workflows-discard-draft` throws the staged draft away.\n\nIn-flight runs follow the live config: once published, people mid-flow continue from their current step on the new version. Steps they already passed don't re-run; people parked on a step the publish deletes skip forward to its next surviving step (or exit at a dead end), exactly as the impact preview reported.\n\nTiming edits apply to parked runs gradually, not instantly. Publishing a shortened delay (or a moved wait window) reschedules the runs parked on it via a rate-limited sweep. Runs already due to wake soon keep their original earlier wake untouched; only wakes that the sweep moves earlier are affected, and those land spread out, no sooner than a few minutes after publish (and never later than their original wake). Runs still parked shortly after publishing are expected - tell the user this rather than re-publishing or treating it as a failure.\n\n### Rolling back\n\nEvery live-content change appends a snapshot to the workflow's revision history. `workflows-list-revisions` lists versions (newest first); `workflows-get-revision` returns one version's full content. To roll back (or forward), `workflows-restore-revision` copies that version's content into the draft — it never touches the live config — then the normal publish cycle applies: test with `use_draft=true`, preview, confirm. The preview shows exactly what the rollback does to people in-flight, same as any publish.\n\nA restore returns 409 when a draft is already open; publish or discard it, or pass `overwrite=true` to replace it. Two things a rollback cannot undo: runs that already moved or exited while the newer version was live keep their positions (their side effects happened), and a publish that shortened a delay may have pulled parked wake times earlier — rolling back doesn't push them later again.\n\nIf an edit is rejected with \"editing an active workflow isn't supported\", draft editing isn't enabled for this project yet — then a live change means recreating the workflow as a new draft (`workflows-create`), testing it, and enabling it as a replacement.\n\n## What the server owns, never send it\n\nThe server compiles and manages these. Authoring them by hand is the fastest way to a broken workflow:\n\n- **`bytecode`** on any filter, trigger, condition, conversion, or masking. Compiled server-side from the human-readable `properties`\u002F`hash`. Omit it; send `filters: {...}`, not bytecode.\n- **`trigger`** (top-level). _Derived_ from the `trigger` action in `actions`. Read-only. Set the trigger by adding the trigger node, not by setting this field.\n- **`billable_action_types`**, `version`, `id`, `created_*`. Computed\u002Fmanaged.\n\n## Minimal worked example\n\nEvent trigger, wait 1 day, send email, exit. Note: exactly one `trigger`, every non-exit node has an outgoing edge, ids are referenced consistently by `edges`, and no `bytecode` is sent.\n\n```json\n{\n  \"name\": \"Nudge after signup\",\n  \"description\": \"One day after signup, send a reminder.\",\n  \"exit_condition\": \"exit_only_at_end\",\n  \"actions\": [\n    {\n      \"id\": \"trigger_node\",\n      \"name\": \"Signed up\",\n      \"type\": \"trigger\",\n      \"config\": {\n        \"type\": \"event\",\n        \"filters\": { \"events\": [{ \"id\": \"user signed up\", \"name\": \"user signed up\", \"type\": \"events\", \"order\": 0 }] }\n      }\n    },\n    {\n      \"id\": \"delay_1\",\n      \"name\": \"Wait 1 day\",\n      \"type\": \"delay\",\n      \"config\": { \"delay_duration\": \"1d\" }\n    },\n    {\n      \"id\": \"email_1\",\n      \"name\": \"Reminder email\",\n      \"type\": \"function_email\",\n      \"config\": {\n        \"template_id\": \"template-email\",\n        \"message_category_type\": \"marketing\",\n        \"inputs\": {\n          \"email\": {\n            \"value\": {\n              \"to\": { \"email\": \"{person.properties.email}\", \"name\": \"\" },\n              \"from\": { \"email\": \"hi@example.com\", \"name\": \"Example\" },\n              \"subject\": \"Don't forget to finish setting up\",\n              \"html\": \"\u003Cp>Hi {person.properties.first_name}, …\u003C\u002Fp>\"\n            }\n          }\n        }\n      }\n    },\n    {\n      \"id\": \"exit_node\",\n      \"name\": \"Exit\",\n      \"type\": \"exit\",\n      \"config\": { \"reason\": \"Done\" }\n    }\n  ],\n  \"edges\": [\n    { \"from\": \"trigger_node\", \"to\": \"delay_1\", \"type\": \"continue\" },\n    { \"from\": \"delay_1\", \"to\": \"email_1\", \"type\": \"continue\" },\n    { \"from\": \"email_1\", \"to\": \"exit_node\", \"type\": \"continue\" }\n  ]\n}\n```\n\nFor anything beyond a placeholder email body, author the design with the **`designing-email-templates`** skill and reference the template. Don't hand-write production email HTML here.\n\n## Hard rules to surface to the user, not work around\n\n- **Behavioral targeting is unsupported.** \"Did event X at least N times over the last M days\" can't be expressed as a trigger or a batch\u002Fschedule audience. If asked, reject it and explain; don't approximate it with a broken filter. (The backend rejects behavioral cohorts in batch audiences outright.)\n- **Batch audiences target _who a person is_, not what they did.** Person properties and\u002For static\u002Fproperty-based cohorts only. Event\u002Faction filters in a batch audience are silently dropped, so they're rejected.\n- **Prefer re-evaluating audiences.** For batch, inline person-property conditions or a dynamic (filter-based) cohort re-evaluate as people qualify; a static cohort is a frozen list, use only for an explicit given set.\n",{"data":50,"body":51},{"name":4,"description":6},{"type":52,"children":53},"root",[54,62,121,163,170,175,556,567,572,646,676,688,723,728,739,928,933,938,945,981,994,1006,1012,1017,1127,1133,1159,3037,3052,3058,3098],{"type":55,"tag":56,"props":57,"children":58},"element","h1",{"id":4},[59],{"type":60,"value":61},"text","Building workflows",{"type":55,"tag":63,"props":64,"children":65},"p",{},[66,68,74,76,81,83,90,92,97,98,103,105,111,113,119],{"type":60,"value":67},"A PostHog ",{"type":55,"tag":69,"props":70,"children":71},"strong",{},[72],{"type":60,"value":73},"workflow",{"type":60,"value":75}," is a directed graph: a list of ",{"type":55,"tag":69,"props":77,"children":78},{},[79],{"type":60,"value":80},"action nodes",{"type":60,"value":82}," (",{"type":55,"tag":84,"props":85,"children":87},"code",{"className":86},[],[88],{"type":60,"value":89},"actions",{"type":60,"value":91},") wired by ",{"type":55,"tag":69,"props":93,"children":94},{},[95],{"type":60,"value":96},"edges",{"type":60,"value":82},{"type":55,"tag":84,"props":99,"children":101},{"className":100},[],[102],{"type":60,"value":96},{"type":60,"value":104},"), with exactly one ",{"type":55,"tag":84,"props":106,"children":108},{"className":107},[],[109],{"type":60,"value":110},"trigger",{"type":60,"value":112}," node that starts every run. You author that graph as JSON and ship it over MCP. Always call it a \"workflow\" to the user. \"Hog flow\" is the internal code name (",{"type":55,"tag":84,"props":114,"children":116},{"className":115},[],[117],{"type":60,"value":118},"HogFlow",{"type":60,"value":120},"), not a user-facing term.",{"type":55,"tag":63,"props":122,"children":123},{},[124,126,131,133,138,140,146,148,153,155,161],{"type":60,"value":125},"The single biggest failure mode is ",{"type":55,"tag":69,"props":127,"children":128},{},[129],{"type":60,"value":130},"getting the graph JSON structurally wrong",{"type":60,"value":132},". The backend stores ",{"type":55,"tag":84,"props":134,"children":136},{"className":135},[],[137],{"type":60,"value":89},{"type":60,"value":139},"\u002F",{"type":55,"tag":84,"props":141,"children":143},{"className":142},[],[144],{"type":60,"value":145},"config",{"type":60,"value":147}," as loose JSON, but the visual editor parses every node against a strict schema, so a malformed node saves but then ",{"type":55,"tag":69,"props":149,"children":150},{},[151],{"type":60,"value":152},"breaks the editor view",{"type":60,"value":154}," for the whole workflow. Before composing or editing any graph, read ",{"type":55,"tag":156,"props":157,"children":159},"a",{"href":158},"references\u002Fgraph-schema.md",[160],{"type":60,"value":158},{"type":60,"value":162},". It is the contract; do not improvise node shapes from these examples alone.",{"type":55,"tag":164,"props":165,"children":167},"h2",{"id":166},"the-lifecycle",[168],{"type":60,"value":169},"The lifecycle",{"type":55,"tag":63,"props":171,"children":172},{},[173],{"type":60,"value":174},"Work the workflow through these stages. Don't jump straight to enabling it.",{"type":55,"tag":176,"props":177,"children":178},"ol",{},[179,234,260,338,363,404,436,507],{"type":55,"tag":180,"props":181,"children":182},"li",{},[183,188,190,195,197,202,204,208,210,216,218,224,226,232],{"type":55,"tag":69,"props":184,"children":185},{},[186],{"type":60,"value":187},"Compose the graph.",{"type":60,"value":189}," Build ",{"type":55,"tag":84,"props":191,"children":193},{"className":192},[],[194],{"type":60,"value":89},{"type":60,"value":196}," + ",{"type":55,"tag":84,"props":198,"children":200},{"className":199},[],[201],{"type":60,"value":96},{"type":60,"value":203}," per ",{"type":55,"tag":156,"props":205,"children":206},{"href":158},[207],{"type":60,"value":158},{"type":60,"value":209},". For any ",{"type":55,"tag":84,"props":211,"children":213},{"className":212},[],[214],{"type":60,"value":215},"function",{"type":60,"value":217}," node, don't guess the template: list the live catalog with ",{"type":55,"tag":84,"props":219,"children":221},{"className":220},[],[222],{"type":60,"value":223},"cdp-function-templates-list",{"type":60,"value":225}," and read its required inputs with ",{"type":55,"tag":84,"props":227,"children":229},{"className":228},[],[230],{"type":60,"value":231},"cdp-function-templates-retrieve",{"type":60,"value":233},".",{"type":55,"tag":180,"props":235,"children":236},{},[237,242,244,250,252,258],{"type":55,"tag":69,"props":238,"children":239},{},[240],{"type":60,"value":241},"Create as a draft.",{"type":60,"value":243}," ",{"type":55,"tag":84,"props":245,"children":247},{"className":246},[],[248],{"type":60,"value":249},"workflows-create",{"type":60,"value":251},". Every workflow is created ",{"type":55,"tag":84,"props":253,"children":255},{"className":254},[],[256],{"type":60,"value":257},"draft",{"type":60,"value":259},"; it does not execute yet.",{"type":55,"tag":180,"props":261,"children":262},{},[263,268,269,275,277,282,284,290,292,298,299,305,307,313,315,320,322,328,330,336],{"type":55,"tag":69,"props":264,"children":265},{},[266],{"type":60,"value":267},"Test-run it.",{"type":60,"value":243},{"type":55,"tag":84,"props":270,"children":272},{"className":271},[],[273],{"type":60,"value":274},"workflows-test-run",{"type":60,"value":276}," runs ",{"type":55,"tag":69,"props":278,"children":279},{},[280],{"type":60,"value":281},"one step at a time",{"type":60,"value":283},". Start at the first step (omit ",{"type":55,"tag":84,"props":285,"children":287},{"className":286},[],[288],{"type":60,"value":289},"current_action_id",{"type":60,"value":291},", or point it at the trigger) with sample ",{"type":55,"tag":84,"props":293,"children":295},{"className":294},[],[296],{"type":60,"value":297},"globals",{"type":60,"value":82},{"type":55,"tag":84,"props":300,"children":302},{"className":301},[],[303],{"type":60,"value":304},"{event, person, groups}",{"type":60,"value":306},"); the result includes the next step's id (",{"type":55,"tag":84,"props":308,"children":310},{"className":309},[],[311],{"type":60,"value":312},"nextActionId",{"type":60,"value":314},"). Feed that back as ",{"type":55,"tag":84,"props":316,"children":318},{"className":317},[],[319],{"type":60,"value":289},{"type":60,"value":321}," and run again, walking step by step to the end. Skip ",{"type":55,"tag":84,"props":323,"children":325},{"className":324},[],[326],{"type":60,"value":327},"delay",{"type":60,"value":329}," nodes by jumping to the action after them (delays aren't simulated). Async side effects (HTTP\u002Femail\u002FSMS\u002Fpush) are mocked unless you set ",{"type":55,"tag":84,"props":331,"children":333},{"className":332},[],[334],{"type":60,"value":335},"mock_async_functions=false",{"type":60,"value":337},". Read each step's trace to confirm the path taken.",{"type":55,"tag":180,"props":339,"children":340},{},[341,346,347,353,355,361],{"type":55,"tag":69,"props":342,"children":343},{},[344],{"type":60,"value":345},"Read logs while iterating.",{"type":60,"value":243},{"type":55,"tag":84,"props":348,"children":350},{"className":349},[],[351],{"type":60,"value":352},"workflows-logs",{"type":60,"value":354}," shows the per-step execution trace (levels DEBUG to ERROR). This is how you see ",{"type":55,"tag":356,"props":357,"children":358},"em",{},[359],{"type":60,"value":360},"why",{"type":60,"value":362}," a step skipped, branched, or errored.",{"type":55,"tag":180,"props":364,"children":365},{},[366,371,373,379,381,387,389,394,396,402],{"type":55,"tag":69,"props":367,"children":368},{},[369],{"type":60,"value":370},"Edit, then re-test.",{"type":60,"value":372}," Patch the graph with ",{"type":55,"tag":84,"props":374,"children":376},{"className":375},[],[377],{"type":60,"value":378},"workflows-patch-graph",{"type":60,"value":380}," (see ",{"type":55,"tag":156,"props":382,"children":384},{"href":383},"#editing-a-draft",[385],{"type":60,"value":386},"Editing a draft",{"type":60,"value":388},"). ",{"type":55,"tag":69,"props":390,"children":391},{},[392],{"type":60,"value":393},"Every edit invalidates your earlier test",{"type":60,"value":395}," — re-run the affected path before moving on. On a draft workflow, edits apply directly; on an active one they stage a draft (see ",{"type":55,"tag":156,"props":397,"children":399},{"href":398},"#changing-a-live-workflow",[400],{"type":60,"value":401},"Changing a live workflow",{"type":60,"value":403},").",{"type":55,"tag":180,"props":405,"children":406},{},[407,412,413,419,421,427,429,434],{"type":55,"tag":69,"props":408,"children":409},{},[410],{"type":60,"value":411},"Enable (needs the user's explicit sign-off).",{"type":60,"value":243},{"type":55,"tag":84,"props":414,"children":416},{"className":415},[],[417],{"type":60,"value":418},"workflows-enable",{"type":60,"value":420}," flips it to ",{"type":55,"tag":84,"props":422,"children":424},{"className":423},[],[425],{"type":60,"value":426},"active",{"type":60,"value":428}," and an ",{"type":55,"tag":69,"props":430,"children":431},{},[432],{"type":60,"value":433},"event\u002Fwebhook\u002Fmanual",{"type":60,"value":435}," trigger starts firing on matching activity. From then on it runs on real people, and every change goes through the draft → test → publish cycle before taking effect — so finish testing, then get the user's explicit go before enabling. Don't enable on your own initiative.",{"type":55,"tag":180,"props":437,"children":438},{},[439,444,446,452,454,459,461,467,469,475,477,483,485,491,492,497,499,505],{"type":55,"tag":69,"props":440,"children":441},{},[442],{"type":60,"value":443},"Dispatch (batch\u002Fschedule only).",{"type":60,"value":445}," A ",{"type":55,"tag":84,"props":447,"children":449},{"className":448},[],[450],{"type":60,"value":451},"batch",{"type":60,"value":453}," workflow does ",{"type":55,"tag":69,"props":455,"children":456},{},[457],{"type":60,"value":458},"not",{"type":60,"value":460}," fire on enable alone. Send a one-off broadcast with ",{"type":55,"tag":84,"props":462,"children":464},{"className":463},[],[465],{"type":60,"value":466},"workflows-run-batch",{"type":60,"value":468},", or attach a recurring schedule with ",{"type":55,"tag":84,"props":470,"children":472},{"className":471},[],[473],{"type":60,"value":474},"workflows-schedule-create",{"type":60,"value":476},". Confirm with ",{"type":55,"tag":84,"props":478,"children":480},{"className":479},[],[481],{"type":60,"value":482},"workflows-get",{"type":60,"value":484}," that ",{"type":55,"tag":84,"props":486,"children":488},{"className":487},[],[489],{"type":60,"value":490},"status=='active'",{"type":60,"value":243},{"type":55,"tag":356,"props":493,"children":494},{},[495],{"type":60,"value":496},"and",{"type":60,"value":498}," its read-only ",{"type":55,"tag":84,"props":500,"children":502},{"className":501},[],[503],{"type":60,"value":504},"schedules",{"type":60,"value":506}," field has an active entry.",{"type":55,"tag":180,"props":508,"children":509},{},[510,515,517,523,525,531,533,539,541,547,549,554],{"type":55,"tag":69,"props":511,"children":512},{},[513],{"type":60,"value":514},"Monitor.",{"type":60,"value":516}," Drill down: ",{"type":55,"tag":84,"props":518,"children":520},{"className":519},[],[521],{"type":60,"value":522},"workflows-global-stats",{"type":60,"value":524}," (which workflows are failing) to ",{"type":55,"tag":84,"props":526,"children":528},{"className":527},[],[529],{"type":60,"value":530},"workflows-stats",{"type":60,"value":532}," (one workflow's trend) to ",{"type":55,"tag":84,"props":534,"children":536},{"className":535},[],[537],{"type":60,"value":538},"workflows-list-invocations",{"type":60,"value":540}," (who it failed for) to ",{"type":55,"tag":84,"props":542,"children":544},{"className":543},[],[545],{"type":60,"value":546},"workflows-get-invocation",{"type":60,"value":548}," (the triggering payload) to ",{"type":55,"tag":84,"props":550,"children":552},{"className":551},[],[553],{"type":60,"value":352},{"type":60,"value":555}," (the failing step).",{"type":55,"tag":63,"props":557,"children":558},{},[559,561,566],{"type":60,"value":560},"Full tool catalog, grouped by job: ",{"type":55,"tag":156,"props":562,"children":564},{"href":563},"references\u002Flifecycle-and-debugging.md",[565],{"type":60,"value":563},{"type":60,"value":233},{"type":55,"tag":164,"props":568,"children":570},{"id":569},"editing-a-draft",[571],{"type":60,"value":386},{"type":55,"tag":63,"props":573,"children":574},{},[575,580,582,587,589,595,597,603,604,610,611,617,618,624,625,631,632,637,639,644],{"type":55,"tag":69,"props":576,"children":577},{},[578],{"type":60,"value":579},"Patch, don't replace.",{"type":60,"value":581}," Edit a draft with ",{"type":55,"tag":84,"props":583,"children":585},{"className":584},[],[586],{"type":60,"value":378},{"type":60,"value":588},": a small, ordered list of id-addressed operations (",{"type":55,"tag":84,"props":590,"children":592},{"className":591},[],[593],{"type":60,"value":594},"update_action",{"type":60,"value":596},", ",{"type":55,"tag":84,"props":598,"children":600},{"className":599},[],[601],{"type":60,"value":602},"add_action",{"type":60,"value":596},{"type":55,"tag":84,"props":605,"children":607},{"className":606},[],[608],{"type":60,"value":609},"remove_action",{"type":60,"value":596},{"type":55,"tag":84,"props":612,"children":614},{"className":613},[],[615],{"type":60,"value":616},"add_edge",{"type":60,"value":596},{"type":55,"tag":84,"props":619,"children":621},{"className":620},[],[622],{"type":60,"value":623},"remove_edge",{"type":60,"value":596},{"type":55,"tag":84,"props":626,"children":628},{"className":627},[],[629],{"type":60,"value":630},"replace_action_edges",{"type":60,"value":388},{"type":55,"tag":84,"props":633,"children":635},{"className":634},[],[636],{"type":60,"value":594},{"type":60,"value":638}," deep-merges its patch, so changing one email subject is a few lines, not the whole graph. The ops apply atomically server-side (read, apply in order, validate, save only if valid), and the response echoes the ",{"type":55,"tag":69,"props":640,"children":641},{},[642],{"type":60,"value":643},"full updated graph",{"type":60,"value":645},", so you never re-fetch before the next edit. This keeps each round-trip tiny instead of re-transmitting every action and edge.",{"type":55,"tag":63,"props":647,"children":648},{},[649,655,657,662,663,668,670,675],{"type":55,"tag":84,"props":650,"children":652},{"className":651},[],[653],{"type":60,"value":654},"workflows-update",{"type":60,"value":656}," covers only what a graph patch can't express: top-level fields like name, description, exit_condition, conversion, trigger_masking, and variables. It rejects ",{"type":55,"tag":84,"props":658,"children":660},{"className":659},[],[661],{"type":60,"value":89},{"type":60,"value":139},{"type":55,"tag":84,"props":664,"children":666},{"className":665},[],[667],{"type":60,"value":96},{"type":60,"value":669}," outright - a partial list would silently drop every step it omits - so every graph change goes through ",{"type":55,"tag":84,"props":671,"children":673},{"className":672},[],[674],{"type":60,"value":378},{"type":60,"value":233},{"type":55,"tag":63,"props":677,"children":678},{},[679,681,686],{"type":60,"value":680},"After ",{"type":55,"tag":69,"props":682,"children":683},{},[684],{"type":60,"value":685},"any",{"type":60,"value":687}," patch, re-test the path you changed (step 3). A patch that validates structurally can still route the wrong way.",{"type":55,"tag":63,"props":689,"children":690},{},[691,693,702,704,710,712,721],{"type":60,"value":692},"Email templates follow the same rule: edit a template's design with ",{"type":55,"tag":69,"props":694,"children":695},{},[696],{"type":55,"tag":84,"props":697,"children":699},{"className":698},[],[700],{"type":60,"value":701},"workflows-patch-email-template",{"type":60,"value":703}," (surgical, id-addressed ops over the Unlayer blocks), not ",{"type":55,"tag":84,"props":705,"children":707},{"className":706},[],[708],{"type":60,"value":709},"workflows-update-email-template",{"type":60,"value":711},", which resends the entire design JSON. Compose and edit templates with the ",{"type":55,"tag":69,"props":713,"children":714},{},[715],{"type":55,"tag":84,"props":716,"children":718},{"className":717},[],[719],{"type":60,"value":720},"designing-email-templates",{"type":60,"value":722}," skill.",{"type":55,"tag":164,"props":724,"children":726},{"id":725},"changing-a-live-workflow",[727],{"type":60,"value":401},{"type":55,"tag":63,"props":729,"children":730},{},[731,733,737],{"type":60,"value":732},"Editing an active workflow stages a ",{"type":55,"tag":69,"props":734,"children":735},{},[736],{"type":60,"value":257},{"type":60,"value":738}," instead of changing what's running: nothing reaches real people until you publish. Work the cycle:",{"type":55,"tag":176,"props":740,"children":741},{},[742,792,816,911],{"type":55,"tag":180,"props":743,"children":744},{},[745,750,751,756,758,763,765,770,772,777,779,784,785,790],{"type":55,"tag":69,"props":746,"children":747},{},[748],{"type":60,"value":749},"Edit.",{"type":60,"value":243},{"type":55,"tag":84,"props":752,"children":754},{"className":753},[],[755],{"type":60,"value":378},{"type":60,"value":757}," (or ",{"type":55,"tag":84,"props":759,"children":761},{"className":760},[],[762],{"type":60,"value":654},{"type":60,"value":764}," for content fields) on the active workflow writes to its draft — the first edit copies the live graph into the draft, later edits compose onto it. ",{"type":55,"tag":84,"props":766,"children":768},{"className":767},[],[769],{"type":60,"value":482},{"type":60,"value":771}," shows the staged draft in ",{"type":55,"tag":84,"props":773,"children":775},{"className":774},[],[776],{"type":60,"value":257},{"type":60,"value":778},"; the live config stays in ",{"type":55,"tag":84,"props":780,"children":782},{"className":781},[],[783],{"type":60,"value":89},{"type":60,"value":139},{"type":55,"tag":84,"props":786,"children":788},{"className":787},[],[789],{"type":60,"value":96},{"type":60,"value":791},". Metadata (name, description) applies live immediately.",{"type":55,"tag":180,"props":793,"children":794},{},[795,800,801,806,808,814],{"type":55,"tag":69,"props":796,"children":797},{},[798],{"type":60,"value":799},"Test the draft.",{"type":60,"value":243},{"type":55,"tag":84,"props":802,"children":804},{"className":803},[],[805],{"type":60,"value":274},{"type":60,"value":807}," with ",{"type":55,"tag":84,"props":809,"children":811},{"className":810},[],[812],{"type":60,"value":813},"use_draft=true",{"type":60,"value":815}," executes the staged draft instead of the live config. Re-test every path you changed.",{"type":55,"tag":180,"props":817,"children":818},{},[819,824,825,831,833,839,841,847,849,855,857,863,865,871,873,879,881,887,889,894,896,902,904,909],{"type":55,"tag":69,"props":820,"children":821},{},[822],{"type":60,"value":823},"Publish deliberately.",{"type":60,"value":243},{"type":55,"tag":84,"props":826,"children":828},{"className":827},[],[829],{"type":60,"value":830},"workflows-publish",{"type":60,"value":832}," without ",{"type":55,"tag":84,"props":834,"children":836},{"className":835},[],[837],{"type":60,"value":838},"confirm",{"type":60,"value":840}," returns ",{"type":55,"tag":84,"props":842,"children":844},{"className":843},[],[845],{"type":60,"value":846},"in_flight_runs",{"type":60,"value":848},", a ",{"type":55,"tag":84,"props":850,"children":852},{"className":851},[],[853],{"type":60,"value":854},"confirm_token",{"type":60,"value":856},", and an ",{"type":55,"tag":84,"props":858,"children":860},{"className":859},[],[861],{"type":60,"value":862},"impact",{"type":60,"value":864}," summary: per deleted step, about how many people are parked there and whether they move to a surviving step (",{"type":55,"tag":84,"props":866,"children":868},{"className":867},[],[869],{"type":60,"value":870},"moves_to",{"type":60,"value":872},") or exit; ",{"type":55,"tag":84,"props":874,"children":876},{"className":875},[],[877],{"type":60,"value":878},"empty_variables",{"type":60,"value":880}," that may render empty for people already past their new producer when they reach a reference (a structural warning — it can fire even when everyone in-flight is still upstream of the producer); ",{"type":55,"tag":84,"props":882,"children":884},{"className":883},[],[885],{"type":60,"value":886},"schedule_conflicts",{"type":60,"value":888}," where a schedule overrides a variable the draft removes. ",{"type":55,"tag":69,"props":890,"children":891},{},[892],{"type":60,"value":893},"Echo the impact to the user and get their go-ahead",{"type":60,"value":895},", then call again with ",{"type":55,"tag":84,"props":897,"children":899},{"className":898},[],[900],{"type":60,"value":901},"confirm=true",{"type":60,"value":903}," and that ",{"type":55,"tag":84,"props":905,"children":907},{"className":906},[],[908],{"type":60,"value":854},{"type":60,"value":910},". A 409 means the draft changed since the preview and a 400 means the token expired (15 minutes) — preview again and re-confirm either way. Publish revalidates everything, so an invalid draft is rejected and live config stays untouched.",{"type":55,"tag":180,"props":912,"children":913},{},[914,919,920,926],{"type":55,"tag":69,"props":915,"children":916},{},[917],{"type":60,"value":918},"Or bail.",{"type":60,"value":243},{"type":55,"tag":84,"props":921,"children":923},{"className":922},[],[924],{"type":60,"value":925},"workflows-discard-draft",{"type":60,"value":927}," throws the staged draft away.",{"type":55,"tag":63,"props":929,"children":930},{},[931],{"type":60,"value":932},"In-flight runs follow the live config: once published, people mid-flow continue from their current step on the new version. Steps they already passed don't re-run; people parked on a step the publish deletes skip forward to its next surviving step (or exit at a dead end), exactly as the impact preview reported.",{"type":55,"tag":63,"props":934,"children":935},{},[936],{"type":60,"value":937},"Timing edits apply to parked runs gradually, not instantly. Publishing a shortened delay (or a moved wait window) reschedules the runs parked on it via a rate-limited sweep. Runs already due to wake soon keep their original earlier wake untouched; only wakes that the sweep moves earlier are affected, and those land spread out, no sooner than a few minutes after publish (and never later than their original wake). Runs still parked shortly after publishing are expected - tell the user this rather than re-publishing or treating it as a failure.",{"type":55,"tag":939,"props":940,"children":942},"h3",{"id":941},"rolling-back",[943],{"type":60,"value":944},"Rolling back",{"type":55,"tag":63,"props":946,"children":947},{},[948,950,956,958,964,966,972,974,979],{"type":60,"value":949},"Every live-content change appends a snapshot to the workflow's revision history. ",{"type":55,"tag":84,"props":951,"children":953},{"className":952},[],[954],{"type":60,"value":955},"workflows-list-revisions",{"type":60,"value":957}," lists versions (newest first); ",{"type":55,"tag":84,"props":959,"children":961},{"className":960},[],[962],{"type":60,"value":963},"workflows-get-revision",{"type":60,"value":965}," returns one version's full content. To roll back (or forward), ",{"type":55,"tag":84,"props":967,"children":969},{"className":968},[],[970],{"type":60,"value":971},"workflows-restore-revision",{"type":60,"value":973}," copies that version's content into the draft — it never touches the live config — then the normal publish cycle applies: test with ",{"type":55,"tag":84,"props":975,"children":977},{"className":976},[],[978],{"type":60,"value":813},{"type":60,"value":980},", preview, confirm. The preview shows exactly what the rollback does to people in-flight, same as any publish.",{"type":55,"tag":63,"props":982,"children":983},{},[984,986,992],{"type":60,"value":985},"A restore returns 409 when a draft is already open; publish or discard it, or pass ",{"type":55,"tag":84,"props":987,"children":989},{"className":988},[],[990],{"type":60,"value":991},"overwrite=true",{"type":60,"value":993}," to replace it. Two things a rollback cannot undo: runs that already moved or exited while the newer version was live keep their positions (their side effects happened), and a publish that shortened a delay may have pulled parked wake times earlier — rolling back doesn't push them later again.",{"type":55,"tag":63,"props":995,"children":996},{},[997,999,1004],{"type":60,"value":998},"If an edit is rejected with \"editing an active workflow isn't supported\", draft editing isn't enabled for this project yet — then a live change means recreating the workflow as a new draft (",{"type":55,"tag":84,"props":1000,"children":1002},{"className":1001},[],[1003],{"type":60,"value":249},{"type":60,"value":1005},"), testing it, and enabling it as a replacement.",{"type":55,"tag":164,"props":1007,"children":1009},{"id":1008},"what-the-server-owns-never-send-it",[1010],{"type":60,"value":1011},"What the server owns, never send it",{"type":55,"tag":63,"props":1013,"children":1014},{},[1015],{"type":60,"value":1016},"The server compiles and manages these. Authoring them by hand is the fastest way to a broken workflow:",{"type":55,"tag":1018,"props":1019,"children":1020},"ul",{},[1021,1058,1092],{"type":55,"tag":180,"props":1022,"children":1023},{},[1024,1033,1035,1041,1042,1048,1050,1056],{"type":55,"tag":69,"props":1025,"children":1026},{},[1027],{"type":55,"tag":84,"props":1028,"children":1030},{"className":1029},[],[1031],{"type":60,"value":1032},"bytecode",{"type":60,"value":1034}," on any filter, trigger, condition, conversion, or masking. Compiled server-side from the human-readable ",{"type":55,"tag":84,"props":1036,"children":1038},{"className":1037},[],[1039],{"type":60,"value":1040},"properties",{"type":60,"value":139},{"type":55,"tag":84,"props":1043,"children":1045},{"className":1044},[],[1046],{"type":60,"value":1047},"hash",{"type":60,"value":1049},". Omit it; send ",{"type":55,"tag":84,"props":1051,"children":1053},{"className":1052},[],[1054],{"type":60,"value":1055},"filters: {...}",{"type":60,"value":1057},", not bytecode.",{"type":55,"tag":180,"props":1059,"children":1060},{},[1061,1069,1071,1076,1078,1083,1085,1090],{"type":55,"tag":69,"props":1062,"children":1063},{},[1064],{"type":55,"tag":84,"props":1065,"children":1067},{"className":1066},[],[1068],{"type":60,"value":110},{"type":60,"value":1070}," (top-level). ",{"type":55,"tag":356,"props":1072,"children":1073},{},[1074],{"type":60,"value":1075},"Derived",{"type":60,"value":1077}," from the ",{"type":55,"tag":84,"props":1079,"children":1081},{"className":1080},[],[1082],{"type":60,"value":110},{"type":60,"value":1084}," action in ",{"type":55,"tag":84,"props":1086,"children":1088},{"className":1087},[],[1089],{"type":60,"value":89},{"type":60,"value":1091},". Read-only. Set the trigger by adding the trigger node, not by setting this field.",{"type":55,"tag":180,"props":1093,"children":1094},{},[1095,1104,1105,1111,1112,1118,1119,1125],{"type":55,"tag":69,"props":1096,"children":1097},{},[1098],{"type":55,"tag":84,"props":1099,"children":1101},{"className":1100},[],[1102],{"type":60,"value":1103},"billable_action_types",{"type":60,"value":596},{"type":55,"tag":84,"props":1106,"children":1108},{"className":1107},[],[1109],{"type":60,"value":1110},"version",{"type":60,"value":596},{"type":55,"tag":84,"props":1113,"children":1115},{"className":1114},[],[1116],{"type":60,"value":1117},"id",{"type":60,"value":596},{"type":55,"tag":84,"props":1120,"children":1122},{"className":1121},[],[1123],{"type":60,"value":1124},"created_*",{"type":60,"value":1126},". Computed\u002Fmanaged.",{"type":55,"tag":164,"props":1128,"children":1130},{"id":1129},"minimal-worked-example",[1131],{"type":60,"value":1132},"Minimal worked example",{"type":55,"tag":63,"props":1134,"children":1135},{},[1136,1138,1143,1145,1150,1152,1157],{"type":60,"value":1137},"Event trigger, wait 1 day, send email, exit. Note: exactly one ",{"type":55,"tag":84,"props":1139,"children":1141},{"className":1140},[],[1142],{"type":60,"value":110},{"type":60,"value":1144},", every non-exit node has an outgoing edge, ids are referenced consistently by ",{"type":55,"tag":84,"props":1146,"children":1148},{"className":1147},[],[1149],{"type":60,"value":96},{"type":60,"value":1151},", and no ",{"type":55,"tag":84,"props":1153,"children":1155},{"className":1154},[],[1156],{"type":60,"value":1032},{"type":60,"value":1158}," is sent.",{"type":55,"tag":1160,"props":1161,"children":1166},"pre",{"className":1162,"code":1163,"language":1164,"meta":1165,"style":1165},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"name\": \"Nudge after signup\",\n  \"description\": \"One day after signup, send a reminder.\",\n  \"exit_condition\": \"exit_only_at_end\",\n  \"actions\": [\n    {\n      \"id\": \"trigger_node\",\n      \"name\": \"Signed up\",\n      \"type\": \"trigger\",\n      \"config\": {\n        \"type\": \"event\",\n        \"filters\": { \"events\": [{ \"id\": \"user signed up\", \"name\": \"user signed up\", \"type\": \"events\", \"order\": 0 }] }\n      }\n    },\n    {\n      \"id\": \"delay_1\",\n      \"name\": \"Wait 1 day\",\n      \"type\": \"delay\",\n      \"config\": { \"delay_duration\": \"1d\" }\n    },\n    {\n      \"id\": \"email_1\",\n      \"name\": \"Reminder email\",\n      \"type\": \"function_email\",\n      \"config\": {\n        \"template_id\": \"template-email\",\n        \"message_category_type\": \"marketing\",\n        \"inputs\": {\n          \"email\": {\n            \"value\": {\n              \"to\": { \"email\": \"{person.properties.email}\", \"name\": \"\" },\n              \"from\": { \"email\": \"hi@example.com\", \"name\": \"Example\" },\n              \"subject\": \"Don't forget to finish setting up\",\n              \"html\": \"\u003Cp>Hi {person.properties.first_name}, …\u003C\u002Fp>\"\n            }\n          }\n        }\n      }\n    },\n    {\n      \"id\": \"exit_node\",\n      \"name\": \"Exit\",\n      \"type\": \"exit\",\n      \"config\": { \"reason\": \"Done\" }\n    }\n  ],\n  \"edges\": [\n    { \"from\": \"trigger_node\", \"to\": \"delay_1\", \"type\": \"continue\" },\n    { \"from\": \"delay_1\", \"to\": \"email_1\", \"type\": \"continue\" },\n    { \"from\": \"email_1\", \"to\": \"exit_node\", \"type\": \"continue\" }\n  ]\n}\n","json","",[1167],{"type":55,"tag":84,"props":1168,"children":1169},{"__ignoreMap":1165},[1170,1182,1227,1265,1303,1328,1337,1376,1413,1450,1475,1514,1694,1703,1712,1720,1757,1794,1830,1888,1896,1904,1941,1978,2015,2039,2077,2115,2140,2166,2192,2279,2370,2408,2443,2452,2461,2470,2478,2486,2494,2531,2568,2605,2663,2672,2681,2705,2811,2915,3019,3028],{"type":55,"tag":1171,"props":1172,"children":1175},"span",{"class":1173,"line":1174},"line",1,[1176],{"type":55,"tag":1171,"props":1177,"children":1179},{"style":1178},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[1180],{"type":60,"value":1181},"{\n",{"type":55,"tag":1171,"props":1183,"children":1185},{"class":1173,"line":1184},2,[1186,1191,1197,1202,1207,1212,1218,1222],{"type":55,"tag":1171,"props":1187,"children":1188},{"style":1178},[1189],{"type":60,"value":1190},"  \"",{"type":55,"tag":1171,"props":1192,"children":1194},{"style":1193},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[1195],{"type":60,"value":1196},"name",{"type":55,"tag":1171,"props":1198,"children":1199},{"style":1178},[1200],{"type":60,"value":1201},"\"",{"type":55,"tag":1171,"props":1203,"children":1204},{"style":1178},[1205],{"type":60,"value":1206},":",{"type":55,"tag":1171,"props":1208,"children":1209},{"style":1178},[1210],{"type":60,"value":1211}," \"",{"type":55,"tag":1171,"props":1213,"children":1215},{"style":1214},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[1216],{"type":60,"value":1217},"Nudge after signup",{"type":55,"tag":1171,"props":1219,"children":1220},{"style":1178},[1221],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1223,"children":1224},{"style":1178},[1225],{"type":60,"value":1226},",\n",{"type":55,"tag":1171,"props":1228,"children":1230},{"class":1173,"line":1229},3,[1231,1235,1240,1244,1248,1252,1257,1261],{"type":55,"tag":1171,"props":1232,"children":1233},{"style":1178},[1234],{"type":60,"value":1190},{"type":55,"tag":1171,"props":1236,"children":1237},{"style":1193},[1238],{"type":60,"value":1239},"description",{"type":55,"tag":1171,"props":1241,"children":1242},{"style":1178},[1243],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1245,"children":1246},{"style":1178},[1247],{"type":60,"value":1206},{"type":55,"tag":1171,"props":1249,"children":1250},{"style":1178},[1251],{"type":60,"value":1211},{"type":55,"tag":1171,"props":1253,"children":1254},{"style":1214},[1255],{"type":60,"value":1256},"One day after signup, send a reminder.",{"type":55,"tag":1171,"props":1258,"children":1259},{"style":1178},[1260],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1262,"children":1263},{"style":1178},[1264],{"type":60,"value":1226},{"type":55,"tag":1171,"props":1266,"children":1268},{"class":1173,"line":1267},4,[1269,1273,1278,1282,1286,1290,1295,1299],{"type":55,"tag":1171,"props":1270,"children":1271},{"style":1178},[1272],{"type":60,"value":1190},{"type":55,"tag":1171,"props":1274,"children":1275},{"style":1193},[1276],{"type":60,"value":1277},"exit_condition",{"type":55,"tag":1171,"props":1279,"children":1280},{"style":1178},[1281],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1283,"children":1284},{"style":1178},[1285],{"type":60,"value":1206},{"type":55,"tag":1171,"props":1287,"children":1288},{"style":1178},[1289],{"type":60,"value":1211},{"type":55,"tag":1171,"props":1291,"children":1292},{"style":1214},[1293],{"type":60,"value":1294},"exit_only_at_end",{"type":55,"tag":1171,"props":1296,"children":1297},{"style":1178},[1298],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1300,"children":1301},{"style":1178},[1302],{"type":60,"value":1226},{"type":55,"tag":1171,"props":1304,"children":1306},{"class":1173,"line":1305},5,[1307,1311,1315,1319,1323],{"type":55,"tag":1171,"props":1308,"children":1309},{"style":1178},[1310],{"type":60,"value":1190},{"type":55,"tag":1171,"props":1312,"children":1313},{"style":1193},[1314],{"type":60,"value":89},{"type":55,"tag":1171,"props":1316,"children":1317},{"style":1178},[1318],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1320,"children":1321},{"style":1178},[1322],{"type":60,"value":1206},{"type":55,"tag":1171,"props":1324,"children":1325},{"style":1178},[1326],{"type":60,"value":1327}," [\n",{"type":55,"tag":1171,"props":1329,"children":1331},{"class":1173,"line":1330},6,[1332],{"type":55,"tag":1171,"props":1333,"children":1334},{"style":1178},[1335],{"type":60,"value":1336},"    {\n",{"type":55,"tag":1171,"props":1338,"children":1340},{"class":1173,"line":1339},7,[1341,1346,1351,1355,1359,1363,1368,1372],{"type":55,"tag":1171,"props":1342,"children":1343},{"style":1178},[1344],{"type":60,"value":1345},"      \"",{"type":55,"tag":1171,"props":1347,"children":1349},{"style":1348},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[1350],{"type":60,"value":1117},{"type":55,"tag":1171,"props":1352,"children":1353},{"style":1178},[1354],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1356,"children":1357},{"style":1178},[1358],{"type":60,"value":1206},{"type":55,"tag":1171,"props":1360,"children":1361},{"style":1178},[1362],{"type":60,"value":1211},{"type":55,"tag":1171,"props":1364,"children":1365},{"style":1214},[1366],{"type":60,"value":1367},"trigger_node",{"type":55,"tag":1171,"props":1369,"children":1370},{"style":1178},[1371],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1373,"children":1374},{"style":1178},[1375],{"type":60,"value":1226},{"type":55,"tag":1171,"props":1377,"children":1379},{"class":1173,"line":1378},8,[1380,1384,1388,1392,1396,1400,1405,1409],{"type":55,"tag":1171,"props":1381,"children":1382},{"style":1178},[1383],{"type":60,"value":1345},{"type":55,"tag":1171,"props":1385,"children":1386},{"style":1348},[1387],{"type":60,"value":1196},{"type":55,"tag":1171,"props":1389,"children":1390},{"style":1178},[1391],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1393,"children":1394},{"style":1178},[1395],{"type":60,"value":1206},{"type":55,"tag":1171,"props":1397,"children":1398},{"style":1178},[1399],{"type":60,"value":1211},{"type":55,"tag":1171,"props":1401,"children":1402},{"style":1214},[1403],{"type":60,"value":1404},"Signed up",{"type":55,"tag":1171,"props":1406,"children":1407},{"style":1178},[1408],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1410,"children":1411},{"style":1178},[1412],{"type":60,"value":1226},{"type":55,"tag":1171,"props":1414,"children":1416},{"class":1173,"line":1415},9,[1417,1421,1426,1430,1434,1438,1442,1446],{"type":55,"tag":1171,"props":1418,"children":1419},{"style":1178},[1420],{"type":60,"value":1345},{"type":55,"tag":1171,"props":1422,"children":1423},{"style":1348},[1424],{"type":60,"value":1425},"type",{"type":55,"tag":1171,"props":1427,"children":1428},{"style":1178},[1429],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1431,"children":1432},{"style":1178},[1433],{"type":60,"value":1206},{"type":55,"tag":1171,"props":1435,"children":1436},{"style":1178},[1437],{"type":60,"value":1211},{"type":55,"tag":1171,"props":1439,"children":1440},{"style":1214},[1441],{"type":60,"value":110},{"type":55,"tag":1171,"props":1443,"children":1444},{"style":1178},[1445],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1447,"children":1448},{"style":1178},[1449],{"type":60,"value":1226},{"type":55,"tag":1171,"props":1451,"children":1453},{"class":1173,"line":1452},10,[1454,1458,1462,1466,1470],{"type":55,"tag":1171,"props":1455,"children":1456},{"style":1178},[1457],{"type":60,"value":1345},{"type":55,"tag":1171,"props":1459,"children":1460},{"style":1348},[1461],{"type":60,"value":145},{"type":55,"tag":1171,"props":1463,"children":1464},{"style":1178},[1465],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1467,"children":1468},{"style":1178},[1469],{"type":60,"value":1206},{"type":55,"tag":1171,"props":1471,"children":1472},{"style":1178},[1473],{"type":60,"value":1474}," {\n",{"type":55,"tag":1171,"props":1476,"children":1478},{"class":1173,"line":1477},11,[1479,1484,1489,1493,1497,1501,1506,1510],{"type":55,"tag":1171,"props":1480,"children":1481},{"style":1178},[1482],{"type":60,"value":1483},"        \"",{"type":55,"tag":1171,"props":1485,"children":1487},{"style":1486},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1488],{"type":60,"value":1425},{"type":55,"tag":1171,"props":1490,"children":1491},{"style":1178},[1492],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1494,"children":1495},{"style":1178},[1496],{"type":60,"value":1206},{"type":55,"tag":1171,"props":1498,"children":1499},{"style":1178},[1500],{"type":60,"value":1211},{"type":55,"tag":1171,"props":1502,"children":1503},{"style":1214},[1504],{"type":60,"value":1505},"event",{"type":55,"tag":1171,"props":1507,"children":1508},{"style":1178},[1509],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1511,"children":1512},{"style":1178},[1513],{"type":60,"value":1226},{"type":55,"tag":1171,"props":1515,"children":1517},{"class":1173,"line":1516},12,[1518,1522,1527,1531,1535,1540,1544,1550,1554,1558,1563,1567,1572,1576,1580,1584,1589,1593,1598,1602,1606,1610,1614,1618,1622,1626,1630,1634,1638,1642,1646,1650,1654,1658,1662,1666,1671,1675,1679,1684,1689],{"type":55,"tag":1171,"props":1519,"children":1520},{"style":1178},[1521],{"type":60,"value":1483},{"type":55,"tag":1171,"props":1523,"children":1524},{"style":1486},[1525],{"type":60,"value":1526},"filters",{"type":55,"tag":1171,"props":1528,"children":1529},{"style":1178},[1530],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1532,"children":1533},{"style":1178},[1534],{"type":60,"value":1206},{"type":55,"tag":1171,"props":1536,"children":1537},{"style":1178},[1538],{"type":60,"value":1539}," {",{"type":55,"tag":1171,"props":1541,"children":1542},{"style":1178},[1543],{"type":60,"value":1211},{"type":55,"tag":1171,"props":1545,"children":1547},{"style":1546},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[1548],{"type":60,"value":1549},"events",{"type":55,"tag":1171,"props":1551,"children":1552},{"style":1178},[1553],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1555,"children":1556},{"style":1178},[1557],{"type":60,"value":1206},{"type":55,"tag":1171,"props":1559,"children":1560},{"style":1178},[1561],{"type":60,"value":1562}," [{",{"type":55,"tag":1171,"props":1564,"children":1565},{"style":1178},[1566],{"type":60,"value":1211},{"type":55,"tag":1171,"props":1568,"children":1570},{"style":1569},"--shiki-light:#916B53;--shiki-default:#916B53;--shiki-dark:#916B53",[1571],{"type":60,"value":1117},{"type":55,"tag":1171,"props":1573,"children":1574},{"style":1178},[1575],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1577,"children":1578},{"style":1178},[1579],{"type":60,"value":1206},{"type":55,"tag":1171,"props":1581,"children":1582},{"style":1178},[1583],{"type":60,"value":1211},{"type":55,"tag":1171,"props":1585,"children":1586},{"style":1214},[1587],{"type":60,"value":1588},"user signed up",{"type":55,"tag":1171,"props":1590,"children":1591},{"style":1178},[1592],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1594,"children":1595},{"style":1178},[1596],{"type":60,"value":1597},",",{"type":55,"tag":1171,"props":1599,"children":1600},{"style":1178},[1601],{"type":60,"value":1211},{"type":55,"tag":1171,"props":1603,"children":1604},{"style":1569},[1605],{"type":60,"value":1196},{"type":55,"tag":1171,"props":1607,"children":1608},{"style":1178},[1609],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1611,"children":1612},{"style":1178},[1613],{"type":60,"value":1206},{"type":55,"tag":1171,"props":1615,"children":1616},{"style":1178},[1617],{"type":60,"value":1211},{"type":55,"tag":1171,"props":1619,"children":1620},{"style":1214},[1621],{"type":60,"value":1588},{"type":55,"tag":1171,"props":1623,"children":1624},{"style":1178},[1625],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1627,"children":1628},{"style":1178},[1629],{"type":60,"value":1597},{"type":55,"tag":1171,"props":1631,"children":1632},{"style":1178},[1633],{"type":60,"value":1211},{"type":55,"tag":1171,"props":1635,"children":1636},{"style":1569},[1637],{"type":60,"value":1425},{"type":55,"tag":1171,"props":1639,"children":1640},{"style":1178},[1641],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1643,"children":1644},{"style":1178},[1645],{"type":60,"value":1206},{"type":55,"tag":1171,"props":1647,"children":1648},{"style":1178},[1649],{"type":60,"value":1211},{"type":55,"tag":1171,"props":1651,"children":1652},{"style":1214},[1653],{"type":60,"value":1549},{"type":55,"tag":1171,"props":1655,"children":1656},{"style":1178},[1657],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1659,"children":1660},{"style":1178},[1661],{"type":60,"value":1597},{"type":55,"tag":1171,"props":1663,"children":1664},{"style":1178},[1665],{"type":60,"value":1211},{"type":55,"tag":1171,"props":1667,"children":1668},{"style":1569},[1669],{"type":60,"value":1670},"order",{"type":55,"tag":1171,"props":1672,"children":1673},{"style":1178},[1674],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1676,"children":1677},{"style":1178},[1678],{"type":60,"value":1206},{"type":55,"tag":1171,"props":1680,"children":1681},{"style":1486},[1682],{"type":60,"value":1683}," 0",{"type":55,"tag":1171,"props":1685,"children":1686},{"style":1178},[1687],{"type":60,"value":1688}," }]",{"type":55,"tag":1171,"props":1690,"children":1691},{"style":1178},[1692],{"type":60,"value":1693}," }\n",{"type":55,"tag":1171,"props":1695,"children":1697},{"class":1173,"line":1696},13,[1698],{"type":55,"tag":1171,"props":1699,"children":1700},{"style":1178},[1701],{"type":60,"value":1702},"      }\n",{"type":55,"tag":1171,"props":1704,"children":1706},{"class":1173,"line":1705},14,[1707],{"type":55,"tag":1171,"props":1708,"children":1709},{"style":1178},[1710],{"type":60,"value":1711},"    },\n",{"type":55,"tag":1171,"props":1713,"children":1715},{"class":1173,"line":1714},15,[1716],{"type":55,"tag":1171,"props":1717,"children":1718},{"style":1178},[1719],{"type":60,"value":1336},{"type":55,"tag":1171,"props":1721,"children":1723},{"class":1173,"line":1722},16,[1724,1728,1732,1736,1740,1744,1749,1753],{"type":55,"tag":1171,"props":1725,"children":1726},{"style":1178},[1727],{"type":60,"value":1345},{"type":55,"tag":1171,"props":1729,"children":1730},{"style":1348},[1731],{"type":60,"value":1117},{"type":55,"tag":1171,"props":1733,"children":1734},{"style":1178},[1735],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1737,"children":1738},{"style":1178},[1739],{"type":60,"value":1206},{"type":55,"tag":1171,"props":1741,"children":1742},{"style":1178},[1743],{"type":60,"value":1211},{"type":55,"tag":1171,"props":1745,"children":1746},{"style":1214},[1747],{"type":60,"value":1748},"delay_1",{"type":55,"tag":1171,"props":1750,"children":1751},{"style":1178},[1752],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1754,"children":1755},{"style":1178},[1756],{"type":60,"value":1226},{"type":55,"tag":1171,"props":1758,"children":1760},{"class":1173,"line":1759},17,[1761,1765,1769,1773,1777,1781,1786,1790],{"type":55,"tag":1171,"props":1762,"children":1763},{"style":1178},[1764],{"type":60,"value":1345},{"type":55,"tag":1171,"props":1766,"children":1767},{"style":1348},[1768],{"type":60,"value":1196},{"type":55,"tag":1171,"props":1770,"children":1771},{"style":1178},[1772],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1774,"children":1775},{"style":1178},[1776],{"type":60,"value":1206},{"type":55,"tag":1171,"props":1778,"children":1779},{"style":1178},[1780],{"type":60,"value":1211},{"type":55,"tag":1171,"props":1782,"children":1783},{"style":1214},[1784],{"type":60,"value":1785},"Wait 1 day",{"type":55,"tag":1171,"props":1787,"children":1788},{"style":1178},[1789],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1791,"children":1792},{"style":1178},[1793],{"type":60,"value":1226},{"type":55,"tag":1171,"props":1795,"children":1797},{"class":1173,"line":1796},18,[1798,1802,1806,1810,1814,1818,1822,1826],{"type":55,"tag":1171,"props":1799,"children":1800},{"style":1178},[1801],{"type":60,"value":1345},{"type":55,"tag":1171,"props":1803,"children":1804},{"style":1348},[1805],{"type":60,"value":1425},{"type":55,"tag":1171,"props":1807,"children":1808},{"style":1178},[1809],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1811,"children":1812},{"style":1178},[1813],{"type":60,"value":1206},{"type":55,"tag":1171,"props":1815,"children":1816},{"style":1178},[1817],{"type":60,"value":1211},{"type":55,"tag":1171,"props":1819,"children":1820},{"style":1214},[1821],{"type":60,"value":327},{"type":55,"tag":1171,"props":1823,"children":1824},{"style":1178},[1825],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1827,"children":1828},{"style":1178},[1829],{"type":60,"value":1226},{"type":55,"tag":1171,"props":1831,"children":1833},{"class":1173,"line":1832},19,[1834,1838,1842,1846,1850,1854,1858,1863,1867,1871,1875,1880,1884],{"type":55,"tag":1171,"props":1835,"children":1836},{"style":1178},[1837],{"type":60,"value":1345},{"type":55,"tag":1171,"props":1839,"children":1840},{"style":1348},[1841],{"type":60,"value":145},{"type":55,"tag":1171,"props":1843,"children":1844},{"style":1178},[1845],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1847,"children":1848},{"style":1178},[1849],{"type":60,"value":1206},{"type":55,"tag":1171,"props":1851,"children":1852},{"style":1178},[1853],{"type":60,"value":1539},{"type":55,"tag":1171,"props":1855,"children":1856},{"style":1178},[1857],{"type":60,"value":1211},{"type":55,"tag":1171,"props":1859,"children":1860},{"style":1486},[1861],{"type":60,"value":1862},"delay_duration",{"type":55,"tag":1171,"props":1864,"children":1865},{"style":1178},[1866],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1868,"children":1869},{"style":1178},[1870],{"type":60,"value":1206},{"type":55,"tag":1171,"props":1872,"children":1873},{"style":1178},[1874],{"type":60,"value":1211},{"type":55,"tag":1171,"props":1876,"children":1877},{"style":1214},[1878],{"type":60,"value":1879},"1d",{"type":55,"tag":1171,"props":1881,"children":1882},{"style":1178},[1883],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1885,"children":1886},{"style":1178},[1887],{"type":60,"value":1693},{"type":55,"tag":1171,"props":1889,"children":1891},{"class":1173,"line":1890},20,[1892],{"type":55,"tag":1171,"props":1893,"children":1894},{"style":1178},[1895],{"type":60,"value":1711},{"type":55,"tag":1171,"props":1897,"children":1899},{"class":1173,"line":1898},21,[1900],{"type":55,"tag":1171,"props":1901,"children":1902},{"style":1178},[1903],{"type":60,"value":1336},{"type":55,"tag":1171,"props":1905,"children":1907},{"class":1173,"line":1906},22,[1908,1912,1916,1920,1924,1928,1933,1937],{"type":55,"tag":1171,"props":1909,"children":1910},{"style":1178},[1911],{"type":60,"value":1345},{"type":55,"tag":1171,"props":1913,"children":1914},{"style":1348},[1915],{"type":60,"value":1117},{"type":55,"tag":1171,"props":1917,"children":1918},{"style":1178},[1919],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1921,"children":1922},{"style":1178},[1923],{"type":60,"value":1206},{"type":55,"tag":1171,"props":1925,"children":1926},{"style":1178},[1927],{"type":60,"value":1211},{"type":55,"tag":1171,"props":1929,"children":1930},{"style":1214},[1931],{"type":60,"value":1932},"email_1",{"type":55,"tag":1171,"props":1934,"children":1935},{"style":1178},[1936],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1938,"children":1939},{"style":1178},[1940],{"type":60,"value":1226},{"type":55,"tag":1171,"props":1942,"children":1944},{"class":1173,"line":1943},23,[1945,1949,1953,1957,1961,1965,1970,1974],{"type":55,"tag":1171,"props":1946,"children":1947},{"style":1178},[1948],{"type":60,"value":1345},{"type":55,"tag":1171,"props":1950,"children":1951},{"style":1348},[1952],{"type":60,"value":1196},{"type":55,"tag":1171,"props":1954,"children":1955},{"style":1178},[1956],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1958,"children":1959},{"style":1178},[1960],{"type":60,"value":1206},{"type":55,"tag":1171,"props":1962,"children":1963},{"style":1178},[1964],{"type":60,"value":1211},{"type":55,"tag":1171,"props":1966,"children":1967},{"style":1214},[1968],{"type":60,"value":1969},"Reminder email",{"type":55,"tag":1171,"props":1971,"children":1972},{"style":1178},[1973],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1975,"children":1976},{"style":1178},[1977],{"type":60,"value":1226},{"type":55,"tag":1171,"props":1979,"children":1981},{"class":1173,"line":1980},24,[1982,1986,1990,1994,1998,2002,2007,2011],{"type":55,"tag":1171,"props":1983,"children":1984},{"style":1178},[1985],{"type":60,"value":1345},{"type":55,"tag":1171,"props":1987,"children":1988},{"style":1348},[1989],{"type":60,"value":1425},{"type":55,"tag":1171,"props":1991,"children":1992},{"style":1178},[1993],{"type":60,"value":1201},{"type":55,"tag":1171,"props":1995,"children":1996},{"style":1178},[1997],{"type":60,"value":1206},{"type":55,"tag":1171,"props":1999,"children":2000},{"style":1178},[2001],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2003,"children":2004},{"style":1214},[2005],{"type":60,"value":2006},"function_email",{"type":55,"tag":1171,"props":2008,"children":2009},{"style":1178},[2010],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2012,"children":2013},{"style":1178},[2014],{"type":60,"value":1226},{"type":55,"tag":1171,"props":2016,"children":2018},{"class":1173,"line":2017},25,[2019,2023,2027,2031,2035],{"type":55,"tag":1171,"props":2020,"children":2021},{"style":1178},[2022],{"type":60,"value":1345},{"type":55,"tag":1171,"props":2024,"children":2025},{"style":1348},[2026],{"type":60,"value":145},{"type":55,"tag":1171,"props":2028,"children":2029},{"style":1178},[2030],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2032,"children":2033},{"style":1178},[2034],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2036,"children":2037},{"style":1178},[2038],{"type":60,"value":1474},{"type":55,"tag":1171,"props":2040,"children":2042},{"class":1173,"line":2041},26,[2043,2047,2052,2056,2060,2064,2069,2073],{"type":55,"tag":1171,"props":2044,"children":2045},{"style":1178},[2046],{"type":60,"value":1483},{"type":55,"tag":1171,"props":2048,"children":2049},{"style":1486},[2050],{"type":60,"value":2051},"template_id",{"type":55,"tag":1171,"props":2053,"children":2054},{"style":1178},[2055],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2057,"children":2058},{"style":1178},[2059],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2061,"children":2062},{"style":1178},[2063],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2065,"children":2066},{"style":1214},[2067],{"type":60,"value":2068},"template-email",{"type":55,"tag":1171,"props":2070,"children":2071},{"style":1178},[2072],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2074,"children":2075},{"style":1178},[2076],{"type":60,"value":1226},{"type":55,"tag":1171,"props":2078,"children":2080},{"class":1173,"line":2079},27,[2081,2085,2090,2094,2098,2102,2107,2111],{"type":55,"tag":1171,"props":2082,"children":2083},{"style":1178},[2084],{"type":60,"value":1483},{"type":55,"tag":1171,"props":2086,"children":2087},{"style":1486},[2088],{"type":60,"value":2089},"message_category_type",{"type":55,"tag":1171,"props":2091,"children":2092},{"style":1178},[2093],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2095,"children":2096},{"style":1178},[2097],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2099,"children":2100},{"style":1178},[2101],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2103,"children":2104},{"style":1214},[2105],{"type":60,"value":2106},"marketing",{"type":55,"tag":1171,"props":2108,"children":2109},{"style":1178},[2110],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2112,"children":2113},{"style":1178},[2114],{"type":60,"value":1226},{"type":55,"tag":1171,"props":2116,"children":2118},{"class":1173,"line":2117},28,[2119,2123,2128,2132,2136],{"type":55,"tag":1171,"props":2120,"children":2121},{"style":1178},[2122],{"type":60,"value":1483},{"type":55,"tag":1171,"props":2124,"children":2125},{"style":1486},[2126],{"type":60,"value":2127},"inputs",{"type":55,"tag":1171,"props":2129,"children":2130},{"style":1178},[2131],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2133,"children":2134},{"style":1178},[2135],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2137,"children":2138},{"style":1178},[2139],{"type":60,"value":1474},{"type":55,"tag":1171,"props":2141,"children":2143},{"class":1173,"line":2142},29,[2144,2149,2154,2158,2162],{"type":55,"tag":1171,"props":2145,"children":2146},{"style":1178},[2147],{"type":60,"value":2148},"          \"",{"type":55,"tag":1171,"props":2150,"children":2151},{"style":1546},[2152],{"type":60,"value":2153},"email",{"type":55,"tag":1171,"props":2155,"children":2156},{"style":1178},[2157],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2159,"children":2160},{"style":1178},[2161],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2163,"children":2164},{"style":1178},[2165],{"type":60,"value":1474},{"type":55,"tag":1171,"props":2167,"children":2169},{"class":1173,"line":2168},30,[2170,2175,2180,2184,2188],{"type":55,"tag":1171,"props":2171,"children":2172},{"style":1178},[2173],{"type":60,"value":2174},"            \"",{"type":55,"tag":1171,"props":2176,"children":2177},{"style":1569},[2178],{"type":60,"value":2179},"value",{"type":55,"tag":1171,"props":2181,"children":2182},{"style":1178},[2183],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2185,"children":2186},{"style":1178},[2187],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2189,"children":2190},{"style":1178},[2191],{"type":60,"value":1474},{"type":55,"tag":1171,"props":2193,"children":2195},{"class":1173,"line":2194},31,[2196,2201,2207,2211,2215,2219,2223,2228,2232,2236,2240,2245,2249,2253,2257,2261,2265,2269,2274],{"type":55,"tag":1171,"props":2197,"children":2198},{"style":1178},[2199],{"type":60,"value":2200},"              \"",{"type":55,"tag":1171,"props":2202,"children":2204},{"style":2203},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[2205],{"type":60,"value":2206},"to",{"type":55,"tag":1171,"props":2208,"children":2209},{"style":1178},[2210],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2212,"children":2213},{"style":1178},[2214],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2216,"children":2217},{"style":1178},[2218],{"type":60,"value":1539},{"type":55,"tag":1171,"props":2220,"children":2221},{"style":1178},[2222],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2224,"children":2226},{"style":2225},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[2227],{"type":60,"value":2153},{"type":55,"tag":1171,"props":2229,"children":2230},{"style":1178},[2231],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2233,"children":2234},{"style":1178},[2235],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2237,"children":2238},{"style":1178},[2239],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2241,"children":2242},{"style":1214},[2243],{"type":60,"value":2244},"{person.properties.email}",{"type":55,"tag":1171,"props":2246,"children":2247},{"style":1178},[2248],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2250,"children":2251},{"style":1178},[2252],{"type":60,"value":1597},{"type":55,"tag":1171,"props":2254,"children":2255},{"style":1178},[2256],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2258,"children":2259},{"style":2225},[2260],{"type":60,"value":1196},{"type":55,"tag":1171,"props":2262,"children":2263},{"style":1178},[2264],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2266,"children":2267},{"style":1178},[2268],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2270,"children":2271},{"style":1178},[2272],{"type":60,"value":2273}," \"\"",{"type":55,"tag":1171,"props":2275,"children":2276},{"style":1178},[2277],{"type":60,"value":2278}," },\n",{"type":55,"tag":1171,"props":2280,"children":2282},{"class":1173,"line":2281},32,[2283,2287,2292,2296,2300,2304,2308,2312,2316,2320,2324,2329,2333,2337,2341,2345,2349,2353,2357,2362,2366],{"type":55,"tag":1171,"props":2284,"children":2285},{"style":1178},[2286],{"type":60,"value":2200},{"type":55,"tag":1171,"props":2288,"children":2289},{"style":2203},[2290],{"type":60,"value":2291},"from",{"type":55,"tag":1171,"props":2293,"children":2294},{"style":1178},[2295],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2297,"children":2298},{"style":1178},[2299],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2301,"children":2302},{"style":1178},[2303],{"type":60,"value":1539},{"type":55,"tag":1171,"props":2305,"children":2306},{"style":1178},[2307],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2309,"children":2310},{"style":2225},[2311],{"type":60,"value":2153},{"type":55,"tag":1171,"props":2313,"children":2314},{"style":1178},[2315],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2317,"children":2318},{"style":1178},[2319],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2321,"children":2322},{"style":1178},[2323],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2325,"children":2326},{"style":1214},[2327],{"type":60,"value":2328},"hi@example.com",{"type":55,"tag":1171,"props":2330,"children":2331},{"style":1178},[2332],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2334,"children":2335},{"style":1178},[2336],{"type":60,"value":1597},{"type":55,"tag":1171,"props":2338,"children":2339},{"style":1178},[2340],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2342,"children":2343},{"style":2225},[2344],{"type":60,"value":1196},{"type":55,"tag":1171,"props":2346,"children":2347},{"style":1178},[2348],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2350,"children":2351},{"style":1178},[2352],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2354,"children":2355},{"style":1178},[2356],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2358,"children":2359},{"style":1214},[2360],{"type":60,"value":2361},"Example",{"type":55,"tag":1171,"props":2363,"children":2364},{"style":1178},[2365],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2367,"children":2368},{"style":1178},[2369],{"type":60,"value":2278},{"type":55,"tag":1171,"props":2371,"children":2373},{"class":1173,"line":2372},33,[2374,2378,2383,2387,2391,2395,2400,2404],{"type":55,"tag":1171,"props":2375,"children":2376},{"style":1178},[2377],{"type":60,"value":2200},{"type":55,"tag":1171,"props":2379,"children":2380},{"style":2203},[2381],{"type":60,"value":2382},"subject",{"type":55,"tag":1171,"props":2384,"children":2385},{"style":1178},[2386],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2388,"children":2389},{"style":1178},[2390],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2392,"children":2393},{"style":1178},[2394],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2396,"children":2397},{"style":1214},[2398],{"type":60,"value":2399},"Don't forget to finish setting up",{"type":55,"tag":1171,"props":2401,"children":2402},{"style":1178},[2403],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2405,"children":2406},{"style":1178},[2407],{"type":60,"value":1226},{"type":55,"tag":1171,"props":2409,"children":2411},{"class":1173,"line":2410},34,[2412,2416,2421,2425,2429,2433,2438],{"type":55,"tag":1171,"props":2413,"children":2414},{"style":1178},[2415],{"type":60,"value":2200},{"type":55,"tag":1171,"props":2417,"children":2418},{"style":2203},[2419],{"type":60,"value":2420},"html",{"type":55,"tag":1171,"props":2422,"children":2423},{"style":1178},[2424],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2426,"children":2427},{"style":1178},[2428],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2430,"children":2431},{"style":1178},[2432],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2434,"children":2435},{"style":1214},[2436],{"type":60,"value":2437},"\u003Cp>Hi {person.properties.first_name}, …\u003C\u002Fp>",{"type":55,"tag":1171,"props":2439,"children":2440},{"style":1178},[2441],{"type":60,"value":2442},"\"\n",{"type":55,"tag":1171,"props":2444,"children":2446},{"class":1173,"line":2445},35,[2447],{"type":55,"tag":1171,"props":2448,"children":2449},{"style":1178},[2450],{"type":60,"value":2451},"            }\n",{"type":55,"tag":1171,"props":2453,"children":2455},{"class":1173,"line":2454},36,[2456],{"type":55,"tag":1171,"props":2457,"children":2458},{"style":1178},[2459],{"type":60,"value":2460},"          }\n",{"type":55,"tag":1171,"props":2462,"children":2464},{"class":1173,"line":2463},37,[2465],{"type":55,"tag":1171,"props":2466,"children":2467},{"style":1178},[2468],{"type":60,"value":2469},"        }\n",{"type":55,"tag":1171,"props":2471,"children":2473},{"class":1173,"line":2472},38,[2474],{"type":55,"tag":1171,"props":2475,"children":2476},{"style":1178},[2477],{"type":60,"value":1702},{"type":55,"tag":1171,"props":2479,"children":2481},{"class":1173,"line":2480},39,[2482],{"type":55,"tag":1171,"props":2483,"children":2484},{"style":1178},[2485],{"type":60,"value":1711},{"type":55,"tag":1171,"props":2487,"children":2489},{"class":1173,"line":2488},40,[2490],{"type":55,"tag":1171,"props":2491,"children":2492},{"style":1178},[2493],{"type":60,"value":1336},{"type":55,"tag":1171,"props":2495,"children":2497},{"class":1173,"line":2496},41,[2498,2502,2506,2510,2514,2518,2523,2527],{"type":55,"tag":1171,"props":2499,"children":2500},{"style":1178},[2501],{"type":60,"value":1345},{"type":55,"tag":1171,"props":2503,"children":2504},{"style":1348},[2505],{"type":60,"value":1117},{"type":55,"tag":1171,"props":2507,"children":2508},{"style":1178},[2509],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2511,"children":2512},{"style":1178},[2513],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2515,"children":2516},{"style":1178},[2517],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2519,"children":2520},{"style":1214},[2521],{"type":60,"value":2522},"exit_node",{"type":55,"tag":1171,"props":2524,"children":2525},{"style":1178},[2526],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2528,"children":2529},{"style":1178},[2530],{"type":60,"value":1226},{"type":55,"tag":1171,"props":2532,"children":2534},{"class":1173,"line":2533},42,[2535,2539,2543,2547,2551,2555,2560,2564],{"type":55,"tag":1171,"props":2536,"children":2537},{"style":1178},[2538],{"type":60,"value":1345},{"type":55,"tag":1171,"props":2540,"children":2541},{"style":1348},[2542],{"type":60,"value":1196},{"type":55,"tag":1171,"props":2544,"children":2545},{"style":1178},[2546],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2548,"children":2549},{"style":1178},[2550],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2552,"children":2553},{"style":1178},[2554],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2556,"children":2557},{"style":1214},[2558],{"type":60,"value":2559},"Exit",{"type":55,"tag":1171,"props":2561,"children":2562},{"style":1178},[2563],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2565,"children":2566},{"style":1178},[2567],{"type":60,"value":1226},{"type":55,"tag":1171,"props":2569,"children":2571},{"class":1173,"line":2570},43,[2572,2576,2580,2584,2588,2592,2597,2601],{"type":55,"tag":1171,"props":2573,"children":2574},{"style":1178},[2575],{"type":60,"value":1345},{"type":55,"tag":1171,"props":2577,"children":2578},{"style":1348},[2579],{"type":60,"value":1425},{"type":55,"tag":1171,"props":2581,"children":2582},{"style":1178},[2583],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2585,"children":2586},{"style":1178},[2587],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2589,"children":2590},{"style":1178},[2591],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2593,"children":2594},{"style":1214},[2595],{"type":60,"value":2596},"exit",{"type":55,"tag":1171,"props":2598,"children":2599},{"style":1178},[2600],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2602,"children":2603},{"style":1178},[2604],{"type":60,"value":1226},{"type":55,"tag":1171,"props":2606,"children":2608},{"class":1173,"line":2607},44,[2609,2613,2617,2621,2625,2629,2633,2638,2642,2646,2650,2655,2659],{"type":55,"tag":1171,"props":2610,"children":2611},{"style":1178},[2612],{"type":60,"value":1345},{"type":55,"tag":1171,"props":2614,"children":2615},{"style":1348},[2616],{"type":60,"value":145},{"type":55,"tag":1171,"props":2618,"children":2619},{"style":1178},[2620],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2622,"children":2623},{"style":1178},[2624],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2626,"children":2627},{"style":1178},[2628],{"type":60,"value":1539},{"type":55,"tag":1171,"props":2630,"children":2631},{"style":1178},[2632],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2634,"children":2635},{"style":1486},[2636],{"type":60,"value":2637},"reason",{"type":55,"tag":1171,"props":2639,"children":2640},{"style":1178},[2641],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2643,"children":2644},{"style":1178},[2645],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2647,"children":2648},{"style":1178},[2649],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2651,"children":2652},{"style":1214},[2653],{"type":60,"value":2654},"Done",{"type":55,"tag":1171,"props":2656,"children":2657},{"style":1178},[2658],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2660,"children":2661},{"style":1178},[2662],{"type":60,"value":1693},{"type":55,"tag":1171,"props":2664,"children":2666},{"class":1173,"line":2665},45,[2667],{"type":55,"tag":1171,"props":2668,"children":2669},{"style":1178},[2670],{"type":60,"value":2671},"    }\n",{"type":55,"tag":1171,"props":2673,"children":2675},{"class":1173,"line":2674},46,[2676],{"type":55,"tag":1171,"props":2677,"children":2678},{"style":1178},[2679],{"type":60,"value":2680},"  ],\n",{"type":55,"tag":1171,"props":2682,"children":2684},{"class":1173,"line":2683},47,[2685,2689,2693,2697,2701],{"type":55,"tag":1171,"props":2686,"children":2687},{"style":1178},[2688],{"type":60,"value":1190},{"type":55,"tag":1171,"props":2690,"children":2691},{"style":1193},[2692],{"type":60,"value":96},{"type":55,"tag":1171,"props":2694,"children":2695},{"style":1178},[2696],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2698,"children":2699},{"style":1178},[2700],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2702,"children":2703},{"style":1178},[2704],{"type":60,"value":1327},{"type":55,"tag":1171,"props":2706,"children":2708},{"class":1173,"line":2707},48,[2709,2714,2718,2722,2726,2730,2734,2738,2742,2746,2750,2754,2758,2762,2766,2770,2774,2778,2782,2786,2790,2794,2798,2803,2807],{"type":55,"tag":1171,"props":2710,"children":2711},{"style":1178},[2712],{"type":60,"value":2713},"    {",{"type":55,"tag":1171,"props":2715,"children":2716},{"style":1178},[2717],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2719,"children":2720},{"style":1348},[2721],{"type":60,"value":2291},{"type":55,"tag":1171,"props":2723,"children":2724},{"style":1178},[2725],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2727,"children":2728},{"style":1178},[2729],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2731,"children":2732},{"style":1178},[2733],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2735,"children":2736},{"style":1214},[2737],{"type":60,"value":1367},{"type":55,"tag":1171,"props":2739,"children":2740},{"style":1178},[2741],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2743,"children":2744},{"style":1178},[2745],{"type":60,"value":1597},{"type":55,"tag":1171,"props":2747,"children":2748},{"style":1178},[2749],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2751,"children":2752},{"style":1348},[2753],{"type":60,"value":2206},{"type":55,"tag":1171,"props":2755,"children":2756},{"style":1178},[2757],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2759,"children":2760},{"style":1178},[2761],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2763,"children":2764},{"style":1178},[2765],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2767,"children":2768},{"style":1214},[2769],{"type":60,"value":1748},{"type":55,"tag":1171,"props":2771,"children":2772},{"style":1178},[2773],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2775,"children":2776},{"style":1178},[2777],{"type":60,"value":1597},{"type":55,"tag":1171,"props":2779,"children":2780},{"style":1178},[2781],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2783,"children":2784},{"style":1348},[2785],{"type":60,"value":1425},{"type":55,"tag":1171,"props":2787,"children":2788},{"style":1178},[2789],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2791,"children":2792},{"style":1178},[2793],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2795,"children":2796},{"style":1178},[2797],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2799,"children":2800},{"style":1214},[2801],{"type":60,"value":2802},"continue",{"type":55,"tag":1171,"props":2804,"children":2805},{"style":1178},[2806],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2808,"children":2809},{"style":1178},[2810],{"type":60,"value":2278},{"type":55,"tag":1171,"props":2812,"children":2814},{"class":1173,"line":2813},49,[2815,2819,2823,2827,2831,2835,2839,2843,2847,2851,2855,2859,2863,2867,2871,2875,2879,2883,2887,2891,2895,2899,2903,2907,2911],{"type":55,"tag":1171,"props":2816,"children":2817},{"style":1178},[2818],{"type":60,"value":2713},{"type":55,"tag":1171,"props":2820,"children":2821},{"style":1178},[2822],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2824,"children":2825},{"style":1348},[2826],{"type":60,"value":2291},{"type":55,"tag":1171,"props":2828,"children":2829},{"style":1178},[2830],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2832,"children":2833},{"style":1178},[2834],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2836,"children":2837},{"style":1178},[2838],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2840,"children":2841},{"style":1214},[2842],{"type":60,"value":1748},{"type":55,"tag":1171,"props":2844,"children":2845},{"style":1178},[2846],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2848,"children":2849},{"style":1178},[2850],{"type":60,"value":1597},{"type":55,"tag":1171,"props":2852,"children":2853},{"style":1178},[2854],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2856,"children":2857},{"style":1348},[2858],{"type":60,"value":2206},{"type":55,"tag":1171,"props":2860,"children":2861},{"style":1178},[2862],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2864,"children":2865},{"style":1178},[2866],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2868,"children":2869},{"style":1178},[2870],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2872,"children":2873},{"style":1214},[2874],{"type":60,"value":1932},{"type":55,"tag":1171,"props":2876,"children":2877},{"style":1178},[2878],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2880,"children":2881},{"style":1178},[2882],{"type":60,"value":1597},{"type":55,"tag":1171,"props":2884,"children":2885},{"style":1178},[2886],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2888,"children":2889},{"style":1348},[2890],{"type":60,"value":1425},{"type":55,"tag":1171,"props":2892,"children":2893},{"style":1178},[2894],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2896,"children":2897},{"style":1178},[2898],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2900,"children":2901},{"style":1178},[2902],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2904,"children":2905},{"style":1214},[2906],{"type":60,"value":2802},{"type":55,"tag":1171,"props":2908,"children":2909},{"style":1178},[2910],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2912,"children":2913},{"style":1178},[2914],{"type":60,"value":2278},{"type":55,"tag":1171,"props":2916,"children":2918},{"class":1173,"line":2917},50,[2919,2923,2927,2931,2935,2939,2943,2947,2951,2955,2959,2963,2967,2971,2975,2979,2983,2987,2991,2995,2999,3003,3007,3011,3015],{"type":55,"tag":1171,"props":2920,"children":2921},{"style":1178},[2922],{"type":60,"value":2713},{"type":55,"tag":1171,"props":2924,"children":2925},{"style":1178},[2926],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2928,"children":2929},{"style":1348},[2930],{"type":60,"value":2291},{"type":55,"tag":1171,"props":2932,"children":2933},{"style":1178},[2934],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2936,"children":2937},{"style":1178},[2938],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2940,"children":2941},{"style":1178},[2942],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2944,"children":2945},{"style":1214},[2946],{"type":60,"value":1932},{"type":55,"tag":1171,"props":2948,"children":2949},{"style":1178},[2950],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2952,"children":2953},{"style":1178},[2954],{"type":60,"value":1597},{"type":55,"tag":1171,"props":2956,"children":2957},{"style":1178},[2958],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2960,"children":2961},{"style":1348},[2962],{"type":60,"value":2206},{"type":55,"tag":1171,"props":2964,"children":2965},{"style":1178},[2966],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2968,"children":2969},{"style":1178},[2970],{"type":60,"value":1206},{"type":55,"tag":1171,"props":2972,"children":2973},{"style":1178},[2974],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2976,"children":2977},{"style":1214},[2978],{"type":60,"value":2522},{"type":55,"tag":1171,"props":2980,"children":2981},{"style":1178},[2982],{"type":60,"value":1201},{"type":55,"tag":1171,"props":2984,"children":2985},{"style":1178},[2986],{"type":60,"value":1597},{"type":55,"tag":1171,"props":2988,"children":2989},{"style":1178},[2990],{"type":60,"value":1211},{"type":55,"tag":1171,"props":2992,"children":2993},{"style":1348},[2994],{"type":60,"value":1425},{"type":55,"tag":1171,"props":2996,"children":2997},{"style":1178},[2998],{"type":60,"value":1201},{"type":55,"tag":1171,"props":3000,"children":3001},{"style":1178},[3002],{"type":60,"value":1206},{"type":55,"tag":1171,"props":3004,"children":3005},{"style":1178},[3006],{"type":60,"value":1211},{"type":55,"tag":1171,"props":3008,"children":3009},{"style":1214},[3010],{"type":60,"value":2802},{"type":55,"tag":1171,"props":3012,"children":3013},{"style":1178},[3014],{"type":60,"value":1201},{"type":55,"tag":1171,"props":3016,"children":3017},{"style":1178},[3018],{"type":60,"value":1693},{"type":55,"tag":1171,"props":3020,"children":3022},{"class":1173,"line":3021},51,[3023],{"type":55,"tag":1171,"props":3024,"children":3025},{"style":1178},[3026],{"type":60,"value":3027},"  ]\n",{"type":55,"tag":1171,"props":3029,"children":3031},{"class":1173,"line":3030},52,[3032],{"type":55,"tag":1171,"props":3033,"children":3034},{"style":1178},[3035],{"type":60,"value":3036},"}\n",{"type":55,"tag":63,"props":3038,"children":3039},{},[3040,3042,3050],{"type":60,"value":3041},"For anything beyond a placeholder email body, author the design with the ",{"type":55,"tag":69,"props":3043,"children":3044},{},[3045],{"type":55,"tag":84,"props":3046,"children":3048},{"className":3047},[],[3049],{"type":60,"value":720},{"type":60,"value":3051}," skill and reference the template. Don't hand-write production email HTML here.",{"type":55,"tag":164,"props":3053,"children":3055},{"id":3054},"hard-rules-to-surface-to-the-user-not-work-around",[3056],{"type":60,"value":3057},"Hard rules to surface to the user, not work around",{"type":55,"tag":1018,"props":3059,"children":3060},{},[3061,3071,3088],{"type":55,"tag":180,"props":3062,"children":3063},{},[3064,3069],{"type":55,"tag":69,"props":3065,"children":3066},{},[3067],{"type":60,"value":3068},"Behavioral targeting is unsupported.",{"type":60,"value":3070}," \"Did event X at least N times over the last M days\" can't be expressed as a trigger or a batch\u002Fschedule audience. If asked, reject it and explain; don't approximate it with a broken filter. (The backend rejects behavioral cohorts in batch audiences outright.)",{"type":55,"tag":180,"props":3072,"children":3073},{},[3074,3086],{"type":55,"tag":69,"props":3075,"children":3076},{},[3077,3079,3084],{"type":60,"value":3078},"Batch audiences target ",{"type":55,"tag":356,"props":3080,"children":3081},{},[3082],{"type":60,"value":3083},"who a person is",{"type":60,"value":3085},", not what they did.",{"type":60,"value":3087}," Person properties and\u002For static\u002Fproperty-based cohorts only. Event\u002Faction filters in a batch audience are silently dropped, so they're rejected.",{"type":55,"tag":180,"props":3089,"children":3090},{},[3091,3096],{"type":55,"tag":69,"props":3092,"children":3093},{},[3094],{"type":60,"value":3095},"Prefer re-evaluating audiences.",{"type":60,"value":3097}," For batch, inline person-property conditions or a dynamic (filter-based) cohort re-evaluate as people qualify; a static cohort is a frozen list, use only for an explicit given set.",{"type":55,"tag":3099,"props":3100,"children":3101},"style",{},[3102],{"type":60,"value":3103},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":3105,"total":3197},[3106,3122,3134,3146,3159,3174,3190],{"slug":3107,"name":3107,"fn":3108,"description":3109,"org":3110,"tags":3111,"stars":23,"repoUrl":24,"updatedAt":3121},"analyzing-expensive-users","analyze expensive users in AI observability","Analyze the most expensive users in AI observability and explain why they cost so much. Use when the user asks about top spenders, expensive users, per-user LLM cost, user-level cost drivers, or patterns behind high AI observability spend.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3112,3114,3117,3120],{"name":3113,"slug":31,"type":13},"Analytics",{"name":3115,"slug":3116,"type":13},"Cost Optimization","cost-optimization",{"name":3118,"slug":3119,"type":13},"Observability","observability",{"name":9,"slug":8,"type":13},"2026-07-28T05:34:11.117757",{"slug":3123,"name":3123,"fn":3124,"description":3125,"org":3126,"tags":3127,"stars":23,"repoUrl":24,"updatedAt":3133},"auditing-endpoints","audit PostHog project endpoints","Audit every endpoint in a PostHog project for staleness, failed materialisations, and unused materialised versions. Use when the user asks \"what endpoints can I clean up?\", \"are any of my endpoints broken?\", \"which materialised versions are still being called?\", or wants a one-shot cleanup pass over the Endpoints product. Produces a prioritised report grouped by issue type, with recommended actions but does not modify anything without explicit confirmation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3128,3129,3132],{"name":3113,"slug":31,"type":13},{"name":3130,"slug":3131,"type":13},"Audit","audit",{"name":9,"slug":8,"type":13},"2026-06-08T08:08:33.693989",{"slug":3135,"name":3135,"fn":3136,"description":3137,"org":3138,"tags":3139,"stars":23,"repoUrl":24,"updatedAt":3145},"auditing-warehouse-source-health","audit PostHog data warehouse source health","Audit the health of a PostHog project's data warehouse sources and syncs — find every broken or degraded source connection, sync schema, and webhook channel. Use when the user asks \"why are my imports failing?\", \"what's broken with my sources?\", \"why is my warehouse data stale?\", or wants a one-shot triage of source\u002Fsync health before deciding where to dig in. Produces a prioritized report grouped by severity, with recommended next steps. For materialized-view health use `auditing-warehouse-view-health`; for a single failing sync use `diagnosing-failed-warehouse-syncs`.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3140,3141,3143,3144],{"name":3130,"slug":3131,"type":13},{"name":3142,"slug":33,"type":13},"Data Warehouse",{"name":3118,"slug":3119,"type":13},{"name":9,"slug":8,"type":13},"2026-06-18T08:22:57.67984",{"slug":3147,"name":3147,"fn":3148,"description":3149,"org":3150,"tags":3151,"stars":23,"repoUrl":24,"updatedAt":3158},"auditing-warehouse-view-health","audit PostHog materialized view health","Audit the health of a PostHog project's materialized views (saved queries) — find every failed materialization and flag unused or stale materialized views that cost storage and compute. Use when the user asks \"which of my views are broken?\", \"why is this materialized view failing?\", \"are any of my views wasting compute?\", or wants a one-shot triage of view health. For source\u002Fsync health use `auditing-warehouse-source-health`.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3152,3153,3154,3157],{"name":3130,"slug":3131,"type":13},{"name":3142,"slug":33,"type":13},{"name":3155,"slug":3156,"type":13},"Performance","performance",{"name":9,"slug":8,"type":13},"2026-06-18T08:25:10.936787",{"slug":3160,"name":3160,"fn":3161,"description":3162,"org":3163,"tags":3164,"stars":23,"repoUrl":24,"updatedAt":3173},"authoring-error-tracking-alerts","author PostHog error tracking alerts","Author error tracking alerts that fire when an issue is created, reopened, or starts spiking. Use when the user asks to set up error notifications, route exceptions to Slack\u002Fwebhook\u002FLinear, or evaluate which error events are worth alerting on. Covers trigger-event selection, integration choice, dedup against existing alerts, and shipping with the canonical message body shape.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3165,3168,3171,3172],{"name":3166,"slug":3167,"type":13},"Alerting","alerting",{"name":3169,"slug":3170,"type":13},"Debugging","debugging",{"name":3118,"slug":3119,"type":13},{"name":9,"slug":8,"type":13},"2026-06-18T08:24:40.318583",{"slug":3175,"name":3175,"fn":3176,"description":3177,"org":3178,"tags":3179,"stars":23,"repoUrl":24,"updatedAt":3189},"authoring-log-alerts","author log alerts in PostHog","Author useful, low-noise log alerts on services in a PostHog project. Use when the user asks to set up alerts for their logs, suggest alerts they should add, or evaluate whether a service is worth monitoring. Covers service triage, baseline characterisation, threshold drafting, back-testing via simulate, and shipping with a notification destination.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3180,3181,3184,3185,3188],{"name":3113,"slug":31,"type":13},{"name":3182,"slug":3183,"type":13},"Monitoring","monitoring",{"name":3118,"slug":3119,"type":13},{"name":3186,"slug":3187,"type":13},"Operations","operations",{"name":9,"slug":8,"type":13},"2026-07-18T05:10:54.430898",{"slug":4,"name":4,"fn":5,"description":6,"org":3191,"tags":3192,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3193,3194,3195,3196],{"name":15,"slug":16,"type":13},{"name":18,"slug":19,"type":13},{"name":9,"slug":8,"type":13},{"name":21,"slug":22,"type":13},61,{"items":3199,"total":3315},[3200,3207,3213,3220,3227,3234,3242,3249,3263,3278,3288,3305],{"slug":3107,"name":3107,"fn":3108,"description":3109,"org":3201,"tags":3202,"stars":23,"repoUrl":24,"updatedAt":3121},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3203,3204,3205,3206],{"name":3113,"slug":31,"type":13},{"name":3115,"slug":3116,"type":13},{"name":3118,"slug":3119,"type":13},{"name":9,"slug":8,"type":13},{"slug":3123,"name":3123,"fn":3124,"description":3125,"org":3208,"tags":3209,"stars":23,"repoUrl":24,"updatedAt":3133},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3210,3211,3212],{"name":3113,"slug":31,"type":13},{"name":3130,"slug":3131,"type":13},{"name":9,"slug":8,"type":13},{"slug":3135,"name":3135,"fn":3136,"description":3137,"org":3214,"tags":3215,"stars":23,"repoUrl":24,"updatedAt":3145},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3216,3217,3218,3219],{"name":3130,"slug":3131,"type":13},{"name":3142,"slug":33,"type":13},{"name":3118,"slug":3119,"type":13},{"name":9,"slug":8,"type":13},{"slug":3147,"name":3147,"fn":3148,"description":3149,"org":3221,"tags":3222,"stars":23,"repoUrl":24,"updatedAt":3158},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3223,3224,3225,3226],{"name":3130,"slug":3131,"type":13},{"name":3142,"slug":33,"type":13},{"name":3155,"slug":3156,"type":13},{"name":9,"slug":8,"type":13},{"slug":3160,"name":3160,"fn":3161,"description":3162,"org":3228,"tags":3229,"stars":23,"repoUrl":24,"updatedAt":3173},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3230,3231,3232,3233],{"name":3166,"slug":3167,"type":13},{"name":3169,"slug":3170,"type":13},{"name":3118,"slug":3119,"type":13},{"name":9,"slug":8,"type":13},{"slug":3175,"name":3175,"fn":3176,"description":3177,"org":3235,"tags":3236,"stars":23,"repoUrl":24,"updatedAt":3189},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3237,3238,3239,3240,3241],{"name":3113,"slug":31,"type":13},{"name":3182,"slug":3183,"type":13},{"name":3118,"slug":3119,"type":13},{"name":3186,"slug":3187,"type":13},{"name":9,"slug":8,"type":13},{"slug":4,"name":4,"fn":5,"description":6,"org":3243,"tags":3244,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3245,3246,3247,3248],{"name":15,"slug":16,"type":13},{"name":18,"slug":19,"type":13},{"name":9,"slug":8,"type":13},{"name":21,"slug":22,"type":13},{"slug":3250,"name":3250,"fn":3251,"description":3252,"org":3253,"tags":3254,"stars":23,"repoUrl":24,"updatedAt":3262},"check-posthog-loading","inspect PostHog SDK loading across URLs","Inspect how the PostHog JavaScript SDK is loaded across a list of URLs. Use to confirm consistent installation across pages, find pages missing the snippet, detect mismatched API keys or hosts between pages, and verify the load method (head snippet vs deferred vs array.js).\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3255,3256,3257,3260,3261],{"name":3113,"slug":31,"type":13},{"name":3169,"slug":3170,"type":13},{"name":3258,"slug":3259,"type":13},"Frontend","frontend",{"name":3118,"slug":3119,"type":13},{"name":9,"slug":8,"type":13},"2026-05-07T05:56:19.828048",{"slug":3264,"name":3264,"fn":3265,"description":3266,"org":3267,"tags":3268,"stars":23,"repoUrl":24,"updatedAt":3277},"consuming-endpoints-from-client-code","integrate PostHog endpoints into client applications","Wire a PostHog endpoint into a client app or SDK. Covers fetching the OpenAPI spec, generating a typed client with openapi-generator or @hey-api\u002Fopenapi-ts, sending the right auth header, shaping the variables payload (HogQL code_name vs insight breakdown property), handling rate-limit and materialised-endpoint error responses. Use when the user says \"how do I call my endpoint\", \"generate a client for this\", or \"what auth header do I use\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3269,3272,3273,3274],{"name":3270,"slug":3271,"type":13},"API Development","api-development",{"name":3258,"slug":3259,"type":13},{"name":9,"slug":8,"type":13},{"name":3275,"slug":3276,"type":13},"SDK","sdk","2026-06-08T08:08:34.929454",{"slug":3279,"name":3279,"fn":3280,"description":3281,"org":3282,"tags":3283,"stars":23,"repoUrl":24,"updatedAt":3287},"copying-endpoints-across-projects","copy PostHog endpoints across projects","Copy a PostHog endpoint (a saved HogQL\u002Finsight query exposed as an API route) to another project in the same organization, or duplicate it under a new name in the same project. Use when the user wants to duplicate an endpoint, promote an endpoint from staging to production, replicate an endpoint's query\u002Fvariables\u002Ffreshness config in another workspace, or clone an endpoint to iterate on it. Unlike feature flags and experiments, endpoints have NO native cross-project copy tool — this skill covers the read-then-recreate flow (endpoint-get then endpoint-create), the active-project switching it requires, name-collision checks, and the safe defaults (land unmaterialised in the target, verify with endpoint-run). Does not cover editing endpoint versions (see managing-endpoint-versions) or authoring a brand-new endpoint from scratch (see creating-an-endpoint).\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3284,3285,3286],{"name":3270,"slug":3271,"type":13},{"name":3186,"slug":3187,"type":13},{"name":9,"slug":8,"type":13},"2026-07-15T05:29:58.442727",{"slug":3289,"name":3289,"fn":3290,"description":3291,"org":3292,"tags":3293,"stars":23,"repoUrl":24,"updatedAt":3304},"creating-ai-subscription","schedule recurring AI-generated PostHog reports","Create a recurring AI-generated PostHog report — schedule a free-text prompt to run on a cron, with the LLM-synthesized markdown delivered to email or Slack on each tick. Use when the user wants a recurring AI summary of X on any cadence (daily, weekly, monthly, yearly) rather than a one-off report. (To attach an AI summary to an existing insight\u002Fdashboard subscription instead of a free-text prompt, see `managing-subscriptions` and its `summary_enabled` option.)\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3294,3295,3297,3298,3301],{"name":15,"slug":16,"type":13},{"name":3296,"slug":2153,"type":13},"Email",{"name":9,"slug":8,"type":13},{"name":3299,"slug":3300,"type":13},"Reporting","reporting",{"name":3302,"slug":3303,"type":13},"Slack","slack","2026-06-09T07:32:27.935712",{"slug":3306,"name":3306,"fn":3307,"description":3308,"org":3309,"tags":3310,"stars":23,"repoUrl":24,"updatedAt":3314},"creating-an-endpoint","create PostHog API endpoints","Create a PostHog endpoint with the right shape on the first try — covers query kind choice, name conventions, what to expose as variables (HogQL code_name vs insight breakdown), data_freshness_seconds, and whether to materialise on day one. Use when the user says \"create an endpoint\", \"expose this query as an API\", \"turn this insight into an endpoint\", or asks for help structuring a new endpoint. Steers away from common mistakes: materialising a query with cohort breakdowns or compare mode, inline-only variables on a materialised endpoint, unbounded date ranges, ambiguous names.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3311,3312,3313],{"name":3113,"slug":31,"type":13},{"name":3270,"slug":3271,"type":13},{"name":9,"slug":8,"type":13},"2026-06-08T08:08:29.624498",231]