[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-novu-novu-framework-integration":3,"mdc--n4q6a9-key":35,"related-org-novu-novu-framework-integration":14856,"related-repo-novu-novu-framework-integration":14960},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":30,"sourceUrl":33,"mdContent":34},"novu-framework-integration","build code-first notification workflows","Build code-first notification workflows with @novu\u002Fframework. Use when defining workflows in TypeScript (Zod \u002F JSON Schema \u002F Class Validator), composing channel steps (email, SMS, push, chat, in-app) with action steps (delay, digest, custom), exposing Step Controls for non-technical teammates, rendering React\u002FVue\u002FSvelte Email templates, hosting the Bridge Endpoint inside Next.js, Express, NestJS, Remix, Nuxt, SvelteKit, H3, or AWS Lambda, syncing to Novu Cloud via CLI \u002F GitHub Actions, securing production with HMAC, or implementing translations, hydration, multi-channel orchestration, and LLM-powered notification logic in code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"novu","Novu","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fnovu.png","novuhq",[13,17,20],{"name":14,"slug":15,"type":16},"Backend","backend","tag",{"name":18,"slug":19,"type":16},"TypeScript","typescript",{"name":21,"slug":22,"type":16},"Notifications","notifications",1,"https:\u002F\u002Fgithub.com\u002Fnovuhq\u002Fskills","2026-07-13T06:21:20.83585",null,2,[29,22,8],"notification",{"repoUrl":24,"stars":23,"forks":27,"topics":31,"description":32},[29,22,8],"Novu Skill Set for AI Agents ","https:\u002F\u002Fgithub.com\u002Fnovuhq\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fframework-integration","---\nname: novu-framework-integration\ndescription: Build code-first notification workflows with @novu\u002Fframework. Use when defining workflows in TypeScript (Zod \u002F JSON Schema \u002F Class Validator), composing channel steps (email, SMS, push, chat, in-app) with action steps (delay, digest, custom), exposing Step Controls for non-technical teammates, rendering React\u002FVue\u002FSvelte Email templates, hosting the Bridge Endpoint inside Next.js, Express, NestJS, Remix, Nuxt, SvelteKit, H3, or AWS Lambda, syncing to Novu Cloud via CLI \u002F GitHub Actions, securing production with HMAC, or implementing translations, hydration, multi-channel orchestration, and LLM-powered notification logic in code.\ninputs:\n  - name: NOVU_SECRET_KEY\n    description: \"Server-side API key from https:\u002F\u002Fdashboard.novu.co\u002Fapi-keys. Used by @novu\u002Fframework and the Bridge Endpoint.\"\n    required: true\n    type: secret\n---\n\n# Framework Integration\n\nUse `@novu\u002Fframework` to build notification workflows **in code**, alongside your application source. Workflows live in your repo, content is rendered using libraries you already use (React Email, Vue Email, Svelte Email), and a single HTTP endpoint (the Bridge) lets Novu Cloud execute them with just-in-time data from your services.\n\n> Use this skill when building workflows **in code**. For workflows authored in the Novu Dashboard, just trigger them via [`trigger-notification`](..\u002Ftrigger-notification) — no Framework needed.\n\n## When to Use the Framework\n\n| Use Framework | Use Dashboard Workflows |\n| --- | --- |\n| Workflows must live in source control \u002F GitOps | Non-technical peers own all the content |\n| Need just-in-time data from your DB \u002F APIs | All data fits in the trigger payload |\n| Render emails with React\u002FVue\u002FSvelte Email | Block editor is enough |\n| Execute custom code (LLMs, third-party APIs) | Pure send-only flows |\n| Need typed payload + step controls | Quick prototype |\n\nThe two approaches **coexist** — a single environment can have both code-defined and dashboard-defined workflows.\n\n## How It Works\n\n1. You define workflows in code with `workflow(...)` from `@novu\u002Fframework`.\n2. You expose a single `\u002Fapi\u002Fnovu` HTTP route in your app — the **Bridge Endpoint**.\n3. You sync the bridge URL to Novu Cloud (via `npx novu sync` or GitHub Action).\n4. Novu Cloud calls your bridge over an authenticated tunnel during workflow execution to fetch step content with the latest data.\n\n```\nTrigger ──► Novu Cloud Worker ──► Your Bridge (\u002Fapi\u002Fnovu) ──► Provider (SendGrid, FCM, …)\n```\n\n## Quick Start\n\n### 1. Bootstrap a project\n\n```bash\nnpx novu init --secret-key=\u003CYOUR_NOVU_SECRET_KEY>\n```\n\nThis creates a sample bridge app with a workflow, env file, and a working `\u002Fapi\u002Fnovu` route.\n\n### 2. Or add to an existing app\n\n```bash\nnpm install @novu\u002Fframework zod @react-email\u002Fcomponents react-email\n```\n\n```bash\nNOVU_SECRET_KEY=\u003CYOUR_NOVU_SECRET_KEY>\n```\n\n### 3. Define a workflow\n\n```typescript\nimport { workflow } from \"@novu\u002Fframework\";\nimport { z } from \"zod\";\n\nexport const welcomeWorkflow = workflow(\n  \"welcome-email\",\n  async ({ step, payload, subscriber }) => {\n    await step.email(\"send-email\", async (controls) => {\n      return {\n        subject: controls.subject,\n        body: `Welcome ${subscriber.firstName ?? payload.userName}!`,\n      };\n    }, {\n      controlSchema: z.object({\n        subject: z.string().default(\"Welcome to {{payload.appName}}\"),\n      }),\n    });\n  },\n  {\n    payloadSchema: z.object({\n      userName: z.string(),\n      appName: z.string().default(\"Acme\"),\n    }),\n    name: \"Welcome Email\",\n    description: \"Sent when a new user signs up\",\n    tags: [\"onboarding\"],\n  }\n);\n```\n\n### 4. Mount the Bridge Endpoint\n\nPick the wrapper that matches your framework — see [Bridge Endpoint Setup](#bridge-endpoint-setup) below.\n\n### 5. Run the Local Studio\n\n```bash\nnpx novu@latest dev --port \u003CYOUR_APP_PORT>\n```\n\nOpen `http:\u002F\u002Flocalhost:2022` to preview workflows, edit controls, and trigger test events. The Studio creates a public tunnel automatically so Novu Cloud can reach your local bridge.\n\n## Workflow Anatomy\n\n> Designing the workflow itself? See [`design-workflow\u002F`](..\u002Fdesign-workflow) for channel selection, severity, `critical`, digest defaults, step conditions, and the 9 reference templates (order confirmation, payment failed, account suspended, comment, trial expiring, password reset, webhook fan-out, fetch-then-notify). The Framework SKILL covers **how to express** those decisions in code; `design-workflow\u002F` covers **what to decide**.\n\n```typescript\nworkflow(workflowId, handler, options);\n```\n\n| Param | Type | Description |\n| --- | --- | --- |\n| `workflowId` | `string` | Unique identifier in your environment |\n| `handler` | `({ step, payload, subscriber }) => Promise\u003Cvoid>` | Workflow body — calls steps in order |\n| `options` | `WorkflowOptions` | Schema, name, description, tags, preferences |\n\n### Workflow Options\n\n| Option | Type | Purpose |\n| --- | --- | --- |\n| `payloadSchema` | `ZodSchema \\| JsonSchema \\| ClassValidatorClass` | Validates the trigger payload, infers TS type for `payload` |\n| `name` | `string` | Human-readable name shown in Dashboard \u002F `\u003CInbox \u002F>` |\n| `description` | `string` | Description shown in Dashboard |\n| `tags` | `string[]` | Categorize for filtering \u002F Inbox tabs |\n| `severity` | `'low' \\| 'medium' \\| 'high'` | Visual prioritization in the Inbox. Leave unset for most workflows. |\n| `critical` | `boolean` | Bypasses subscriber preferences, skips digest, runs without delays. Reserve for must-deliver events. |\n| `preferences` | `WorkflowPreferences` | Default channel preferences and `readOnly` flag |\n\n### Workflow Context\n\nThe handler receives `{ step, payload, subscriber }`:\n\n- `step` — channel and action step builders (`step.email`, `step.delay`, `step.digest`, …)\n- `payload` — strongly-typed data passed at trigger time, validated against `payloadSchema`\n- `subscriber` — `{ subscriberId, firstName?, lastName?, locale?, data?, ... }` of the recipient\n\n## Channel Steps\n\nAll channel steps share the same shape:\n\n```typescript\nawait step.\u003Cchannel>(stepId, resolver, options?);\n```\n\n| Step | Output Required | Notable Outputs | Returns Result |\n| --- | --- | --- | --- |\n| `step.email` | `subject`, `body` | `attachments`, `from`, `replyTo` | No |\n| `step.sms` | `body` | — | No |\n| `step.push` | `title` (or `subject`), `body` | `data`, `image`, `icon` | No |\n| `step.chat` | `body` | — (override per-provider) | No |\n| `step.inApp` | `body` | `subject`, `avatar`, `redirect`, `primaryAction`, `secondaryAction`, `data` | `{ seen, read, lastSeenDate, lastReadDate }` |\n\n### Email Step\n\n```typescript\nawait step.email(\"welcome\", async (controls) => ({\n  subject: controls.subject,\n  body: render(\u003CWelcomeEmail name={subscriber.firstName} \u002F>),\n  from: \"hello@acme.com\",\n  replyTo: \"support@acme.com\",\n}));\n```\n\n### In-App Step (rich payload)\n\n```typescript\nawait step.inApp(\"inbox\", async () => ({\n  subject: \"Welcome to Acme!\",\n  body: \"We are excited to have you on board.\",\n  avatar: \"https:\u002F\u002Facme.com\u002Favatar.png\",\n  redirect: { url: \"\u002Fwelcome\", target: \"_self\" },\n  primaryAction: {\n    label: \"Get Started\",\n    redirect: { url: \"\u002Fget-started\", target: \"_self\" },\n  },\n  data: { entityType: \"user\", entityId: payload.userId },\n}));\n```\n\nThe In-App step **returns** `{ seen, read, lastSeenDate, lastReadDate }` — use it to drive the `skip` of subsequent steps.\n\n### SMS \u002F Push \u002F Chat\n\n```typescript\nawait step.sms(\"verification\", async () => ({\n  body: `Your code is ${payload.code}`,\n}));\n\nawait step.push(\"new-message\", async () => ({\n  title: \"New message\",\n  body: payload.preview,\n  data: { messageId: payload.id },\n}));\n\nawait step.chat(\"notify\", async () => ({\n  body: `:rocket: Deploy ${payload.id} succeeded`,\n}));\n```\n\n## Action Steps\n\n### `step.delay`\n\nPause workflow execution before the next step.\n\n```typescript\nawait step.delay(\"wait-a-day\", async () => ({\n  unit: \"days\",\n  amount: 1,\n}));\n```\n\nSupported `unit` values: `seconds`, `minutes`, `hours`, `days`, `weeks`, `months`.\n\n### `step.digest`\n\nAggregate multiple triggers into a single notification over a window.\n\n```typescript\nconst { events } = await step.digest(\"daily\", async () => ({\n  unit: \"days\",\n  amount: 1,\n  digestKey: payload.projectId, \u002F\u002F optional — group by custom key\n}));\n\nawait step.email(\"summary\", async () => ({\n  subject: `${events.length} updates today`,\n  body: render(\u003CDigestEmail events={events} \u002F>),\n}));\n```\n\nUse `cron: \"0 0 * * *\"` instead of `unit`\u002F`amount` for cron-based digests. Each digest event has `{ id, time, payload }`. **Only one digest per workflow** — chain a second workflow via `step.custom` if you need a two-stage digest.\n\n### `step.http`\n\nCall an external HTTP endpoint as part of the workflow — webhook fan-out or just-in-time data fetch.\n\n```typescript\nconst plan = await step.http(\"fetch-plan\", async () => ({\n  method: \"GET\",\n  url: `https:\u002F\u002Fapi.example.com\u002Fusers\u002F${payload.userId}\u002Fplan`,\n  responseBodySchema: {\n    type: \"object\",\n    properties: { planName: { type: \"string\" }, renewalDate: { type: \"string\" } },\n    required: [\"planName\", \"renewalDate\"],\n  } as const,\n}));\n\nawait step.email(\"notify\", async () => ({\n  subject: `Your ${plan.planName} plan`,\n  body: `Renews on ${plan.renewalDate}.`,\n}));\n```\n\nWebhook-style:\n\n```typescript\nawait step.http(\"webhook\", async () => ({\n  method: \"POST\",\n  url: payload.webhookUrl,\n  headers: [{ key: \"Content-Type\", value: \"application\u002Fjson\" }],\n  body: [\n    { key: \"event\", value: \"payment_failed\" },\n    { key: \"subscriberId\", value: subscriber.subscriberId },\n  ],\n  continueOnFailure: true,\n}));\n```\n\nWhen a subsequent step references HTTP response data, the HTTP step **must** declare a `responseBodySchema`. Only properties declared in the schema are addressable as `{{ steps.\u003Chttp-step-id>.\u003Cproperty> }}`.\n\n### `step.custom`\n\nRun arbitrary code and persist its result for later steps.\n\n```typescript\nconst task = await step.custom(\"fetch-task\", async () => {\n  const t = await db.fetchTask(payload.taskId);\n  return { id: t.id, title: t.title, complete: t.complete };\n}, {\n  outputSchema: {\n    type: \"object\",\n    properties: {\n      id: { type: \"string\" },\n      title: { type: \"string\" },\n      complete: { type: \"boolean\" },\n    },\n    required: [\"id\", \"complete\"],\n  } as const,\n});\n\nawait step.email(\"reminder\", async () => ({\n  subject: `Reminder: ${task.title}`,\n  body: \"Please complete your task.\",\n}), {\n  skip: () => task.complete,\n});\n```\n\nThe custom step result is **only** usable inside subsequent step `resolver`, `providers`, and `skip` functions — not in step controls.\n\n## Step Options\n\n```typescript\nawait step.email(stepId, resolver, {\n  controlSchema,         \u002F\u002F Zod | JSON Schema | Class-Validator class\n  skip,                  \u002F\u002F (controls) => boolean | Promise\u003Cboolean>\n  providers,             \u002F\u002F per-provider override callbacks\n  disableOutputSanitization, \u002F\u002F boolean — for raw HTML in Inbox\n});\n```\n\n### `skip`\n\nConditionally skip a step. Receives the resolved controls.\n\n```typescript\nawait step.email(\"follow-up\", resolver, {\n  skip: () => inAppNotification.read === true,\n});\n```\n\n### `providers` (Per-Step Provider Overrides)\n\nCustomize the request sent to the underlying provider — e.g. Slack `blocks` or SendGrid `cc`.\n\n```typescript\nawait step.email(\"alert\", resolver, {\n  providers: {\n    sendgrid: ({ controls, outputs }) => ({\n      from: \"alerts@acme.com\",\n      cc: [\"ops@acme.com\"],\n      _passthrough: {\n        body: { ip_pool_name: \"transactional\" },\n        headers: { \"X-Custom\": \"value\" },\n      },\n    }),\n  },\n});\n```\n\n`_passthrough` deep-merges into the final provider request — typed provider keys take precedence over `_passthrough`.\n\n### `disableOutputSanitization`\n\nAllow raw HTML \u002F unescaped characters in the output (e.g. `&` in In-App `data.link`):\n\n```typescript\nawait step.inApp(\"link\", async () => ({\n  body: \"Check it out\",\n  data: { link: \"\u002Fp\u002F123?active=true&env=prod\" },\n}), { disableOutputSanitization: true });\n```\n\n## Payload Schema\n\nThe payload is the data passed at trigger time. Define a schema to get typed `payload` and runtime validation.\n\n### With Zod\n\n```typescript\nimport { z } from \"zod\";\n\nworkflow(\"comment\", handler, {\n  payloadSchema: z.object({\n    postId: z.number(),\n    authorName: z.string(),\n    comment: z.string().max(200),\n  }),\n});\n```\n\n### With JSON Schema\n\n```typescript\nworkflow(\"comment\", handler, {\n  payloadSchema: {\n    type: \"object\",\n    properties: {\n      postId: { type: \"number\" },\n      authorName: { type: \"string\" },\n      comment: { type: \"string\", maxLength: 200 },\n    },\n    required: [\"postId\", \"comment\"],\n    additionalProperties: false,\n  } as const,\n});\n```\n\n> The `as const` is required for TS to infer the payload type from JSON Schema.\n\n### With Class Validator\n\n```typescript\nimport { IsString, IsNumber } from \"class-validator\";\n\nclass CommentPayload {\n  @IsNumber() postId!: number;\n  @IsString() authorName!: string;\n  @IsString() comment!: string;\n}\n\nworkflow(\"comment\", handler, { payloadSchema: CommentPayload });\n```\n\nRequires `class-validator`, `class-validator-jsonschema`, `reflect-metadata`. See [`references\u002Fschema-validation.md`](.\u002Freferences\u002Fschema-validation.md).\n\n## Step Controls — No-Code for Your Team\n\nControls are step-level inputs your non-technical peers can edit in the Novu Dashboard UI without touching code. They're validated by a schema you define (Zod \u002F JSON Schema \u002F Class-Validator).\n\n```typescript\nawait step.email(\"welcome\", async (controls) => ({\n  subject: controls.subject,\n  body: render(\u003CEmailTemplate hideBanner={controls.hideBanner} \u002F>),\n}), {\n  controlSchema: z.object({\n    hideBanner: z.boolean().default(false),\n    subject: z.string().default(\"Hi {{subscriber.firstName | capitalize}}\"),\n  }),\n});\n```\n\n### Variables in Controls\n\nControl values support [LiquidJS](https:\u002F\u002Fliquidjs.com\u002Ffilters\u002Foverview.html) templating:\n\n- `{{subscriber.firstName}}` — any subscriber attribute\n- `{{payload.userId}}` — any payload field defined in `payloadSchema`\n- `{{payload.invoiceDate | date: '%a, %b %d, %y'}}` — Liquid filters\n- `{{subscriber.firstName | append: ': ' | append: payload.status | capitalize}}` — chained filters\n\nType `{{` in the Dashboard UI to autocomplete available variables.\n\n### Controls vs Payload\n\n| | Controls | Payload |\n| --- | --- | --- |\n| Edited by | Non-technical peers in Dashboard | Developers in code |\n| Schema | `controlSchema` per step | `payloadSchema` per workflow |\n| Persistence | Stored in Novu Cloud per environment | Sent at trigger time |\n| Use case | Subject, copy, styling, behaviour toggles | Dynamic per-trigger data |\n\n## Workflow Preferences\n\nDefine default channel preferences in code. See [`manage-preferences`](..\u002Fmanage-preferences) for the full preference resolution model.\n\n```typescript\nworkflow(\"system-alert\", handler, {\n  preferences: {\n    all: { enabled: true, readOnly: false },\n    channels: {\n      email: { enabled: true },\n      sms: { enabled: false },\n      inApp: { enabled: true },\n    },\n  },\n});\n```\n\n- `all.readOnly: true` makes the workflow **critical** — subscribers cannot disable it.\n- `all.enabled` is the fallback for any channel not in `channels`.\n- Default if omitted: `enabled: true`, `readOnly: false` for all channels.\n\n## Bridge Endpoint Setup\n\nThe Bridge is a single HTTP route (`\u002Fapi\u002Fnovu` by default) where Novu Cloud calls your app to:\n- Discover registered workflows (`GET`)\n- Resolve step content for a given subscriber + payload (`POST`)\n- Verify HMAC signatures on requests\n\nEach framework ships a `serve` wrapper that handles parsing, HMAC verification, and response shaping.\n\n### Next.js (App Router)\n\n```typescript\nimport { serve } from \"@novu\u002Fframework\u002Fnext\";\nimport { welcomeWorkflow } from \"@\u002Fnovu\u002Fworkflows\";\n\nexport const { GET, POST, OPTIONS } = serve({\n  workflows: [welcomeWorkflow],\n});\n```\n\n### Next.js (Pages Router)\n\n```typescript\nimport { serve } from \"@novu\u002Fframework\u002Fnext\";\nimport { welcomeWorkflow } from \"..\u002F..\u002Fnovu\u002Fworkflows\";\n\nexport default serve({ workflows: [welcomeWorkflow] });\n```\n\n### Express\n\n```typescript\nimport express from \"express\";\nimport { serve } from \"@novu\u002Fframework\u002Fexpress\";\nimport { welcomeWorkflow } from \".\u002Fnovu\u002Fworkflows\";\n\nconst app = express();\napp.use(express.json()); \u002F\u002F required\napp.use(\"\u002Fapi\u002Fnovu\", serve({ workflows: [welcomeWorkflow] }));\napp.listen(4000);\n```\n\n### NestJS\n\n```typescript\nimport { Module } from \"@nestjs\u002Fcommon\";\nimport { NovuModule } from \"@novu\u002Fframework\u002Fnest\";\nimport { welcomeWorkflow } from \".\u002Fnovu\u002Fworkflows\";\n\n@Module({\n  imports: [\n    NovuModule.register({\n      apiPath: \"\u002Fapi\u002Fnovu\",\n      workflows: [welcomeWorkflow],\n    }),\n  ],\n})\nexport class AppModule {}\n```\n\nFor dependency injection, use `NovuModule.registerAsync` — see [`references\u002Fbridge-endpoint.md`](.\u002Freferences\u002Fbridge-endpoint.md).\n\n### Remix\n\n```typescript\nimport { serve } from \"@novu\u002Fframework\u002Fremix\";\nimport { welcomeWorkflow } from \"..\u002Fnovu\u002Fworkflows\";\n\nconst handler = serve({ workflows: [welcomeWorkflow] });\nexport { handler as action, handler as loader };\n```\n\n### SvelteKit\n\n```typescript\nimport { serve } from \"@novu\u002Fframework\u002Fsveltekit\";\nimport { welcomeWorkflow } from \"$lib\u002Fnovu\u002Fworkflows\";\n\nexport const { GET, POST, OPTIONS } = serve({ workflows: [welcomeWorkflow] });\n```\n\n### Nuxt\n\n```typescript\nimport { serve } from \"@novu\u002Fframework\u002Fnuxt\";\nimport { welcomeWorkflow } from \"~\u002Fnovu\u002Fworkflows\";\n\nexport default defineEventHandler(serve({ workflows: [welcomeWorkflow] }));\n```\n\n### H3\n\n```typescript\nimport { createApp, eventHandler, toNodeListener } from \"h3\";\nimport { createServer } from \"node:http\";\nimport { serve } from \"@novu\u002Fframework\u002Fh3\";\nimport { welcomeWorkflow } from \".\u002Fnovu\u002Fworkflows\";\n\nconst app = createApp();\napp.use(\"\u002Fapi\u002Fnovu\", eventHandler(serve({ workflows: [welcomeWorkflow] })));\ncreateServer(toNodeListener(app)).listen(4000);\n```\n\n### AWS Lambda\n\n```typescript\nimport { serve } from \"@novu\u002Fframework\u002Flambda\";\nimport { welcomeWorkflow } from \".\u002Fnovu\u002Fworkflows\";\n\nexport const novu = serve({ workflows: [welcomeWorkflow] });\n```\n\n### Custom (any framework)\n\n```typescript\nimport { NovuRequestHandler, ServeHandlerOptions } from \"@novu\u002Fframework\";\n\nexport const serve = (options: ServeHandlerOptions) =>\n  new NovuRequestHandler({\n    frameworkName: \"my-framework\",\n    ...options,\n    handler: (req, res) => ({ \u002F* method, headers, body, url, transformResponse *\u002F }),\n  }).createHandler();\n```\n\nSee [`references\u002Fbridge-endpoint.md`](.\u002Freferences\u002Fbridge-endpoint.md) for the full custom handler signature.\n\n## Local Studio\n\nLive preview of your workflows with a public tunnel for Novu Cloud to reach your machine.\n\n```bash\nnpx novu@latest dev\n# Defaults: --port 4000  --route \u002Fapi\u002Fnovu  --studio-port 2022\n```\n\nThen open `http:\u002F\u002Flocalhost:2022` (Chrome only).\n\n### CLI Flags\n\n| Flag | Default | Purpose |\n| --- | --- | --- |\n| `-p`, `--port` | `4000` | Your app's port |\n| `-r`, `--route` | `\u002Fapi\u002Fnovu` | Bridge route path |\n| `-o`, `--origin` | `http:\u002F\u002Flocalhost` | Bridge origin |\n| `-d`, `--dashboard-url` | `https:\u002F\u002Fdashboard.novu.co` | Dashboard URL — use `https:\u002F\u002Feu.dashboard.novu.co` for EU |\n| `-sp`, `--studio-port` | `2022` | Studio UI port |\n| `-t`, `--tunnel` | auto | Self-hosted tunnel URL (e.g. ngrok) |\n| `-H`, `--headless` | `false` | Skip the Studio UI |\n\n```bash\nnpx novu@latest dev --port 3002 --dashboard-url https:\u002F\u002Feu.dashboard.novu.co\n```\n\nThe Studio:\n- Auto-creates a stable tunnel URL like `https:\u002F\u002F\u003Cid>.novu.sh\u002Fapi\u002Fnovu`\n- Lets you edit Step Controls and Payload to preview different states\n- Runs against `process.env.NODE_ENV=development` — HMAC verification is **off** to allow Studio access\n- Has a \"Sync\" button to push state to Cloud (use CI\u002FCD for real deployments)\n\n## Triggering Workflows\n\nCode-defined workflows are triggered the same way as Dashboard workflows — using `@novu\u002Fapi` from your trigger surface (server, queue worker, webhook handler):\n\n```typescript\nimport { Novu } from \"@novu\u002Fapi\";\nconst novu = new Novu({ secretKey: process.env.NOVU_SECRET_KEY });\n\nawait novu.trigger({\n  workflowId: \"welcome-email\",\n  to: { subscriberId: \"user-123\", email: \"jane@acme.com\" },\n  payload: { userName: \"Jane\", appName: \"Acme\" },\n});\n```\n\nYou can also trigger a workflow from inside a `step.custom` of another workflow:\n\n```typescript\nawait step.custom(\"trigger-summary\", async () => {\n  return await summaryWorkflow.trigger({\n    to: subscriber.subscriberId,\n    payload: { events: events.map(e => e.payload) },\n  });\n});\n```\n\nSee [`trigger-notification`](..\u002Ftrigger-notification) for full trigger options (bulk, broadcast, topics, overrides, transactionId, cancel).\n\n## React Email (and friends)\n\nRender emails using your existing component library.\n\n### React Email\n\n```bash\nnpm install @react-email\u002Fcomponents react-email\n```\n\n```tsx\nimport { Body, Container, Head, Html, render } from \"@react-email\u002Fcomponents\";\n\nexport const WelcomeEmail = ({ name }: { name: string }) => (\n  \u003CHtml>\n    \u003CHead \u002F>\n    \u003CBody>\n      \u003CContainer>Hello {name}, welcome!\u003C\u002FContainer>\n    \u003C\u002FBody>\n  \u003C\u002FHtml>\n);\n\nexport const renderWelcome = (name: string) => render(\u003CWelcomeEmail name={name} \u002F>);\n```\n\n```typescript\nawait step.email(\"welcome\", async () => ({\n  subject: \"Welcome\",\n  body: renderWelcome(payload.userName),\n}));\n```\n\nVue Email, Svelte Email, and Remix + React Email are also supported. See [`references\u002Femail-templates.md`](.\u002Freferences\u002Femail-templates.md).\n\n## Translations (i18n)\n\nFor Framework-based workflows, translation lives in your code (not in the Novu Translation system, which targets Dashboard workflows). Use any i18n library (e.g. i18next) and resolve content from `subscriber.locale` inside the resolver.\n\n```typescript\nimport { workflow } from \"@novu\u002Fframework\";\nimport i18n from \".\u002Fi18n\";\n\nexport const localizedWorkflow = workflow(\n  \"welcome-localized\",\n  async ({ step, subscriber }) => {\n    await step.email(\"email\", async (controls) => {\n      const t = i18n.getFixedT([subscriber.locale ?? controls.defaultLocale]);\n      return {\n        subject: t(\"welcomeEmailSubject\", { username: subscriber.firstName }),\n        body: render(\u003CWelcome subject={t(\"subject\")} body={t(\"body\")} \u002F>),\n      };\n    }, {\n      controlSchema: z.object({\n        defaultLocale: z.string().default(\"en_US\"),\n      }),\n    });\n  },\n);\n```\n\nSee [`references\u002Ftranslations.md`](.\u002Freferences\u002Ftranslations.md) for a complete i18next + React Email example.\n\n## Tags\n\nTag a workflow to group it with related notifications (used by Inbox tabs and Dashboard filtering):\n\n```typescript\nworkflow(\"login-alert\", handler, { tags: [\"security\"] });\nworkflow(\"password-change\", handler, { tags: [\"security\"] });\n```\n\nIn the Inbox, render a \"Security\" tab with `tabs={[{ label: \"Security\", filter: { tags: [\"security\"] } }]}` (see [`inbox-integration`](..\u002Finbox-integration)).\n\n## Deployment\n\n### Sync via CLI\n\nPush your workflows to Novu Cloud:\n\n```bash\nnpx novu@latest sync \\\n  --bridge-url https:\u002F\u002Fapi.acme.com\u002Fapi\u002Fnovu \\\n  --secret-key $NOVU_SECRET_KEY \\\n  --api-url https:\u002F\u002Fapi.novu.co  # use https:\u002F\u002Feu.api.novu.co for EU\n```\n\n### GitHub Actions\n\n```yaml\nname: Sync Novu Workflows\non:\n  push:\n    branches: [main]\n\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: novuhq\u002Factions-novu-sync@v2\n        with:\n          secret-key: ${{ secrets.NOVU_SECRET_KEY }}\n          bridge-url: ${{ secrets.NOVU_BRIDGE_URL }}\n          api-url: https:\u002F\u002Fapi.novu.co\n```\n\n### GitOps Workflow\n\n1. Develop locally with the Studio against your own machine.\n2. Open a PR — CI runs `npx novu sync` against the **Development** environment to test e2e.\n3. Merge to `main` — CI runs `npx novu sync` against **Production**.\n\nGitLab CI, Jenkins, CircleCI, Bitbucket, Azure DevOps, and Travis CI all work via the CLI.\n\n## Production & Security\n\n- **Bridge URL must be publicly reachable** over HTTPS. Novu Cloud auto-scales — no IP allowlist is published.\n- **HMAC verification is on by default** when `NODE_ENV !== \"development\"`. The `serve` wrapper handles this — you don't need to write any code. Each request includes a `Novu-Signature` header (`t=timestamp,v1=signature`) that's verified against `NOVU_SECRET_KEY`.\n- **Disable HMAC for local dev** automatically via `NODE_ENV=development`. Don't disable it in production.\n- **Vercel Preview URLs** are protected by default — enable [Protection Bypass for Automation](https:\u002F\u002Fvercel.com\u002Fdocs\u002Fsecurity\u002Fdeployment-protection\u002Fmethods-to-bypass-deployment-protection) and pass the bypass token as `?x-vercel-protection-bypass=\u003Ctoken>` in your bridge URL.\n\n### Custom Client\n\nOverride defaults globally:\n\n```typescript\nimport { Client as NovuFrameworkClient } from \"@novu\u002Fframework\";\nimport { serve } from \"@novu\u002Fframework\u002Fnext\";\n\nexport const { GET, POST, OPTIONS } = serve({\n  client: new NovuFrameworkClient({\n    secretKey: process.env.NOVU_SECRET_KEY,\n    strictAuthentication: false, \u002F\u002F disables HMAC — only for local dev\n  }),\n  workflows: [\u002F* … *\u002F],\n});\n```\n\nEnvironment variables read by the Client:\n- `NOVU_SECRET_KEY` — your secret key\n- `NOVU_API_URL` — defaults to `https:\u002F\u002Fapi.novu.co` (use `https:\u002F\u002Feu.api.novu.co` for EU)\n\n## Common Pitfalls\n\n1. **Bridge URL must be publicly reachable** — `localhost` won't work for Novu Cloud. Use the Studio tunnel locally; deploy publicly for production.\n2. **`workflowId` is the trigger identifier** — same id you'll pass to `novu.trigger({ workflowId })`. Use kebab-case and keep it stable.\n3. **Step `id`s must be unique within a workflow** — duplicates throw at registration.\n4. **`as const` on JSON Schema** — without it, TS infers `string` instead of literal types and `payload` becomes `unknown`.\n5. **Only one `step.digest` per workflow** — chain a second workflow via `step.custom` for two-stage digest patterns.\n6. **Digest \u002F delay results from one trigger don't influence other triggers** — they're per workflow run.\n7. **Custom step results aren't usable in step controls** — only in subsequent step `resolver`, `providers`, or `skip` callbacks.\n8. **Sync after every workflow change** — Novu Cloud needs to know about new\u002Frenamed workflows and updated control schemas. Add `npx novu sync` to your CI\u002FCD.\n9. **HMAC fails locally if `NODE_ENV !== \"development\"`** — set it to `development` for the Studio to reach your bridge, or disable strict auth in your `Client`.\n10. **Don't store the `secretKey` in the client bundle** — it's server-only. Keep workflows + bridge route inside server code, not in any `\"use client\"` module.\n11. **Provider override `_passthrough` is unvalidated** — typos won't error at compile time. Use known typed provider keys whenever possible.\n12. **Changing a delay\u002Fdigest step's content does not affect already-scheduled events** — content is captured at the time of the original trigger.\n13. **Workflow handlers must be deterministic across retries** — Novu re-invokes the bridge to resolve step content. Avoid side-effects outside `step.custom` (custom is the only step whose result is durably persisted).\n14. **`@novu\u002Fframework` requires Node.js ≥ 20**.\n\n## Code Style Tips\n\n- One file per workflow under `src\u002Fnovu\u002Fworkflows\u002F\u003Cworkflow-id>.ts`, re-exported from a barrel `src\u002Fnovu\u002Fworkflows\u002Findex.ts`.\n- Prefer **Zod** schemas — best autocomplete and inference. Use JSON Schema only when you need features Zod doesn't expose (`oneOf`, `if\u002Fthen\u002Felse`, `$ref`).\n- Co-locate React Email templates next to the workflow that uses them (`src\u002Fnovu\u002Fworkflows\u002Fwelcome\u002Ftemplate.tsx`).\n- Wrap shared `step.custom` logic into helpers (`fetchUser(payload.userId)`) for reuse.\n- For NestJS, use `NovuModule.registerAsync` with a `NotificationService` so workflow definitions can inject services.\n\n## References\n\n- [Bridge Endpoint Setup](.\u002Freferences\u002Fbridge-endpoint.md) — every framework wrapper, custom `serve`, NestJS DI\n- [Workflow & Step API](.\u002Freferences\u002Fworkflow-and-steps.md) — full options, all step types, conditional logic patterns\n- [Schema Validation](.\u002Freferences\u002Fschema-validation.md) — Zod, JSON Schema, Class Validator deep dive\n- [Email Templates](.\u002Freferences\u002Femail-templates.md) — React, Vue, Svelte Email integrations\n- [Translations](.\u002Freferences\u002Ftranslations.md) — i18next-based localized workflows\n- [Local Studio & CLI](.\u002Freferences\u002Fstudio-and-cli.md) — every flag, tunnel modes, headless mode\n- [Deployment](.\u002Freferences\u002Fdeployment.md) — `npx novu sync`, GitHub Action, GitOps recipe, EU region\n- [Production & Security](.\u002Freferences\u002Fsecurity.md) — HMAC, public bridge requirements, Vercel preview bypass\n- [Examples Cookbook](.\u002Freferences\u002Fexamples.md) — multi-step onboarding, digest, delay-then-skip, LLM-powered digest\n",{"data":36,"body":43},{"name":4,"description":6,"inputs":37},[38],{"name":39,"description":40,"required":41,"type":42},"NOVU_SECRET_KEY","Server-side API key from https:\u002F\u002Fdashboard.novu.co\u002Fapi-keys. Used by @novu\u002Fframework and the Bridge Endpoint.",true,"secret",{"type":44,"children":45},"root",[46,55,78,106,113,206,218,224,286,298,304,311,363,375,381,421,449,455,1308,1314,1327,1333,1381,1394,1400,1448,1490,1594,1600,1825,1831,1843,1914,1920,1925,1992,2269,2275,2519,2525,2949,2976,2982,3428,3434,3443,3448,3582,3636,3645,3650,4020,4070,4080,4085,4667,4672,5055,5082,5091,5096,5816,5850,5856,5984,5992,5997,6117,6128,6148,6485,6502,6512,6533,6713,6719,6731,6737,7011,7017,7372,7388,7394,7656,7693,7699,7704,8061,8067,8082,8134,8147,8153,8261,8267,8284,8538,8596,8601,8613,8643,8656,8662,8852,8858,9001,9007,9312,9318,9623,9647,9653,9844,9850,10023,10029,10179,10184,10529,10535,10684,10690,10954,10969,10975,10980,11011,11023,11029,11287,11328,11333,11377,11383,11396,11732,11744,11969,11983,11989,11994,12000,12026,12419,12562,12578,12584,12597,13253,13269,13274,13279,13449,13474,13480,13486,13491,13567,13573,13794,13800,13852,13857,13863,13968,13974,13979,14283,14288,14328,14334,14622,14628,14736,14742,14850],{"type":47,"tag":48,"props":49,"children":51},"element","h1",{"id":50},"framework-integration",[52],{"type":53,"value":54},"text","Framework Integration",{"type":47,"tag":56,"props":57,"children":58},"p",{},[59,61,68,70,76],{"type":53,"value":60},"Use ",{"type":47,"tag":62,"props":63,"children":65},"code",{"className":64},[],[66],{"type":53,"value":67},"@novu\u002Fframework",{"type":53,"value":69}," to build notification workflows ",{"type":47,"tag":71,"props":72,"children":73},"strong",{},[74],{"type":53,"value":75},"in code",{"type":53,"value":77},", alongside your application source. Workflows live in your repo, content is rendered using libraries you already use (React Email, Vue Email, Svelte Email), and a single HTTP endpoint (the Bridge) lets Novu Cloud execute them with just-in-time data from your services.",{"type":47,"tag":79,"props":80,"children":81},"blockquote",{},[82],{"type":47,"tag":56,"props":83,"children":84},{},[85,87,91,93,104],{"type":53,"value":86},"Use this skill when building workflows ",{"type":47,"tag":71,"props":88,"children":89},{},[90],{"type":53,"value":75},{"type":53,"value":92},". For workflows authored in the Novu Dashboard, just trigger them via ",{"type":47,"tag":94,"props":95,"children":97},"a",{"href":96},"..\u002Ftrigger-notification",[98],{"type":47,"tag":62,"props":99,"children":101},{"className":100},[],[102],{"type":53,"value":103},"trigger-notification",{"type":53,"value":105}," — no Framework needed.",{"type":47,"tag":107,"props":108,"children":110},"h2",{"id":109},"when-to-use-the-framework",[111],{"type":53,"value":112},"When to Use the Framework",{"type":47,"tag":114,"props":115,"children":116},"table",{},[117,136],{"type":47,"tag":118,"props":119,"children":120},"thead",{},[121],{"type":47,"tag":122,"props":123,"children":124},"tr",{},[125,131],{"type":47,"tag":126,"props":127,"children":128},"th",{},[129],{"type":53,"value":130},"Use Framework",{"type":47,"tag":126,"props":132,"children":133},{},[134],{"type":53,"value":135},"Use Dashboard Workflows",{"type":47,"tag":137,"props":138,"children":139},"tbody",{},[140,154,167,180,193],{"type":47,"tag":122,"props":141,"children":142},{},[143,149],{"type":47,"tag":144,"props":145,"children":146},"td",{},[147],{"type":53,"value":148},"Workflows must live in source control \u002F GitOps",{"type":47,"tag":144,"props":150,"children":151},{},[152],{"type":53,"value":153},"Non-technical peers own all the content",{"type":47,"tag":122,"props":155,"children":156},{},[157,162],{"type":47,"tag":144,"props":158,"children":159},{},[160],{"type":53,"value":161},"Need just-in-time data from your DB \u002F APIs",{"type":47,"tag":144,"props":163,"children":164},{},[165],{"type":53,"value":166},"All data fits in the trigger payload",{"type":47,"tag":122,"props":168,"children":169},{},[170,175],{"type":47,"tag":144,"props":171,"children":172},{},[173],{"type":53,"value":174},"Render emails with React\u002FVue\u002FSvelte Email",{"type":47,"tag":144,"props":176,"children":177},{},[178],{"type":53,"value":179},"Block editor is enough",{"type":47,"tag":122,"props":181,"children":182},{},[183,188],{"type":47,"tag":144,"props":184,"children":185},{},[186],{"type":53,"value":187},"Execute custom code (LLMs, third-party APIs)",{"type":47,"tag":144,"props":189,"children":190},{},[191],{"type":53,"value":192},"Pure send-only flows",{"type":47,"tag":122,"props":194,"children":195},{},[196,201],{"type":47,"tag":144,"props":197,"children":198},{},[199],{"type":53,"value":200},"Need typed payload + step controls",{"type":47,"tag":144,"props":202,"children":203},{},[204],{"type":53,"value":205},"Quick prototype",{"type":47,"tag":56,"props":207,"children":208},{},[209,211,216],{"type":53,"value":210},"The two approaches ",{"type":47,"tag":71,"props":212,"children":213},{},[214],{"type":53,"value":215},"coexist",{"type":53,"value":217}," — a single environment can have both code-defined and dashboard-defined workflows.",{"type":47,"tag":107,"props":219,"children":221},{"id":220},"how-it-works",[222],{"type":53,"value":223},"How It Works",{"type":47,"tag":225,"props":226,"children":227},"ol",{},[228,249,268,281],{"type":47,"tag":229,"props":230,"children":231},"li",{},[232,234,240,242,247],{"type":53,"value":233},"You define workflows in code with ",{"type":47,"tag":62,"props":235,"children":237},{"className":236},[],[238],{"type":53,"value":239},"workflow(...)",{"type":53,"value":241}," from ",{"type":47,"tag":62,"props":243,"children":245},{"className":244},[],[246],{"type":53,"value":67},{"type":53,"value":248},".",{"type":47,"tag":229,"props":250,"children":251},{},[252,254,260,262,267],{"type":53,"value":253},"You expose a single ",{"type":47,"tag":62,"props":255,"children":257},{"className":256},[],[258],{"type":53,"value":259},"\u002Fapi\u002Fnovu",{"type":53,"value":261}," HTTP route in your app — the ",{"type":47,"tag":71,"props":263,"children":264},{},[265],{"type":53,"value":266},"Bridge Endpoint",{"type":53,"value":248},{"type":47,"tag":229,"props":269,"children":270},{},[271,273,279],{"type":53,"value":272},"You sync the bridge URL to Novu Cloud (via ",{"type":47,"tag":62,"props":274,"children":276},{"className":275},[],[277],{"type":53,"value":278},"npx novu sync",{"type":53,"value":280}," or GitHub Action).",{"type":47,"tag":229,"props":282,"children":283},{},[284],{"type":53,"value":285},"Novu Cloud calls your bridge over an authenticated tunnel during workflow execution to fetch step content with the latest data.",{"type":47,"tag":287,"props":288,"children":292},"pre",{"className":289,"code":291,"language":53},[290],"language-text","Trigger ──► Novu Cloud Worker ──► Your Bridge (\u002Fapi\u002Fnovu) ──► Provider (SendGrid, FCM, …)\n",[293],{"type":47,"tag":62,"props":294,"children":296},{"__ignoreMap":295},"",[297],{"type":53,"value":291},{"type":47,"tag":107,"props":299,"children":301},{"id":300},"quick-start",[302],{"type":53,"value":303},"Quick Start",{"type":47,"tag":305,"props":306,"children":308},"h3",{"id":307},"_1-bootstrap-a-project",[309],{"type":53,"value":310},"1. Bootstrap a project",{"type":47,"tag":287,"props":312,"children":316},{"className":313,"code":314,"language":315,"meta":295,"style":295},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx novu init --secret-key=\u003CYOUR_NOVU_SECRET_KEY>\n","bash",[317],{"type":47,"tag":62,"props":318,"children":319},{"__ignoreMap":295},[320],{"type":47,"tag":321,"props":322,"children":324},"span",{"class":323,"line":23},"line",[325,331,337,342,347,353,358],{"type":47,"tag":321,"props":326,"children":328},{"style":327},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[329],{"type":53,"value":330},"npx",{"type":47,"tag":321,"props":332,"children":334},{"style":333},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[335],{"type":53,"value":336}," novu",{"type":47,"tag":321,"props":338,"children":339},{"style":333},[340],{"type":53,"value":341}," init",{"type":47,"tag":321,"props":343,"children":344},{"style":333},[345],{"type":53,"value":346}," --secret-key=",{"type":47,"tag":321,"props":348,"children":350},{"style":349},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[351],{"type":53,"value":352},"\u003C",{"type":47,"tag":321,"props":354,"children":355},{"style":333},[356],{"type":53,"value":357},"YOUR_NOVU_SECRET_KEY",{"type":47,"tag":321,"props":359,"children":360},{"style":349},[361],{"type":53,"value":362},">\n",{"type":47,"tag":56,"props":364,"children":365},{},[366,368,373],{"type":53,"value":367},"This creates a sample bridge app with a workflow, env file, and a working ",{"type":47,"tag":62,"props":369,"children":371},{"className":370},[],[372],{"type":53,"value":259},{"type":53,"value":374}," route.",{"type":47,"tag":305,"props":376,"children":378},{"id":377},"_2-or-add-to-an-existing-app",[379],{"type":53,"value":380},"2. Or add to an existing app",{"type":47,"tag":287,"props":382,"children":384},{"className":313,"code":383,"language":315,"meta":295,"style":295},"npm install @novu\u002Fframework zod @react-email\u002Fcomponents react-email\n",[385],{"type":47,"tag":62,"props":386,"children":387},{"__ignoreMap":295},[388],{"type":47,"tag":321,"props":389,"children":390},{"class":323,"line":23},[391,396,401,406,411,416],{"type":47,"tag":321,"props":392,"children":393},{"style":327},[394],{"type":53,"value":395},"npm",{"type":47,"tag":321,"props":397,"children":398},{"style":333},[399],{"type":53,"value":400}," install",{"type":47,"tag":321,"props":402,"children":403},{"style":333},[404],{"type":53,"value":405}," @novu\u002Fframework",{"type":47,"tag":321,"props":407,"children":408},{"style":333},[409],{"type":53,"value":410}," zod",{"type":47,"tag":321,"props":412,"children":413},{"style":333},[414],{"type":53,"value":415}," @react-email\u002Fcomponents",{"type":47,"tag":321,"props":417,"children":418},{"style":333},[419],{"type":53,"value":420}," react-email\n",{"type":47,"tag":287,"props":422,"children":424},{"className":313,"code":423,"language":315,"meta":295,"style":295},"NOVU_SECRET_KEY=\u003CYOUR_NOVU_SECRET_KEY>\n",[425],{"type":47,"tag":62,"props":426,"children":427},{"__ignoreMap":295},[428],{"type":47,"tag":321,"props":429,"children":430},{"class":323,"line":23},[431,436,441,445],{"type":47,"tag":321,"props":432,"children":434},{"style":433},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[435],{"type":53,"value":39},{"type":47,"tag":321,"props":437,"children":438},{"style":349},[439],{"type":53,"value":440},"=\u003C",{"type":47,"tag":321,"props":442,"children":443},{"style":333},[444],{"type":53,"value":357},{"type":47,"tag":321,"props":446,"children":447},{"style":349},[448],{"type":53,"value":362},{"type":47,"tag":305,"props":450,"children":452},{"id":451},"_3-define-a-workflow",[453],{"type":53,"value":454},"3. Define a workflow",{"type":47,"tag":287,"props":456,"children":459},{"className":457,"code":458,"language":19,"meta":295,"style":295},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { workflow } from \"@novu\u002Fframework\";\nimport { z } from \"zod\";\n\nexport const welcomeWorkflow = workflow(\n  \"welcome-email\",\n  async ({ step, payload, subscriber }) => {\n    await step.email(\"send-email\", async (controls) => {\n      return {\n        subject: controls.subject,\n        body: `Welcome ${subscriber.firstName ?? payload.userName}!`,\n      };\n    }, {\n      controlSchema: z.object({\n        subject: z.string().default(\"Welcome to {{payload.appName}}\"),\n      }),\n    });\n  },\n  {\n    payloadSchema: z.object({\n      userName: z.string(),\n      appName: z.string().default(\"Acme\"),\n    }),\n    name: \"Welcome Email\",\n    description: \"Sent when a new user signs up\",\n    tags: [\"onboarding\"],\n  }\n);\n",[460],{"type":47,"tag":62,"props":461,"children":462},{"__ignoreMap":295},[463,511,552,561,596,619,673,746,759,791,870,879,892,927,991,1008,1025,1034,1043,1076,1109,1171,1187,1217,1247,1287,1296],{"type":47,"tag":321,"props":464,"children":465},{"class":323,"line":23},[466,472,477,482,487,492,497,501,506],{"type":47,"tag":321,"props":467,"children":469},{"style":468},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[470],{"type":53,"value":471},"import",{"type":47,"tag":321,"props":473,"children":474},{"style":349},[475],{"type":53,"value":476}," {",{"type":47,"tag":321,"props":478,"children":479},{"style":433},[480],{"type":53,"value":481}," workflow",{"type":47,"tag":321,"props":483,"children":484},{"style":349},[485],{"type":53,"value":486}," }",{"type":47,"tag":321,"props":488,"children":489},{"style":468},[490],{"type":53,"value":491}," from",{"type":47,"tag":321,"props":493,"children":494},{"style":349},[495],{"type":53,"value":496}," \"",{"type":47,"tag":321,"props":498,"children":499},{"style":333},[500],{"type":53,"value":67},{"type":47,"tag":321,"props":502,"children":503},{"style":349},[504],{"type":53,"value":505},"\"",{"type":47,"tag":321,"props":507,"children":508},{"style":349},[509],{"type":53,"value":510},";\n",{"type":47,"tag":321,"props":512,"children":513},{"class":323,"line":27},[514,518,522,527,531,535,539,544,548],{"type":47,"tag":321,"props":515,"children":516},{"style":468},[517],{"type":53,"value":471},{"type":47,"tag":321,"props":519,"children":520},{"style":349},[521],{"type":53,"value":476},{"type":47,"tag":321,"props":523,"children":524},{"style":433},[525],{"type":53,"value":526}," z",{"type":47,"tag":321,"props":528,"children":529},{"style":349},[530],{"type":53,"value":486},{"type":47,"tag":321,"props":532,"children":533},{"style":468},[534],{"type":53,"value":491},{"type":47,"tag":321,"props":536,"children":537},{"style":349},[538],{"type":53,"value":496},{"type":47,"tag":321,"props":540,"children":541},{"style":333},[542],{"type":53,"value":543},"zod",{"type":47,"tag":321,"props":545,"children":546},{"style":349},[547],{"type":53,"value":505},{"type":47,"tag":321,"props":549,"children":550},{"style":349},[551],{"type":53,"value":510},{"type":47,"tag":321,"props":553,"children":555},{"class":323,"line":554},3,[556],{"type":47,"tag":321,"props":557,"children":558},{"emptyLinePlaceholder":41},[559],{"type":53,"value":560},"\n",{"type":47,"tag":321,"props":562,"children":564},{"class":323,"line":563},4,[565,570,576,581,586,591],{"type":47,"tag":321,"props":566,"children":567},{"style":468},[568],{"type":53,"value":569},"export",{"type":47,"tag":321,"props":571,"children":573},{"style":572},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[574],{"type":53,"value":575}," const",{"type":47,"tag":321,"props":577,"children":578},{"style":433},[579],{"type":53,"value":580}," welcomeWorkflow ",{"type":47,"tag":321,"props":582,"children":583},{"style":349},[584],{"type":53,"value":585},"=",{"type":47,"tag":321,"props":587,"children":589},{"style":588},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[590],{"type":53,"value":481},{"type":47,"tag":321,"props":592,"children":593},{"style":433},[594],{"type":53,"value":595},"(\n",{"type":47,"tag":321,"props":597,"children":599},{"class":323,"line":598},5,[600,605,610,614],{"type":47,"tag":321,"props":601,"children":602},{"style":349},[603],{"type":53,"value":604},"  \"",{"type":47,"tag":321,"props":606,"children":607},{"style":333},[608],{"type":53,"value":609},"welcome-email",{"type":47,"tag":321,"props":611,"children":612},{"style":349},[613],{"type":53,"value":505},{"type":47,"tag":321,"props":615,"children":616},{"style":349},[617],{"type":53,"value":618},",\n",{"type":47,"tag":321,"props":620,"children":622},{"class":323,"line":621},6,[623,628,633,639,644,649,653,658,663,668],{"type":47,"tag":321,"props":624,"children":625},{"style":572},[626],{"type":53,"value":627},"  async",{"type":47,"tag":321,"props":629,"children":630},{"style":349},[631],{"type":53,"value":632}," ({",{"type":47,"tag":321,"props":634,"children":636},{"style":635},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[637],{"type":53,"value":638}," step",{"type":47,"tag":321,"props":640,"children":641},{"style":349},[642],{"type":53,"value":643},",",{"type":47,"tag":321,"props":645,"children":646},{"style":635},[647],{"type":53,"value":648}," payload",{"type":47,"tag":321,"props":650,"children":651},{"style":349},[652],{"type":53,"value":643},{"type":47,"tag":321,"props":654,"children":655},{"style":635},[656],{"type":53,"value":657}," subscriber",{"type":47,"tag":321,"props":659,"children":660},{"style":349},[661],{"type":53,"value":662}," })",{"type":47,"tag":321,"props":664,"children":665},{"style":572},[666],{"type":53,"value":667}," =>",{"type":47,"tag":321,"props":669,"children":670},{"style":349},[671],{"type":53,"value":672}," {\n",{"type":47,"tag":321,"props":674,"children":676},{"class":323,"line":675},7,[677,682,686,690,695,701,705,710,714,718,723,728,733,738,742],{"type":47,"tag":321,"props":678,"children":679},{"style":468},[680],{"type":53,"value":681},"    await",{"type":47,"tag":321,"props":683,"children":684},{"style":433},[685],{"type":53,"value":638},{"type":47,"tag":321,"props":687,"children":688},{"style":349},[689],{"type":53,"value":248},{"type":47,"tag":321,"props":691,"children":692},{"style":588},[693],{"type":53,"value":694},"email",{"type":47,"tag":321,"props":696,"children":698},{"style":697},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[699],{"type":53,"value":700},"(",{"type":47,"tag":321,"props":702,"children":703},{"style":349},[704],{"type":53,"value":505},{"type":47,"tag":321,"props":706,"children":707},{"style":333},[708],{"type":53,"value":709},"send-email",{"type":47,"tag":321,"props":711,"children":712},{"style":349},[713],{"type":53,"value":505},{"type":47,"tag":321,"props":715,"children":716},{"style":349},[717],{"type":53,"value":643},{"type":47,"tag":321,"props":719,"children":720},{"style":572},[721],{"type":53,"value":722}," async",{"type":47,"tag":321,"props":724,"children":725},{"style":349},[726],{"type":53,"value":727}," (",{"type":47,"tag":321,"props":729,"children":730},{"style":635},[731],{"type":53,"value":732},"controls",{"type":47,"tag":321,"props":734,"children":735},{"style":349},[736],{"type":53,"value":737},")",{"type":47,"tag":321,"props":739,"children":740},{"style":572},[741],{"type":53,"value":667},{"type":47,"tag":321,"props":743,"children":744},{"style":349},[745],{"type":53,"value":672},{"type":47,"tag":321,"props":747,"children":749},{"class":323,"line":748},8,[750,755],{"type":47,"tag":321,"props":751,"children":752},{"style":468},[753],{"type":53,"value":754},"      return",{"type":47,"tag":321,"props":756,"children":757},{"style":349},[758],{"type":53,"value":672},{"type":47,"tag":321,"props":760,"children":762},{"class":323,"line":761},9,[763,768,773,778,782,787],{"type":47,"tag":321,"props":764,"children":765},{"style":697},[766],{"type":53,"value":767},"        subject",{"type":47,"tag":321,"props":769,"children":770},{"style":349},[771],{"type":53,"value":772},":",{"type":47,"tag":321,"props":774,"children":775},{"style":433},[776],{"type":53,"value":777}," controls",{"type":47,"tag":321,"props":779,"children":780},{"style":349},[781],{"type":53,"value":248},{"type":47,"tag":321,"props":783,"children":784},{"style":433},[785],{"type":53,"value":786},"subject",{"type":47,"tag":321,"props":788,"children":789},{"style":349},[790],{"type":53,"value":618},{"type":47,"tag":321,"props":792,"children":794},{"class":323,"line":793},10,[795,800,804,809,814,819,824,828,833,838,842,846,851,856,861,866],{"type":47,"tag":321,"props":796,"children":797},{"style":697},[798],{"type":53,"value":799},"        body",{"type":47,"tag":321,"props":801,"children":802},{"style":349},[803],{"type":53,"value":772},{"type":47,"tag":321,"props":805,"children":806},{"style":349},[807],{"type":53,"value":808}," `",{"type":47,"tag":321,"props":810,"children":811},{"style":333},[812],{"type":53,"value":813},"Welcome ",{"type":47,"tag":321,"props":815,"children":816},{"style":349},[817],{"type":53,"value":818},"${",{"type":47,"tag":321,"props":820,"children":821},{"style":433},[822],{"type":53,"value":823},"subscriber",{"type":47,"tag":321,"props":825,"children":826},{"style":349},[827],{"type":53,"value":248},{"type":47,"tag":321,"props":829,"children":830},{"style":433},[831],{"type":53,"value":832},"firstName ",{"type":47,"tag":321,"props":834,"children":835},{"style":349},[836],{"type":53,"value":837},"??",{"type":47,"tag":321,"props":839,"children":840},{"style":433},[841],{"type":53,"value":648},{"type":47,"tag":321,"props":843,"children":844},{"style":349},[845],{"type":53,"value":248},{"type":47,"tag":321,"props":847,"children":848},{"style":433},[849],{"type":53,"value":850},"userName",{"type":47,"tag":321,"props":852,"children":853},{"style":349},[854],{"type":53,"value":855},"}",{"type":47,"tag":321,"props":857,"children":858},{"style":333},[859],{"type":53,"value":860},"!",{"type":47,"tag":321,"props":862,"children":863},{"style":349},[864],{"type":53,"value":865},"`",{"type":47,"tag":321,"props":867,"children":868},{"style":349},[869],{"type":53,"value":618},{"type":47,"tag":321,"props":871,"children":873},{"class":323,"line":872},11,[874],{"type":47,"tag":321,"props":875,"children":876},{"style":349},[877],{"type":53,"value":878},"      };\n",{"type":47,"tag":321,"props":880,"children":882},{"class":323,"line":881},12,[883,888],{"type":47,"tag":321,"props":884,"children":885},{"style":349},[886],{"type":53,"value":887},"    },",{"type":47,"tag":321,"props":889,"children":890},{"style":349},[891],{"type":53,"value":672},{"type":47,"tag":321,"props":893,"children":895},{"class":323,"line":894},13,[896,901,905,909,913,918,922],{"type":47,"tag":321,"props":897,"children":898},{"style":697},[899],{"type":53,"value":900},"      controlSchema",{"type":47,"tag":321,"props":902,"children":903},{"style":349},[904],{"type":53,"value":772},{"type":47,"tag":321,"props":906,"children":907},{"style":433},[908],{"type":53,"value":526},{"type":47,"tag":321,"props":910,"children":911},{"style":349},[912],{"type":53,"value":248},{"type":47,"tag":321,"props":914,"children":915},{"style":588},[916],{"type":53,"value":917},"object",{"type":47,"tag":321,"props":919,"children":920},{"style":697},[921],{"type":53,"value":700},{"type":47,"tag":321,"props":923,"children":924},{"style":349},[925],{"type":53,"value":926},"{\n",{"type":47,"tag":321,"props":928,"children":930},{"class":323,"line":929},14,[931,935,939,943,947,952,957,961,966,970,974,979,983,987],{"type":47,"tag":321,"props":932,"children":933},{"style":697},[934],{"type":53,"value":767},{"type":47,"tag":321,"props":936,"children":937},{"style":349},[938],{"type":53,"value":772},{"type":47,"tag":321,"props":940,"children":941},{"style":433},[942],{"type":53,"value":526},{"type":47,"tag":321,"props":944,"children":945},{"style":349},[946],{"type":53,"value":248},{"type":47,"tag":321,"props":948,"children":949},{"style":588},[950],{"type":53,"value":951},"string",{"type":47,"tag":321,"props":953,"children":954},{"style":697},[955],{"type":53,"value":956},"()",{"type":47,"tag":321,"props":958,"children":959},{"style":349},[960],{"type":53,"value":248},{"type":47,"tag":321,"props":962,"children":963},{"style":588},[964],{"type":53,"value":965},"default",{"type":47,"tag":321,"props":967,"children":968},{"style":697},[969],{"type":53,"value":700},{"type":47,"tag":321,"props":971,"children":972},{"style":349},[973],{"type":53,"value":505},{"type":47,"tag":321,"props":975,"children":976},{"style":333},[977],{"type":53,"value":978},"Welcome to {{payload.appName}}",{"type":47,"tag":321,"props":980,"children":981},{"style":349},[982],{"type":53,"value":505},{"type":47,"tag":321,"props":984,"children":985},{"style":697},[986],{"type":53,"value":737},{"type":47,"tag":321,"props":988,"children":989},{"style":349},[990],{"type":53,"value":618},{"type":47,"tag":321,"props":992,"children":994},{"class":323,"line":993},15,[995,1000,1004],{"type":47,"tag":321,"props":996,"children":997},{"style":349},[998],{"type":53,"value":999},"      }",{"type":47,"tag":321,"props":1001,"children":1002},{"style":697},[1003],{"type":53,"value":737},{"type":47,"tag":321,"props":1005,"children":1006},{"style":349},[1007],{"type":53,"value":618},{"type":47,"tag":321,"props":1009,"children":1011},{"class":323,"line":1010},16,[1012,1017,1021],{"type":47,"tag":321,"props":1013,"children":1014},{"style":349},[1015],{"type":53,"value":1016},"    }",{"type":47,"tag":321,"props":1018,"children":1019},{"style":697},[1020],{"type":53,"value":737},{"type":47,"tag":321,"props":1022,"children":1023},{"style":349},[1024],{"type":53,"value":510},{"type":47,"tag":321,"props":1026,"children":1028},{"class":323,"line":1027},17,[1029],{"type":47,"tag":321,"props":1030,"children":1031},{"style":349},[1032],{"type":53,"value":1033},"  },\n",{"type":47,"tag":321,"props":1035,"children":1037},{"class":323,"line":1036},18,[1038],{"type":47,"tag":321,"props":1039,"children":1040},{"style":349},[1041],{"type":53,"value":1042},"  {\n",{"type":47,"tag":321,"props":1044,"children":1046},{"class":323,"line":1045},19,[1047,1052,1056,1060,1064,1068,1072],{"type":47,"tag":321,"props":1048,"children":1049},{"style":697},[1050],{"type":53,"value":1051},"    payloadSchema",{"type":47,"tag":321,"props":1053,"children":1054},{"style":349},[1055],{"type":53,"value":772},{"type":47,"tag":321,"props":1057,"children":1058},{"style":433},[1059],{"type":53,"value":526},{"type":47,"tag":321,"props":1061,"children":1062},{"style":349},[1063],{"type":53,"value":248},{"type":47,"tag":321,"props":1065,"children":1066},{"style":588},[1067],{"type":53,"value":917},{"type":47,"tag":321,"props":1069,"children":1070},{"style":433},[1071],{"type":53,"value":700},{"type":47,"tag":321,"props":1073,"children":1074},{"style":349},[1075],{"type":53,"value":926},{"type":47,"tag":321,"props":1077,"children":1079},{"class":323,"line":1078},20,[1080,1085,1089,1093,1097,1101,1105],{"type":47,"tag":321,"props":1081,"children":1082},{"style":697},[1083],{"type":53,"value":1084},"      userName",{"type":47,"tag":321,"props":1086,"children":1087},{"style":349},[1088],{"type":53,"value":772},{"type":47,"tag":321,"props":1090,"children":1091},{"style":433},[1092],{"type":53,"value":526},{"type":47,"tag":321,"props":1094,"children":1095},{"style":349},[1096],{"type":53,"value":248},{"type":47,"tag":321,"props":1098,"children":1099},{"style":588},[1100],{"type":53,"value":951},{"type":47,"tag":321,"props":1102,"children":1103},{"style":433},[1104],{"type":53,"value":956},{"type":47,"tag":321,"props":1106,"children":1107},{"style":349},[1108],{"type":53,"value":618},{"type":47,"tag":321,"props":1110,"children":1112},{"class":323,"line":1111},21,[1113,1118,1122,1126,1130,1134,1138,1142,1146,1150,1154,1159,1163,1167],{"type":47,"tag":321,"props":1114,"children":1115},{"style":697},[1116],{"type":53,"value":1117},"      appName",{"type":47,"tag":321,"props":1119,"children":1120},{"style":349},[1121],{"type":53,"value":772},{"type":47,"tag":321,"props":1123,"children":1124},{"style":433},[1125],{"type":53,"value":526},{"type":47,"tag":321,"props":1127,"children":1128},{"style":349},[1129],{"type":53,"value":248},{"type":47,"tag":321,"props":1131,"children":1132},{"style":588},[1133],{"type":53,"value":951},{"type":47,"tag":321,"props":1135,"children":1136},{"style":433},[1137],{"type":53,"value":956},{"type":47,"tag":321,"props":1139,"children":1140},{"style":349},[1141],{"type":53,"value":248},{"type":47,"tag":321,"props":1143,"children":1144},{"style":588},[1145],{"type":53,"value":965},{"type":47,"tag":321,"props":1147,"children":1148},{"style":433},[1149],{"type":53,"value":700},{"type":47,"tag":321,"props":1151,"children":1152},{"style":349},[1153],{"type":53,"value":505},{"type":47,"tag":321,"props":1155,"children":1156},{"style":333},[1157],{"type":53,"value":1158},"Acme",{"type":47,"tag":321,"props":1160,"children":1161},{"style":349},[1162],{"type":53,"value":505},{"type":47,"tag":321,"props":1164,"children":1165},{"style":433},[1166],{"type":53,"value":737},{"type":47,"tag":321,"props":1168,"children":1169},{"style":349},[1170],{"type":53,"value":618},{"type":47,"tag":321,"props":1172,"children":1174},{"class":323,"line":1173},22,[1175,1179,1183],{"type":47,"tag":321,"props":1176,"children":1177},{"style":349},[1178],{"type":53,"value":1016},{"type":47,"tag":321,"props":1180,"children":1181},{"style":433},[1182],{"type":53,"value":737},{"type":47,"tag":321,"props":1184,"children":1185},{"style":349},[1186],{"type":53,"value":618},{"type":47,"tag":321,"props":1188,"children":1190},{"class":323,"line":1189},23,[1191,1196,1200,1204,1209,1213],{"type":47,"tag":321,"props":1192,"children":1193},{"style":697},[1194],{"type":53,"value":1195},"    name",{"type":47,"tag":321,"props":1197,"children":1198},{"style":349},[1199],{"type":53,"value":772},{"type":47,"tag":321,"props":1201,"children":1202},{"style":349},[1203],{"type":53,"value":496},{"type":47,"tag":321,"props":1205,"children":1206},{"style":333},[1207],{"type":53,"value":1208},"Welcome Email",{"type":47,"tag":321,"props":1210,"children":1211},{"style":349},[1212],{"type":53,"value":505},{"type":47,"tag":321,"props":1214,"children":1215},{"style":349},[1216],{"type":53,"value":618},{"type":47,"tag":321,"props":1218,"children":1220},{"class":323,"line":1219},24,[1221,1226,1230,1234,1239,1243],{"type":47,"tag":321,"props":1222,"children":1223},{"style":697},[1224],{"type":53,"value":1225},"    description",{"type":47,"tag":321,"props":1227,"children":1228},{"style":349},[1229],{"type":53,"value":772},{"type":47,"tag":321,"props":1231,"children":1232},{"style":349},[1233],{"type":53,"value":496},{"type":47,"tag":321,"props":1235,"children":1236},{"style":333},[1237],{"type":53,"value":1238},"Sent when a new user signs up",{"type":47,"tag":321,"props":1240,"children":1241},{"style":349},[1242],{"type":53,"value":505},{"type":47,"tag":321,"props":1244,"children":1245},{"style":349},[1246],{"type":53,"value":618},{"type":47,"tag":321,"props":1248,"children":1250},{"class":323,"line":1249},25,[1251,1256,1260,1265,1269,1274,1278,1283],{"type":47,"tag":321,"props":1252,"children":1253},{"style":697},[1254],{"type":53,"value":1255},"    tags",{"type":47,"tag":321,"props":1257,"children":1258},{"style":349},[1259],{"type":53,"value":772},{"type":47,"tag":321,"props":1261,"children":1262},{"style":433},[1263],{"type":53,"value":1264}," [",{"type":47,"tag":321,"props":1266,"children":1267},{"style":349},[1268],{"type":53,"value":505},{"type":47,"tag":321,"props":1270,"children":1271},{"style":333},[1272],{"type":53,"value":1273},"onboarding",{"type":47,"tag":321,"props":1275,"children":1276},{"style":349},[1277],{"type":53,"value":505},{"type":47,"tag":321,"props":1279,"children":1280},{"style":433},[1281],{"type":53,"value":1282},"]",{"type":47,"tag":321,"props":1284,"children":1285},{"style":349},[1286],{"type":53,"value":618},{"type":47,"tag":321,"props":1288,"children":1290},{"class":323,"line":1289},26,[1291],{"type":47,"tag":321,"props":1292,"children":1293},{"style":349},[1294],{"type":53,"value":1295},"  }\n",{"type":47,"tag":321,"props":1297,"children":1299},{"class":323,"line":1298},27,[1300,1304],{"type":47,"tag":321,"props":1301,"children":1302},{"style":433},[1303],{"type":53,"value":737},{"type":47,"tag":321,"props":1305,"children":1306},{"style":349},[1307],{"type":53,"value":510},{"type":47,"tag":305,"props":1309,"children":1311},{"id":1310},"_4-mount-the-bridge-endpoint",[1312],{"type":53,"value":1313},"4. Mount the Bridge Endpoint",{"type":47,"tag":56,"props":1315,"children":1316},{},[1317,1319,1325],{"type":53,"value":1318},"Pick the wrapper that matches your framework — see ",{"type":47,"tag":94,"props":1320,"children":1322},{"href":1321},"#bridge-endpoint-setup",[1323],{"type":53,"value":1324},"Bridge Endpoint Setup",{"type":53,"value":1326}," below.",{"type":47,"tag":305,"props":1328,"children":1330},{"id":1329},"_5-run-the-local-studio",[1331],{"type":53,"value":1332},"5. Run the Local Studio",{"type":47,"tag":287,"props":1334,"children":1336},{"className":313,"code":1335,"language":315,"meta":295,"style":295},"npx novu@latest dev --port \u003CYOUR_APP_PORT>\n",[1337],{"type":47,"tag":62,"props":1338,"children":1339},{"__ignoreMap":295},[1340],{"type":47,"tag":321,"props":1341,"children":1342},{"class":323,"line":23},[1343,1347,1352,1357,1362,1367,1372,1377],{"type":47,"tag":321,"props":1344,"children":1345},{"style":327},[1346],{"type":53,"value":330},{"type":47,"tag":321,"props":1348,"children":1349},{"style":333},[1350],{"type":53,"value":1351}," novu@latest",{"type":47,"tag":321,"props":1353,"children":1354},{"style":333},[1355],{"type":53,"value":1356}," dev",{"type":47,"tag":321,"props":1358,"children":1359},{"style":333},[1360],{"type":53,"value":1361}," --port",{"type":47,"tag":321,"props":1363,"children":1364},{"style":349},[1365],{"type":53,"value":1366}," \u003C",{"type":47,"tag":321,"props":1368,"children":1369},{"style":333},[1370],{"type":53,"value":1371},"YOUR_APP_POR",{"type":47,"tag":321,"props":1373,"children":1374},{"style":433},[1375],{"type":53,"value":1376},"T",{"type":47,"tag":321,"props":1378,"children":1379},{"style":349},[1380],{"type":53,"value":362},{"type":47,"tag":56,"props":1382,"children":1383},{},[1384,1386,1392],{"type":53,"value":1385},"Open ",{"type":47,"tag":62,"props":1387,"children":1389},{"className":1388},[],[1390],{"type":53,"value":1391},"http:\u002F\u002Flocalhost:2022",{"type":53,"value":1393}," to preview workflows, edit controls, and trigger test events. The Studio creates a public tunnel automatically so Novu Cloud can reach your local bridge.",{"type":47,"tag":107,"props":1395,"children":1397},{"id":1396},"workflow-anatomy",[1398],{"type":53,"value":1399},"Workflow Anatomy",{"type":47,"tag":79,"props":1401,"children":1402},{},[1403],{"type":47,"tag":56,"props":1404,"children":1405},{},[1406,1408,1418,1420,1426,1428,1433,1435,1440,1442,1447],{"type":53,"value":1407},"Designing the workflow itself? See ",{"type":47,"tag":94,"props":1409,"children":1411},{"href":1410},"..\u002Fdesign-workflow",[1412],{"type":47,"tag":62,"props":1413,"children":1415},{"className":1414},[],[1416],{"type":53,"value":1417},"design-workflow\u002F",{"type":53,"value":1419}," for channel selection, severity, ",{"type":47,"tag":62,"props":1421,"children":1423},{"className":1422},[],[1424],{"type":53,"value":1425},"critical",{"type":53,"value":1427},", digest defaults, step conditions, and the 9 reference templates (order confirmation, payment failed, account suspended, comment, trial expiring, password reset, webhook fan-out, fetch-then-notify). The Framework SKILL covers ",{"type":47,"tag":71,"props":1429,"children":1430},{},[1431],{"type":53,"value":1432},"how to express",{"type":53,"value":1434}," those decisions in code; ",{"type":47,"tag":62,"props":1436,"children":1438},{"className":1437},[],[1439],{"type":53,"value":1417},{"type":53,"value":1441}," covers ",{"type":47,"tag":71,"props":1443,"children":1444},{},[1445],{"type":53,"value":1446},"what to decide",{"type":53,"value":248},{"type":47,"tag":287,"props":1449,"children":1451},{"className":457,"code":1450,"language":19,"meta":295,"style":295},"workflow(workflowId, handler, options);\n",[1452],{"type":47,"tag":62,"props":1453,"children":1454},{"__ignoreMap":295},[1455],{"type":47,"tag":321,"props":1456,"children":1457},{"class":323,"line":23},[1458,1463,1468,1472,1477,1481,1486],{"type":47,"tag":321,"props":1459,"children":1460},{"style":588},[1461],{"type":53,"value":1462},"workflow",{"type":47,"tag":321,"props":1464,"children":1465},{"style":433},[1466],{"type":53,"value":1467},"(workflowId",{"type":47,"tag":321,"props":1469,"children":1470},{"style":349},[1471],{"type":53,"value":643},{"type":47,"tag":321,"props":1473,"children":1474},{"style":433},[1475],{"type":53,"value":1476}," handler",{"type":47,"tag":321,"props":1478,"children":1479},{"style":349},[1480],{"type":53,"value":643},{"type":47,"tag":321,"props":1482,"children":1483},{"style":433},[1484],{"type":53,"value":1485}," options)",{"type":47,"tag":321,"props":1487,"children":1488},{"style":349},[1489],{"type":53,"value":510},{"type":47,"tag":114,"props":1491,"children":1492},{},[1493,1514],{"type":47,"tag":118,"props":1494,"children":1495},{},[1496],{"type":47,"tag":122,"props":1497,"children":1498},{},[1499,1504,1509],{"type":47,"tag":126,"props":1500,"children":1501},{},[1502],{"type":53,"value":1503},"Param",{"type":47,"tag":126,"props":1505,"children":1506},{},[1507],{"type":53,"value":1508},"Type",{"type":47,"tag":126,"props":1510,"children":1511},{},[1512],{"type":53,"value":1513},"Description",{"type":47,"tag":137,"props":1515,"children":1516},{},[1517,1542,1568],{"type":47,"tag":122,"props":1518,"children":1519},{},[1520,1529,1537],{"type":47,"tag":144,"props":1521,"children":1522},{},[1523],{"type":47,"tag":62,"props":1524,"children":1526},{"className":1525},[],[1527],{"type":53,"value":1528},"workflowId",{"type":47,"tag":144,"props":1530,"children":1531},{},[1532],{"type":47,"tag":62,"props":1533,"children":1535},{"className":1534},[],[1536],{"type":53,"value":951},{"type":47,"tag":144,"props":1538,"children":1539},{},[1540],{"type":53,"value":1541},"Unique identifier in your environment",{"type":47,"tag":122,"props":1543,"children":1544},{},[1545,1554,1563],{"type":47,"tag":144,"props":1546,"children":1547},{},[1548],{"type":47,"tag":62,"props":1549,"children":1551},{"className":1550},[],[1552],{"type":53,"value":1553},"handler",{"type":47,"tag":144,"props":1555,"children":1556},{},[1557],{"type":47,"tag":62,"props":1558,"children":1560},{"className":1559},[],[1561],{"type":53,"value":1562},"({ step, payload, subscriber }) => Promise\u003Cvoid>",{"type":47,"tag":144,"props":1564,"children":1565},{},[1566],{"type":53,"value":1567},"Workflow body — calls steps in order",{"type":47,"tag":122,"props":1569,"children":1570},{},[1571,1580,1589],{"type":47,"tag":144,"props":1572,"children":1573},{},[1574],{"type":47,"tag":62,"props":1575,"children":1577},{"className":1576},[],[1578],{"type":53,"value":1579},"options",{"type":47,"tag":144,"props":1581,"children":1582},{},[1583],{"type":47,"tag":62,"props":1584,"children":1586},{"className":1585},[],[1587],{"type":53,"value":1588},"WorkflowOptions",{"type":47,"tag":144,"props":1590,"children":1591},{},[1592],{"type":53,"value":1593},"Schema, name, description, tags, preferences",{"type":47,"tag":305,"props":1595,"children":1597},{"id":1596},"workflow-options",[1598],{"type":53,"value":1599},"Workflow Options",{"type":47,"tag":114,"props":1601,"children":1602},{},[1603,1623],{"type":47,"tag":118,"props":1604,"children":1605},{},[1606],{"type":47,"tag":122,"props":1607,"children":1608},{},[1609,1614,1618],{"type":47,"tag":126,"props":1610,"children":1611},{},[1612],{"type":53,"value":1613},"Option",{"type":47,"tag":126,"props":1615,"children":1616},{},[1617],{"type":53,"value":1508},{"type":47,"tag":126,"props":1619,"children":1620},{},[1621],{"type":53,"value":1622},"Purpose",{"type":47,"tag":137,"props":1624,"children":1625},{},[1626,1658,1689,1714,1740,1766,1791],{"type":47,"tag":122,"props":1627,"children":1628},{},[1629,1638,1647],{"type":47,"tag":144,"props":1630,"children":1631},{},[1632],{"type":47,"tag":62,"props":1633,"children":1635},{"className":1634},[],[1636],{"type":53,"value":1637},"payloadSchema",{"type":47,"tag":144,"props":1639,"children":1640},{},[1641],{"type":47,"tag":62,"props":1642,"children":1644},{"className":1643},[],[1645],{"type":53,"value":1646},"ZodSchema | JsonSchema | ClassValidatorClass",{"type":47,"tag":144,"props":1648,"children":1649},{},[1650,1652],{"type":53,"value":1651},"Validates the trigger payload, infers TS type for ",{"type":47,"tag":62,"props":1653,"children":1655},{"className":1654},[],[1656],{"type":53,"value":1657},"payload",{"type":47,"tag":122,"props":1659,"children":1660},{},[1661,1670,1678],{"type":47,"tag":144,"props":1662,"children":1663},{},[1664],{"type":47,"tag":62,"props":1665,"children":1667},{"className":1666},[],[1668],{"type":53,"value":1669},"name",{"type":47,"tag":144,"props":1671,"children":1672},{},[1673],{"type":47,"tag":62,"props":1674,"children":1676},{"className":1675},[],[1677],{"type":53,"value":951},{"type":47,"tag":144,"props":1679,"children":1680},{},[1681,1683],{"type":53,"value":1682},"Human-readable name shown in Dashboard \u002F ",{"type":47,"tag":62,"props":1684,"children":1686},{"className":1685},[],[1687],{"type":53,"value":1688},"\u003CInbox \u002F>",{"type":47,"tag":122,"props":1690,"children":1691},{},[1692,1701,1709],{"type":47,"tag":144,"props":1693,"children":1694},{},[1695],{"type":47,"tag":62,"props":1696,"children":1698},{"className":1697},[],[1699],{"type":53,"value":1700},"description",{"type":47,"tag":144,"props":1702,"children":1703},{},[1704],{"type":47,"tag":62,"props":1705,"children":1707},{"className":1706},[],[1708],{"type":53,"value":951},{"type":47,"tag":144,"props":1710,"children":1711},{},[1712],{"type":53,"value":1713},"Description shown in Dashboard",{"type":47,"tag":122,"props":1715,"children":1716},{},[1717,1726,1735],{"type":47,"tag":144,"props":1718,"children":1719},{},[1720],{"type":47,"tag":62,"props":1721,"children":1723},{"className":1722},[],[1724],{"type":53,"value":1725},"tags",{"type":47,"tag":144,"props":1727,"children":1728},{},[1729],{"type":47,"tag":62,"props":1730,"children":1732},{"className":1731},[],[1733],{"type":53,"value":1734},"string[]",{"type":47,"tag":144,"props":1736,"children":1737},{},[1738],{"type":53,"value":1739},"Categorize for filtering \u002F Inbox tabs",{"type":47,"tag":122,"props":1741,"children":1742},{},[1743,1752,1761],{"type":47,"tag":144,"props":1744,"children":1745},{},[1746],{"type":47,"tag":62,"props":1747,"children":1749},{"className":1748},[],[1750],{"type":53,"value":1751},"severity",{"type":47,"tag":144,"props":1753,"children":1754},{},[1755],{"type":47,"tag":62,"props":1756,"children":1758},{"className":1757},[],[1759],{"type":53,"value":1760},"'low' | 'medium' | 'high'",{"type":47,"tag":144,"props":1762,"children":1763},{},[1764],{"type":53,"value":1765},"Visual prioritization in the Inbox. Leave unset for most workflows.",{"type":47,"tag":122,"props":1767,"children":1768},{},[1769,1777,1786],{"type":47,"tag":144,"props":1770,"children":1771},{},[1772],{"type":47,"tag":62,"props":1773,"children":1775},{"className":1774},[],[1776],{"type":53,"value":1425},{"type":47,"tag":144,"props":1778,"children":1779},{},[1780],{"type":47,"tag":62,"props":1781,"children":1783},{"className":1782},[],[1784],{"type":53,"value":1785},"boolean",{"type":47,"tag":144,"props":1787,"children":1788},{},[1789],{"type":53,"value":1790},"Bypasses subscriber preferences, skips digest, runs without delays. Reserve for must-deliver events.",{"type":47,"tag":122,"props":1792,"children":1793},{},[1794,1803,1812],{"type":47,"tag":144,"props":1795,"children":1796},{},[1797],{"type":47,"tag":62,"props":1798,"children":1800},{"className":1799},[],[1801],{"type":53,"value":1802},"preferences",{"type":47,"tag":144,"props":1804,"children":1805},{},[1806],{"type":47,"tag":62,"props":1807,"children":1809},{"className":1808},[],[1810],{"type":53,"value":1811},"WorkflowPreferences",{"type":47,"tag":144,"props":1813,"children":1814},{},[1815,1817,1823],{"type":53,"value":1816},"Default channel preferences and ",{"type":47,"tag":62,"props":1818,"children":1820},{"className":1819},[],[1821],{"type":53,"value":1822},"readOnly",{"type":53,"value":1824}," flag",{"type":47,"tag":305,"props":1826,"children":1828},{"id":1827},"workflow-context",[1829],{"type":53,"value":1830},"Workflow Context",{"type":47,"tag":56,"props":1832,"children":1833},{},[1834,1836,1842],{"type":53,"value":1835},"The handler receives ",{"type":47,"tag":62,"props":1837,"children":1839},{"className":1838},[],[1840],{"type":53,"value":1841},"{ step, payload, subscriber }",{"type":53,"value":772},{"type":47,"tag":1844,"props":1845,"children":1846},"ul",{},[1847,1881,1896],{"type":47,"tag":229,"props":1848,"children":1849},{},[1850,1856,1858,1864,1866,1872,1873,1879],{"type":47,"tag":62,"props":1851,"children":1853},{"className":1852},[],[1854],{"type":53,"value":1855},"step",{"type":53,"value":1857}," — channel and action step builders (",{"type":47,"tag":62,"props":1859,"children":1861},{"className":1860},[],[1862],{"type":53,"value":1863},"step.email",{"type":53,"value":1865},", ",{"type":47,"tag":62,"props":1867,"children":1869},{"className":1868},[],[1870],{"type":53,"value":1871},"step.delay",{"type":53,"value":1865},{"type":47,"tag":62,"props":1874,"children":1876},{"className":1875},[],[1877],{"type":53,"value":1878},"step.digest",{"type":53,"value":1880},", …)",{"type":47,"tag":229,"props":1882,"children":1883},{},[1884,1889,1891],{"type":47,"tag":62,"props":1885,"children":1887},{"className":1886},[],[1888],{"type":53,"value":1657},{"type":53,"value":1890}," — strongly-typed data passed at trigger time, validated against ",{"type":47,"tag":62,"props":1892,"children":1894},{"className":1893},[],[1895],{"type":53,"value":1637},{"type":47,"tag":229,"props":1897,"children":1898},{},[1899,1904,1906,1912],{"type":47,"tag":62,"props":1900,"children":1902},{"className":1901},[],[1903],{"type":53,"value":823},{"type":53,"value":1905}," — ",{"type":47,"tag":62,"props":1907,"children":1909},{"className":1908},[],[1910],{"type":53,"value":1911},"{ subscriberId, firstName?, lastName?, locale?, data?, ... }",{"type":53,"value":1913}," of the recipient",{"type":47,"tag":107,"props":1915,"children":1917},{"id":1916},"channel-steps",[1918],{"type":53,"value":1919},"Channel Steps",{"type":47,"tag":56,"props":1921,"children":1922},{},[1923],{"type":53,"value":1924},"All channel steps share the same shape:",{"type":47,"tag":287,"props":1926,"children":1928},{"className":457,"code":1927,"language":19,"meta":295,"style":295},"await step.\u003Cchannel>(stepId, resolver, options?);\n",[1929],{"type":47,"tag":62,"props":1930,"children":1931},{"__ignoreMap":295},[1932],{"type":47,"tag":321,"props":1933,"children":1934},{"class":323,"line":23},[1935,1940,1944,1949,1954,1959,1964,1968,1973,1977,1982,1987],{"type":47,"tag":321,"props":1936,"children":1937},{"style":468},[1938],{"type":53,"value":1939},"await",{"type":47,"tag":321,"props":1941,"children":1942},{"style":433},[1943],{"type":53,"value":638},{"type":47,"tag":321,"props":1945,"children":1946},{"style":349},[1947],{"type":53,"value":1948},".\u003C",{"type":47,"tag":321,"props":1950,"children":1951},{"style":433},[1952],{"type":53,"value":1953},"channel",{"type":47,"tag":321,"props":1955,"children":1956},{"style":349},[1957],{"type":53,"value":1958},">",{"type":47,"tag":321,"props":1960,"children":1961},{"style":433},[1962],{"type":53,"value":1963},"(stepId",{"type":47,"tag":321,"props":1965,"children":1966},{"style":349},[1967],{"type":53,"value":643},{"type":47,"tag":321,"props":1969,"children":1970},{"style":433},[1971],{"type":53,"value":1972}," resolver",{"type":47,"tag":321,"props":1974,"children":1975},{"style":349},[1976],{"type":53,"value":643},{"type":47,"tag":321,"props":1978,"children":1979},{"style":433},[1980],{"type":53,"value":1981}," options",{"type":47,"tag":321,"props":1983,"children":1984},{"style":349},[1985],{"type":53,"value":1986},"?",{"type":47,"tag":321,"props":1988,"children":1989},{"style":433},[1990],{"type":53,"value":1991},");\n",{"type":47,"tag":114,"props":1993,"children":1994},{},[1995,2021],{"type":47,"tag":118,"props":1996,"children":1997},{},[1998],{"type":47,"tag":122,"props":1999,"children":2000},{},[2001,2006,2011,2016],{"type":47,"tag":126,"props":2002,"children":2003},{},[2004],{"type":53,"value":2005},"Step",{"type":47,"tag":126,"props":2007,"children":2008},{},[2009],{"type":53,"value":2010},"Output Required",{"type":47,"tag":126,"props":2012,"children":2013},{},[2014],{"type":53,"value":2015},"Notable Outputs",{"type":47,"tag":126,"props":2017,"children":2018},{},[2019],{"type":53,"value":2020},"Returns Result",{"type":47,"tag":137,"props":2022,"children":2023},{},[2024,2078,2107,2169,2198],{"type":47,"tag":122,"props":2025,"children":2026},{},[2027,2035,2050,2073],{"type":47,"tag":144,"props":2028,"children":2029},{},[2030],{"type":47,"tag":62,"props":2031,"children":2033},{"className":2032},[],[2034],{"type":53,"value":1863},{"type":47,"tag":144,"props":2036,"children":2037},{},[2038,2043,2044],{"type":47,"tag":62,"props":2039,"children":2041},{"className":2040},[],[2042],{"type":53,"value":786},{"type":53,"value":1865},{"type":47,"tag":62,"props":2045,"children":2047},{"className":2046},[],[2048],{"type":53,"value":2049},"body",{"type":47,"tag":144,"props":2051,"children":2052},{},[2053,2059,2060,2066,2067],{"type":47,"tag":62,"props":2054,"children":2056},{"className":2055},[],[2057],{"type":53,"value":2058},"attachments",{"type":53,"value":1865},{"type":47,"tag":62,"props":2061,"children":2063},{"className":2062},[],[2064],{"type":53,"value":2065},"from",{"type":53,"value":1865},{"type":47,"tag":62,"props":2068,"children":2070},{"className":2069},[],[2071],{"type":53,"value":2072},"replyTo",{"type":47,"tag":144,"props":2074,"children":2075},{},[2076],{"type":53,"value":2077},"No",{"type":47,"tag":122,"props":2079,"children":2080},{},[2081,2090,2098,2103],{"type":47,"tag":144,"props":2082,"children":2083},{},[2084],{"type":47,"tag":62,"props":2085,"children":2087},{"className":2086},[],[2088],{"type":53,"value":2089},"step.sms",{"type":47,"tag":144,"props":2091,"children":2092},{},[2093],{"type":47,"tag":62,"props":2094,"children":2096},{"className":2095},[],[2097],{"type":53,"value":2049},{"type":47,"tag":144,"props":2099,"children":2100},{},[2101],{"type":53,"value":2102},"—",{"type":47,"tag":144,"props":2104,"children":2105},{},[2106],{"type":53,"value":2077},{"type":47,"tag":122,"props":2108,"children":2109},{},[2110,2119,2142,2165],{"type":47,"tag":144,"props":2111,"children":2112},{},[2113],{"type":47,"tag":62,"props":2114,"children":2116},{"className":2115},[],[2117],{"type":53,"value":2118},"step.push",{"type":47,"tag":144,"props":2120,"children":2121},{},[2122,2128,2130,2135,2137],{"type":47,"tag":62,"props":2123,"children":2125},{"className":2124},[],[2126],{"type":53,"value":2127},"title",{"type":53,"value":2129}," (or ",{"type":47,"tag":62,"props":2131,"children":2133},{"className":2132},[],[2134],{"type":53,"value":786},{"type":53,"value":2136},"), ",{"type":47,"tag":62,"props":2138,"children":2140},{"className":2139},[],[2141],{"type":53,"value":2049},{"type":47,"tag":144,"props":2143,"children":2144},{},[2145,2151,2152,2158,2159],{"type":47,"tag":62,"props":2146,"children":2148},{"className":2147},[],[2149],{"type":53,"value":2150},"data",{"type":53,"value":1865},{"type":47,"tag":62,"props":2153,"children":2155},{"className":2154},[],[2156],{"type":53,"value":2157},"image",{"type":53,"value":1865},{"type":47,"tag":62,"props":2160,"children":2162},{"className":2161},[],[2163],{"type":53,"value":2164},"icon",{"type":47,"tag":144,"props":2166,"children":2167},{},[2168],{"type":53,"value":2077},{"type":47,"tag":122,"props":2170,"children":2171},{},[2172,2181,2189,2194],{"type":47,"tag":144,"props":2173,"children":2174},{},[2175],{"type":47,"tag":62,"props":2176,"children":2178},{"className":2177},[],[2179],{"type":53,"value":2180},"step.chat",{"type":47,"tag":144,"props":2182,"children":2183},{},[2184],{"type":47,"tag":62,"props":2185,"children":2187},{"className":2186},[],[2188],{"type":53,"value":2049},{"type":47,"tag":144,"props":2190,"children":2191},{},[2192],{"type":53,"value":2193},"— (override per-provider)",{"type":47,"tag":144,"props":2195,"children":2196},{},[2197],{"type":53,"value":2077},{"type":47,"tag":122,"props":2199,"children":2200},{},[2201,2210,2218,2260],{"type":47,"tag":144,"props":2202,"children":2203},{},[2204],{"type":47,"tag":62,"props":2205,"children":2207},{"className":2206},[],[2208],{"type":53,"value":2209},"step.inApp",{"type":47,"tag":144,"props":2211,"children":2212},{},[2213],{"type":47,"tag":62,"props":2214,"children":2216},{"className":2215},[],[2217],{"type":53,"value":2049},{"type":47,"tag":144,"props":2219,"children":2220},{},[2221,2226,2227,2233,2234,2240,2241,2247,2248,2254,2255],{"type":47,"tag":62,"props":2222,"children":2224},{"className":2223},[],[2225],{"type":53,"value":786},{"type":53,"value":1865},{"type":47,"tag":62,"props":2228,"children":2230},{"className":2229},[],[2231],{"type":53,"value":2232},"avatar",{"type":53,"value":1865},{"type":47,"tag":62,"props":2235,"children":2237},{"className":2236},[],[2238],{"type":53,"value":2239},"redirect",{"type":53,"value":1865},{"type":47,"tag":62,"props":2242,"children":2244},{"className":2243},[],[2245],{"type":53,"value":2246},"primaryAction",{"type":53,"value":1865},{"type":47,"tag":62,"props":2249,"children":2251},{"className":2250},[],[2252],{"type":53,"value":2253},"secondaryAction",{"type":53,"value":1865},{"type":47,"tag":62,"props":2256,"children":2258},{"className":2257},[],[2259],{"type":53,"value":2150},{"type":47,"tag":144,"props":2261,"children":2262},{},[2263],{"type":47,"tag":62,"props":2264,"children":2266},{"className":2265},[],[2267],{"type":53,"value":2268},"{ seen, read, lastSeenDate, lastReadDate }",{"type":47,"tag":305,"props":2270,"children":2272},{"id":2271},"email-step",[2273],{"type":53,"value":2274},"Email Step",{"type":47,"tag":287,"props":2276,"children":2278},{"className":457,"code":2277,"language":19,"meta":295,"style":295},"await step.email(\"welcome\", async (controls) => ({\n  subject: controls.subject,\n  body: render(\u003CWelcomeEmail name={subscriber.firstName} \u002F>),\n  from: \"hello@acme.com\",\n  replyTo: \"support@acme.com\",\n}));\n",[2279],{"type":47,"tag":62,"props":2280,"children":2281},{"__ignoreMap":295},[2282,2350,2378,2445,2474,2503],{"type":47,"tag":321,"props":2283,"children":2284},{"class":323,"line":23},[2285,2289,2293,2297,2301,2305,2309,2314,2318,2322,2326,2330,2334,2338,2342,2346],{"type":47,"tag":321,"props":2286,"children":2287},{"style":468},[2288],{"type":53,"value":1939},{"type":47,"tag":321,"props":2290,"children":2291},{"style":433},[2292],{"type":53,"value":638},{"type":47,"tag":321,"props":2294,"children":2295},{"style":349},[2296],{"type":53,"value":248},{"type":47,"tag":321,"props":2298,"children":2299},{"style":588},[2300],{"type":53,"value":694},{"type":47,"tag":321,"props":2302,"children":2303},{"style":433},[2304],{"type":53,"value":700},{"type":47,"tag":321,"props":2306,"children":2307},{"style":349},[2308],{"type":53,"value":505},{"type":47,"tag":321,"props":2310,"children":2311},{"style":333},[2312],{"type":53,"value":2313},"welcome",{"type":47,"tag":321,"props":2315,"children":2316},{"style":349},[2317],{"type":53,"value":505},{"type":47,"tag":321,"props":2319,"children":2320},{"style":349},[2321],{"type":53,"value":643},{"type":47,"tag":321,"props":2323,"children":2324},{"style":572},[2325],{"type":53,"value":722},{"type":47,"tag":321,"props":2327,"children":2328},{"style":349},[2329],{"type":53,"value":727},{"type":47,"tag":321,"props":2331,"children":2332},{"style":635},[2333],{"type":53,"value":732},{"type":47,"tag":321,"props":2335,"children":2336},{"style":349},[2337],{"type":53,"value":737},{"type":47,"tag":321,"props":2339,"children":2340},{"style":572},[2341],{"type":53,"value":667},{"type":47,"tag":321,"props":2343,"children":2344},{"style":433},[2345],{"type":53,"value":727},{"type":47,"tag":321,"props":2347,"children":2348},{"style":349},[2349],{"type":53,"value":926},{"type":47,"tag":321,"props":2351,"children":2352},{"class":323,"line":27},[2353,2358,2362,2366,2370,2374],{"type":47,"tag":321,"props":2354,"children":2355},{"style":697},[2356],{"type":53,"value":2357},"  subject",{"type":47,"tag":321,"props":2359,"children":2360},{"style":349},[2361],{"type":53,"value":772},{"type":47,"tag":321,"props":2363,"children":2364},{"style":433},[2365],{"type":53,"value":777},{"type":47,"tag":321,"props":2367,"children":2368},{"style":349},[2369],{"type":53,"value":248},{"type":47,"tag":321,"props":2371,"children":2372},{"style":433},[2373],{"type":53,"value":786},{"type":47,"tag":321,"props":2375,"children":2376},{"style":349},[2377],{"type":53,"value":618},{"type":47,"tag":321,"props":2379,"children":2380},{"class":323,"line":554},[2381,2386,2390,2395,2400,2405,2410,2414,2419,2423,2427,2432,2436,2441],{"type":47,"tag":321,"props":2382,"children":2383},{"style":697},[2384],{"type":53,"value":2385},"  body",{"type":47,"tag":321,"props":2387,"children":2388},{"style":349},[2389],{"type":53,"value":772},{"type":47,"tag":321,"props":2391,"children":2392},{"style":588},[2393],{"type":53,"value":2394}," render",{"type":47,"tag":321,"props":2396,"children":2397},{"style":433},[2398],{"type":53,"value":2399},"(\u003C",{"type":47,"tag":321,"props":2401,"children":2402},{"style":327},[2403],{"type":53,"value":2404},"WelcomeEmail",{"type":47,"tag":321,"props":2406,"children":2407},{"style":327},[2408],{"type":53,"value":2409}," name",{"type":47,"tag":321,"props":2411,"children":2412},{"style":433},[2413],{"type":53,"value":585},{"type":47,"tag":321,"props":2415,"children":2416},{"style":349},[2417],{"type":53,"value":2418},"{",{"type":47,"tag":321,"props":2420,"children":2421},{"style":327},[2422],{"type":53,"value":823},{"type":47,"tag":321,"props":2424,"children":2425},{"style":349},[2426],{"type":53,"value":248},{"type":47,"tag":321,"props":2428,"children":2429},{"style":697},[2430],{"type":53,"value":2431},"firstName",{"type":47,"tag":321,"props":2433,"children":2434},{"style":349},[2435],{"type":53,"value":855},{"type":47,"tag":321,"props":2437,"children":2438},{"style":433},[2439],{"type":53,"value":2440}," \u002F>)",{"type":47,"tag":321,"props":2442,"children":2443},{"style":349},[2444],{"type":53,"value":618},{"type":47,"tag":321,"props":2446,"children":2447},{"class":323,"line":563},[2448,2453,2457,2461,2466,2470],{"type":47,"tag":321,"props":2449,"children":2450},{"style":697},[2451],{"type":53,"value":2452},"  from",{"type":47,"tag":321,"props":2454,"children":2455},{"style":349},[2456],{"type":53,"value":772},{"type":47,"tag":321,"props":2458,"children":2459},{"style":349},[2460],{"type":53,"value":496},{"type":47,"tag":321,"props":2462,"children":2463},{"style":333},[2464],{"type":53,"value":2465},"hello@acme.com",{"type":47,"tag":321,"props":2467,"children":2468},{"style":349},[2469],{"type":53,"value":505},{"type":47,"tag":321,"props":2471,"children":2472},{"style":349},[2473],{"type":53,"value":618},{"type":47,"tag":321,"props":2475,"children":2476},{"class":323,"line":598},[2477,2482,2486,2490,2495,2499],{"type":47,"tag":321,"props":2478,"children":2479},{"style":697},[2480],{"type":53,"value":2481},"  replyTo",{"type":47,"tag":321,"props":2483,"children":2484},{"style":349},[2485],{"type":53,"value":772},{"type":47,"tag":321,"props":2487,"children":2488},{"style":349},[2489],{"type":53,"value":496},{"type":47,"tag":321,"props":2491,"children":2492},{"style":333},[2493],{"type":53,"value":2494},"support@acme.com",{"type":47,"tag":321,"props":2496,"children":2497},{"style":349},[2498],{"type":53,"value":505},{"type":47,"tag":321,"props":2500,"children":2501},{"style":349},[2502],{"type":53,"value":618},{"type":47,"tag":321,"props":2504,"children":2505},{"class":323,"line":621},[2506,2510,2515],{"type":47,"tag":321,"props":2507,"children":2508},{"style":349},[2509],{"type":53,"value":855},{"type":47,"tag":321,"props":2511,"children":2512},{"style":433},[2513],{"type":53,"value":2514},"))",{"type":47,"tag":321,"props":2516,"children":2517},{"style":349},[2518],{"type":53,"value":510},{"type":47,"tag":305,"props":2520,"children":2522},{"id":2521},"in-app-step-rich-payload",[2523],{"type":53,"value":2524},"In-App Step (rich payload)",{"type":47,"tag":287,"props":2526,"children":2528},{"className":457,"code":2527,"language":19,"meta":295,"style":295},"await step.inApp(\"inbox\", async () => ({\n  subject: \"Welcome to Acme!\",\n  body: \"We are excited to have you on board.\",\n  avatar: \"https:\u002F\u002Facme.com\u002Favatar.png\",\n  redirect: { url: \"\u002Fwelcome\", target: \"_self\" },\n  primaryAction: {\n    label: \"Get Started\",\n    redirect: { url: \"\u002Fget-started\", target: \"_self\" },\n  },\n  data: { entityType: \"user\", entityId: payload.userId },\n}));\n",[2529],{"type":47,"tag":62,"props":2530,"children":2531},{"__ignoreMap":295},[2532,2594,2622,2650,2679,2748,2764,2793,2858,2865,2934],{"type":47,"tag":321,"props":2533,"children":2534},{"class":323,"line":23},[2535,2539,2543,2547,2552,2556,2560,2565,2569,2573,2577,2582,2586,2590],{"type":47,"tag":321,"props":2536,"children":2537},{"style":468},[2538],{"type":53,"value":1939},{"type":47,"tag":321,"props":2540,"children":2541},{"style":433},[2542],{"type":53,"value":638},{"type":47,"tag":321,"props":2544,"children":2545},{"style":349},[2546],{"type":53,"value":248},{"type":47,"tag":321,"props":2548,"children":2549},{"style":588},[2550],{"type":53,"value":2551},"inApp",{"type":47,"tag":321,"props":2553,"children":2554},{"style":433},[2555],{"type":53,"value":700},{"type":47,"tag":321,"props":2557,"children":2558},{"style":349},[2559],{"type":53,"value":505},{"type":47,"tag":321,"props":2561,"children":2562},{"style":333},[2563],{"type":53,"value":2564},"inbox",{"type":47,"tag":321,"props":2566,"children":2567},{"style":349},[2568],{"type":53,"value":505},{"type":47,"tag":321,"props":2570,"children":2571},{"style":349},[2572],{"type":53,"value":643},{"type":47,"tag":321,"props":2574,"children":2575},{"style":572},[2576],{"type":53,"value":722},{"type":47,"tag":321,"props":2578,"children":2579},{"style":349},[2580],{"type":53,"value":2581}," ()",{"type":47,"tag":321,"props":2583,"children":2584},{"style":572},[2585],{"type":53,"value":667},{"type":47,"tag":321,"props":2587,"children":2588},{"style":433},[2589],{"type":53,"value":727},{"type":47,"tag":321,"props":2591,"children":2592},{"style":349},[2593],{"type":53,"value":926},{"type":47,"tag":321,"props":2595,"children":2596},{"class":323,"line":27},[2597,2601,2605,2609,2614,2618],{"type":47,"tag":321,"props":2598,"children":2599},{"style":697},[2600],{"type":53,"value":2357},{"type":47,"tag":321,"props":2602,"children":2603},{"style":349},[2604],{"type":53,"value":772},{"type":47,"tag":321,"props":2606,"children":2607},{"style":349},[2608],{"type":53,"value":496},{"type":47,"tag":321,"props":2610,"children":2611},{"style":333},[2612],{"type":53,"value":2613},"Welcome to Acme!",{"type":47,"tag":321,"props":2615,"children":2616},{"style":349},[2617],{"type":53,"value":505},{"type":47,"tag":321,"props":2619,"children":2620},{"style":349},[2621],{"type":53,"value":618},{"type":47,"tag":321,"props":2623,"children":2624},{"class":323,"line":554},[2625,2629,2633,2637,2642,2646],{"type":47,"tag":321,"props":2626,"children":2627},{"style":697},[2628],{"type":53,"value":2385},{"type":47,"tag":321,"props":2630,"children":2631},{"style":349},[2632],{"type":53,"value":772},{"type":47,"tag":321,"props":2634,"children":2635},{"style":349},[2636],{"type":53,"value":496},{"type":47,"tag":321,"props":2638,"children":2639},{"style":333},[2640],{"type":53,"value":2641},"We are excited to have you on board.",{"type":47,"tag":321,"props":2643,"children":2644},{"style":349},[2645],{"type":53,"value":505},{"type":47,"tag":321,"props":2647,"children":2648},{"style":349},[2649],{"type":53,"value":618},{"type":47,"tag":321,"props":2651,"children":2652},{"class":323,"line":563},[2653,2658,2662,2666,2671,2675],{"type":47,"tag":321,"props":2654,"children":2655},{"style":697},[2656],{"type":53,"value":2657},"  avatar",{"type":47,"tag":321,"props":2659,"children":2660},{"style":349},[2661],{"type":53,"value":772},{"type":47,"tag":321,"props":2663,"children":2664},{"style":349},[2665],{"type":53,"value":496},{"type":47,"tag":321,"props":2667,"children":2668},{"style":333},[2669],{"type":53,"value":2670},"https:\u002F\u002Facme.com\u002Favatar.png",{"type":47,"tag":321,"props":2672,"children":2673},{"style":349},[2674],{"type":53,"value":505},{"type":47,"tag":321,"props":2676,"children":2677},{"style":349},[2678],{"type":53,"value":618},{"type":47,"tag":321,"props":2680,"children":2681},{"class":323,"line":598},[2682,2687,2691,2695,2700,2704,2708,2713,2717,2721,2726,2730,2734,2739,2743],{"type":47,"tag":321,"props":2683,"children":2684},{"style":697},[2685],{"type":53,"value":2686},"  redirect",{"type":47,"tag":321,"props":2688,"children":2689},{"style":349},[2690],{"type":53,"value":772},{"type":47,"tag":321,"props":2692,"children":2693},{"style":349},[2694],{"type":53,"value":476},{"type":47,"tag":321,"props":2696,"children":2697},{"style":697},[2698],{"type":53,"value":2699}," url",{"type":47,"tag":321,"props":2701,"children":2702},{"style":349},[2703],{"type":53,"value":772},{"type":47,"tag":321,"props":2705,"children":2706},{"style":349},[2707],{"type":53,"value":496},{"type":47,"tag":321,"props":2709,"children":2710},{"style":333},[2711],{"type":53,"value":2712},"\u002Fwelcome",{"type":47,"tag":321,"props":2714,"children":2715},{"style":349},[2716],{"type":53,"value":505},{"type":47,"tag":321,"props":2718,"children":2719},{"style":349},[2720],{"type":53,"value":643},{"type":47,"tag":321,"props":2722,"children":2723},{"style":697},[2724],{"type":53,"value":2725}," target",{"type":47,"tag":321,"props":2727,"children":2728},{"style":349},[2729],{"type":53,"value":772},{"type":47,"tag":321,"props":2731,"children":2732},{"style":349},[2733],{"type":53,"value":496},{"type":47,"tag":321,"props":2735,"children":2736},{"style":333},[2737],{"type":53,"value":2738},"_self",{"type":47,"tag":321,"props":2740,"children":2741},{"style":349},[2742],{"type":53,"value":505},{"type":47,"tag":321,"props":2744,"children":2745},{"style":349},[2746],{"type":53,"value":2747}," },\n",{"type":47,"tag":321,"props":2749,"children":2750},{"class":323,"line":621},[2751,2756,2760],{"type":47,"tag":321,"props":2752,"children":2753},{"style":697},[2754],{"type":53,"value":2755},"  primaryAction",{"type":47,"tag":321,"props":2757,"children":2758},{"style":349},[2759],{"type":53,"value":772},{"type":47,"tag":321,"props":2761,"children":2762},{"style":349},[2763],{"type":53,"value":672},{"type":47,"tag":321,"props":2765,"children":2766},{"class":323,"line":675},[2767,2772,2776,2780,2785,2789],{"type":47,"tag":321,"props":2768,"children":2769},{"style":697},[2770],{"type":53,"value":2771},"    label",{"type":47,"tag":321,"props":2773,"children":2774},{"style":349},[2775],{"type":53,"value":772},{"type":47,"tag":321,"props":2777,"children":2778},{"style":349},[2779],{"type":53,"value":496},{"type":47,"tag":321,"props":2781,"children":2782},{"style":333},[2783],{"type":53,"value":2784},"Get Started",{"type":47,"tag":321,"props":2786,"children":2787},{"style":349},[2788],{"type":53,"value":505},{"type":47,"tag":321,"props":2790,"children":2791},{"style":349},[2792],{"type":53,"value":618},{"type":47,"tag":321,"props":2794,"children":2795},{"class":323,"line":748},[2796,2801,2805,2809,2813,2817,2821,2826,2830,2834,2838,2842,2846,2850,2854],{"type":47,"tag":321,"props":2797,"children":2798},{"style":697},[2799],{"type":53,"value":2800},"    redirect",{"type":47,"tag":321,"props":2802,"children":2803},{"style":349},[2804],{"type":53,"value":772},{"type":47,"tag":321,"props":2806,"children":2807},{"style":349},[2808],{"type":53,"value":476},{"type":47,"tag":321,"props":2810,"children":2811},{"style":697},[2812],{"type":53,"value":2699},{"type":47,"tag":321,"props":2814,"children":2815},{"style":349},[2816],{"type":53,"value":772},{"type":47,"tag":321,"props":2818,"children":2819},{"style":349},[2820],{"type":53,"value":496},{"type":47,"tag":321,"props":2822,"children":2823},{"style":333},[2824],{"type":53,"value":2825},"\u002Fget-started",{"type":47,"tag":321,"props":2827,"children":2828},{"style":349},[2829],{"type":53,"value":505},{"type":47,"tag":321,"props":2831,"children":2832},{"style":349},[2833],{"type":53,"value":643},{"type":47,"tag":321,"props":2835,"children":2836},{"style":697},[2837],{"type":53,"value":2725},{"type":47,"tag":321,"props":2839,"children":2840},{"style":349},[2841],{"type":53,"value":772},{"type":47,"tag":321,"props":2843,"children":2844},{"style":349},[2845],{"type":53,"value":496},{"type":47,"tag":321,"props":2847,"children":2848},{"style":333},[2849],{"type":53,"value":2738},{"type":47,"tag":321,"props":2851,"children":2852},{"style":349},[2853],{"type":53,"value":505},{"type":47,"tag":321,"props":2855,"children":2856},{"style":349},[2857],{"type":53,"value":2747},{"type":47,"tag":321,"props":2859,"children":2860},{"class":323,"line":761},[2861],{"type":47,"tag":321,"props":2862,"children":2863},{"style":349},[2864],{"type":53,"value":1033},{"type":47,"tag":321,"props":2866,"children":2867},{"class":323,"line":793},[2868,2873,2877,2881,2886,2890,2894,2899,2903,2907,2912,2916,2920,2924,2929],{"type":47,"tag":321,"props":2869,"children":2870},{"style":697},[2871],{"type":53,"value":2872},"  data",{"type":47,"tag":321,"props":2874,"children":2875},{"style":349},[2876],{"type":53,"value":772},{"type":47,"tag":321,"props":2878,"children":2879},{"style":349},[2880],{"type":53,"value":476},{"type":47,"tag":321,"props":2882,"children":2883},{"style":697},[2884],{"type":53,"value":2885}," entityType",{"type":47,"tag":321,"props":2887,"children":2888},{"style":349},[2889],{"type":53,"value":772},{"type":47,"tag":321,"props":2891,"children":2892},{"style":349},[2893],{"type":53,"value":496},{"type":47,"tag":321,"props":2895,"children":2896},{"style":333},[2897],{"type":53,"value":2898},"user",{"type":47,"tag":321,"props":2900,"children":2901},{"style":349},[2902],{"type":53,"value":505},{"type":47,"tag":321,"props":2904,"children":2905},{"style":349},[2906],{"type":53,"value":643},{"type":47,"tag":321,"props":2908,"children":2909},{"style":697},[2910],{"type":53,"value":2911}," entityId",{"type":47,"tag":321,"props":2913,"children":2914},{"style":349},[2915],{"type":53,"value":772},{"type":47,"tag":321,"props":2917,"children":2918},{"style":433},[2919],{"type":53,"value":648},{"type":47,"tag":321,"props":2921,"children":2922},{"style":349},[2923],{"type":53,"value":248},{"type":47,"tag":321,"props":2925,"children":2926},{"style":433},[2927],{"type":53,"value":2928},"userId ",{"type":47,"tag":321,"props":2930,"children":2931},{"style":349},[2932],{"type":53,"value":2933},"},\n",{"type":47,"tag":321,"props":2935,"children":2936},{"class":323,"line":872},[2937,2941,2945],{"type":47,"tag":321,"props":2938,"children":2939},{"style":349},[2940],{"type":53,"value":855},{"type":47,"tag":321,"props":2942,"children":2943},{"style":433},[2944],{"type":53,"value":2514},{"type":47,"tag":321,"props":2946,"children":2947},{"style":349},[2948],{"type":53,"value":510},{"type":47,"tag":56,"props":2950,"children":2951},{},[2952,2954,2959,2961,2966,2968,2974],{"type":53,"value":2953},"The In-App step ",{"type":47,"tag":71,"props":2955,"children":2956},{},[2957],{"type":53,"value":2958},"returns",{"type":53,"value":2960}," ",{"type":47,"tag":62,"props":2962,"children":2964},{"className":2963},[],[2965],{"type":53,"value":2268},{"type":53,"value":2967}," — use it to drive the ",{"type":47,"tag":62,"props":2969,"children":2971},{"className":2970},[],[2972],{"type":53,"value":2973},"skip",{"type":53,"value":2975}," of subsequent steps.",{"type":47,"tag":305,"props":2977,"children":2979},{"id":2978},"sms-push-chat",[2980],{"type":53,"value":2981},"SMS \u002F Push \u002F Chat",{"type":47,"tag":287,"props":2983,"children":2985},{"className":457,"code":2984,"language":19,"meta":295,"style":295},"await step.sms(\"verification\", async () => ({\n  body: `Your code is ${payload.code}`,\n}));\n\nawait step.push(\"new-message\", async () => ({\n  title: \"New message\",\n  body: payload.preview,\n  data: { messageId: payload.id },\n}));\n\nawait step.chat(\"notify\", async () => ({\n  body: `:rocket: Deploy ${payload.id} succeeded`,\n}));\n",[2986],{"type":47,"tag":62,"props":2987,"children":2988},{"__ignoreMap":295},[2989,3050,3095,3110,3117,3178,3207,3235,3276,3291,3298,3359,3413],{"type":47,"tag":321,"props":2990,"children":2991},{"class":323,"line":23},[2992,2996,3000,3004,3009,3013,3017,3022,3026,3030,3034,3038,3042,3046],{"type":47,"tag":321,"props":2993,"children":2994},{"style":468},[2995],{"type":53,"value":1939},{"type":47,"tag":321,"props":2997,"children":2998},{"style":433},[2999],{"type":53,"value":638},{"type":47,"tag":321,"props":3001,"children":3002},{"style":349},[3003],{"type":53,"value":248},{"type":47,"tag":321,"props":3005,"children":3006},{"style":588},[3007],{"type":53,"value":3008},"sms",{"type":47,"tag":321,"props":3010,"children":3011},{"style":433},[3012],{"type":53,"value":700},{"type":47,"tag":321,"props":3014,"children":3015},{"style":349},[3016],{"type":53,"value":505},{"type":47,"tag":321,"props":3018,"children":3019},{"style":333},[3020],{"type":53,"value":3021},"verification",{"type":47,"tag":321,"props":3023,"children":3024},{"style":349},[3025],{"type":53,"value":505},{"type":47,"tag":321,"props":3027,"children":3028},{"style":349},[3029],{"type":53,"value":643},{"type":47,"tag":321,"props":3031,"children":3032},{"style":572},[3033],{"type":53,"value":722},{"type":47,"tag":321,"props":3035,"children":3036},{"style":349},[3037],{"type":53,"value":2581},{"type":47,"tag":321,"props":3039,"children":3040},{"style":572},[3041],{"type":53,"value":667},{"type":47,"tag":321,"props":3043,"children":3044},{"style":433},[3045],{"type":53,"value":727},{"type":47,"tag":321,"props":3047,"children":3048},{"style":349},[3049],{"type":53,"value":926},{"type":47,"tag":321,"props":3051,"children":3052},{"class":323,"line":27},[3053,3057,3061,3065,3070,3074,3078,3082,3086,3091],{"type":47,"tag":321,"props":3054,"children":3055},{"style":697},[3056],{"type":53,"value":2385},{"type":47,"tag":321,"props":3058,"children":3059},{"style":349},[3060],{"type":53,"value":772},{"type":47,"tag":321,"props":3062,"children":3063},{"style":349},[3064],{"type":53,"value":808},{"type":47,"tag":321,"props":3066,"children":3067},{"style":333},[3068],{"type":53,"value":3069},"Your code is ",{"type":47,"tag":321,"props":3071,"children":3072},{"style":349},[3073],{"type":53,"value":818},{"type":47,"tag":321,"props":3075,"children":3076},{"style":433},[3077],{"type":53,"value":1657},{"type":47,"tag":321,"props":3079,"children":3080},{"style":349},[3081],{"type":53,"value":248},{"type":47,"tag":321,"props":3083,"children":3084},{"style":433},[3085],{"type":53,"value":62},{"type":47,"tag":321,"props":3087,"children":3088},{"style":349},[3089],{"type":53,"value":3090},"}`",{"type":47,"tag":321,"props":3092,"children":3093},{"style":349},[3094],{"type":53,"value":618},{"type":47,"tag":321,"props":3096,"children":3097},{"class":323,"line":554},[3098,3102,3106],{"type":47,"tag":321,"props":3099,"children":3100},{"style":349},[3101],{"type":53,"value":855},{"type":47,"tag":321,"props":3103,"children":3104},{"style":433},[3105],{"type":53,"value":2514},{"type":47,"tag":321,"props":3107,"children":3108},{"style":349},[3109],{"type":53,"value":510},{"type":47,"tag":321,"props":3111,"children":3112},{"class":323,"line":563},[3113],{"type":47,"tag":321,"props":3114,"children":3115},{"emptyLinePlaceholder":41},[3116],{"type":53,"value":560},{"type":47,"tag":321,"props":3118,"children":3119},{"class":323,"line":598},[3120,3124,3128,3132,3137,3141,3145,3150,3154,3158,3162,3166,3170,3174],{"type":47,"tag":321,"props":3121,"children":3122},{"style":468},[3123],{"type":53,"value":1939},{"type":47,"tag":321,"props":3125,"children":3126},{"style":433},[3127],{"type":53,"value":638},{"type":47,"tag":321,"props":3129,"children":3130},{"style":349},[3131],{"type":53,"value":248},{"type":47,"tag":321,"props":3133,"children":3134},{"style":588},[3135],{"type":53,"value":3136},"push",{"type":47,"tag":321,"props":3138,"children":3139},{"style":433},[3140],{"type":53,"value":700},{"type":47,"tag":321,"props":3142,"children":3143},{"style":349},[3144],{"type":53,"value":505},{"type":47,"tag":321,"props":3146,"children":3147},{"style":333},[3148],{"type":53,"value":3149},"new-message",{"type":47,"tag":321,"props":3151,"children":3152},{"style":349},[3153],{"type":53,"value":505},{"type":47,"tag":321,"props":3155,"children":3156},{"style":349},[3157],{"type":53,"value":643},{"type":47,"tag":321,"props":3159,"children":3160},{"style":572},[3161],{"type":53,"value":722},{"type":47,"tag":321,"props":3163,"children":3164},{"style":349},[3165],{"type":53,"value":2581},{"type":47,"tag":321,"props":3167,"children":3168},{"style":572},[3169],{"type":53,"value":667},{"type":47,"tag":321,"props":3171,"children":3172},{"style":433},[3173],{"type":53,"value":727},{"type":47,"tag":321,"props":3175,"children":3176},{"style":349},[3177],{"type":53,"value":926},{"type":47,"tag":321,"props":3179,"children":3180},{"class":323,"line":621},[3181,3186,3190,3194,3199,3203],{"type":47,"tag":321,"props":3182,"children":3183},{"style":697},[3184],{"type":53,"value":3185},"  title",{"type":47,"tag":321,"props":3187,"children":3188},{"style":349},[3189],{"type":53,"value":772},{"type":47,"tag":321,"props":3191,"children":3192},{"style":349},[3193],{"type":53,"value":496},{"type":47,"tag":321,"props":3195,"children":3196},{"style":333},[3197],{"type":53,"value":3198},"New message",{"type":47,"tag":321,"props":3200,"children":3201},{"style":349},[3202],{"type":53,"value":505},{"type":47,"tag":321,"props":3204,"children":3205},{"style":349},[3206],{"type":53,"value":618},{"type":47,"tag":321,"props":3208,"children":3209},{"class":323,"line":675},[3210,3214,3218,3222,3226,3231],{"type":47,"tag":321,"props":3211,"children":3212},{"style":697},[3213],{"type":53,"value":2385},{"type":47,"tag":321,"props":3215,"children":3216},{"style":349},[3217],{"type":53,"value":772},{"type":47,"tag":321,"props":3219,"children":3220},{"style":433},[3221],{"type":53,"value":648},{"type":47,"tag":321,"props":3223,"children":3224},{"style":349},[3225],{"type":53,"value":248},{"type":47,"tag":321,"props":3227,"children":3228},{"style":433},[3229],{"type":53,"value":3230},"preview",{"type":47,"tag":321,"props":3232,"children":3233},{"style":349},[3234],{"type":53,"value":618},{"type":47,"tag":321,"props":3236,"children":3237},{"class":323,"line":748},[3238,3242,3246,3250,3255,3259,3263,3267,3272],{"type":47,"tag":321,"props":3239,"children":3240},{"style":697},[3241],{"type":53,"value":2872},{"type":47,"tag":321,"props":3243,"children":3244},{"style":349},[3245],{"type":53,"value":772},{"type":47,"tag":321,"props":3247,"children":3248},{"style":349},[3249],{"type":53,"value":476},{"type":47,"tag":321,"props":3251,"children":3252},{"style":697},[3253],{"type":53,"value":3254}," messageId",{"type":47,"tag":321,"props":3256,"children":3257},{"style":349},[3258],{"type":53,"value":772},{"type":47,"tag":321,"props":3260,"children":3261},{"style":433},[3262],{"type":53,"value":648},{"type":47,"tag":321,"props":3264,"children":3265},{"style":349},[3266],{"type":53,"value":248},{"type":47,"tag":321,"props":3268,"children":3269},{"style":433},[3270],{"type":53,"value":3271},"id ",{"type":47,"tag":321,"props":3273,"children":3274},{"style":349},[3275],{"type":53,"value":2933},{"type":47,"tag":321,"props":3277,"children":3278},{"class":323,"line":761},[3279,3283,3287],{"type":47,"tag":321,"props":3280,"children":3281},{"style":349},[3282],{"type":53,"value":855},{"type":47,"tag":321,"props":3284,"children":3285},{"style":433},[3286],{"type":53,"value":2514},{"type":47,"tag":321,"props":3288,"children":3289},{"style":349},[3290],{"type":53,"value":510},{"type":47,"tag":321,"props":3292,"children":3293},{"class":323,"line":793},[3294],{"type":47,"tag":321,"props":3295,"children":3296},{"emptyLinePlaceholder":41},[3297],{"type":53,"value":560},{"type":47,"tag":321,"props":3299,"children":3300},{"class":323,"line":872},[3301,3305,3309,3313,3318,3322,3326,3331,3335,3339,3343,3347,3351,3355],{"type":47,"tag":321,"props":3302,"children":3303},{"style":468},[3304],{"type":53,"value":1939},{"type":47,"tag":321,"props":3306,"children":3307},{"style":433},[3308],{"type":53,"value":638},{"type":47,"tag":321,"props":3310,"children":3311},{"style":349},[3312],{"type":53,"value":248},{"type":47,"tag":321,"props":3314,"children":3315},{"style":588},[3316],{"type":53,"value":3317},"chat",{"type":47,"tag":321,"props":3319,"children":3320},{"style":433},[3321],{"type":53,"value":700},{"type":47,"tag":321,"props":3323,"children":3324},{"style":349},[3325],{"type":53,"value":505},{"type":47,"tag":321,"props":3327,"children":3328},{"style":333},[3329],{"type":53,"value":3330},"notify",{"type":47,"tag":321,"props":3332,"children":3333},{"style":349},[3334],{"type":53,"value":505},{"type":47,"tag":321,"props":3336,"children":3337},{"style":349},[3338],{"type":53,"value":643},{"type":47,"tag":321,"props":3340,"children":3341},{"style":572},[3342],{"type":53,"value":722},{"type":47,"tag":321,"props":3344,"children":3345},{"style":349},[3346],{"type":53,"value":2581},{"type":47,"tag":321,"props":3348,"children":3349},{"style":572},[3350],{"type":53,"value":667},{"type":47,"tag":321,"props":3352,"children":3353},{"style":433},[3354],{"type":53,"value":727},{"type":47,"tag":321,"props":3356,"children":3357},{"style":349},[3358],{"type":53,"value":926},{"type":47,"tag":321,"props":3360,"children":3361},{"class":323,"line":881},[3362,3366,3370,3374,3379,3383,3387,3391,3396,3400,3405,3409],{"type":47,"tag":321,"props":3363,"children":3364},{"style":697},[3365],{"type":53,"value":2385},{"type":47,"tag":321,"props":3367,"children":3368},{"style":349},[3369],{"type":53,"value":772},{"type":47,"tag":321,"props":3371,"children":3372},{"style":349},[3373],{"type":53,"value":808},{"type":47,"tag":321,"props":3375,"children":3376},{"style":333},[3377],{"type":53,"value":3378},":rocket: Deploy ",{"type":47,"tag":321,"props":3380,"children":3381},{"style":349},[3382],{"type":53,"value":818},{"type":47,"tag":321,"props":3384,"children":3385},{"style":433},[3386],{"type":53,"value":1657},{"type":47,"tag":321,"props":3388,"children":3389},{"style":349},[3390],{"type":53,"value":248},{"type":47,"tag":321,"props":3392,"children":3393},{"style":433},[3394],{"type":53,"value":3395},"id",{"type":47,"tag":321,"props":3397,"children":3398},{"style":349},[3399],{"type":53,"value":855},{"type":47,"tag":321,"props":3401,"children":3402},{"style":333},[3403],{"type":53,"value":3404}," succeeded",{"type":47,"tag":321,"props":3406,"children":3407},{"style":349},[3408],{"type":53,"value":865},{"type":47,"tag":321,"props":3410,"children":3411},{"style":349},[3412],{"type":53,"value":618},{"type":47,"tag":321,"props":3414,"children":3415},{"class":323,"line":894},[3416,3420,3424],{"type":47,"tag":321,"props":3417,"children":3418},{"style":349},[3419],{"type":53,"value":855},{"type":47,"tag":321,"props":3421,"children":3422},{"style":433},[3423],{"type":53,"value":2514},{"type":47,"tag":321,"props":3425,"children":3426},{"style":349},[3427],{"type":53,"value":510},{"type":47,"tag":107,"props":3429,"children":3431},{"id":3430},"action-steps",[3432],{"type":53,"value":3433},"Action Steps",{"type":47,"tag":305,"props":3435,"children":3437},{"id":3436},"stepdelay",[3438],{"type":47,"tag":62,"props":3439,"children":3441},{"className":3440},[],[3442],{"type":53,"value":1871},{"type":47,"tag":56,"props":3444,"children":3445},{},[3446],{"type":53,"value":3447},"Pause workflow execution before the next step.",{"type":47,"tag":287,"props":3449,"children":3451},{"className":457,"code":3450,"language":19,"meta":295,"style":295},"await step.delay(\"wait-a-day\", async () => ({\n  unit: \"days\",\n  amount: 1,\n}));\n",[3452],{"type":47,"tag":62,"props":3453,"children":3454},{"__ignoreMap":295},[3455,3516,3545,3567],{"type":47,"tag":321,"props":3456,"children":3457},{"class":323,"line":23},[3458,3462,3466,3470,3475,3479,3483,3488,3492,3496,3500,3504,3508,3512],{"type":47,"tag":321,"props":3459,"children":3460},{"style":468},[3461],{"type":53,"value":1939},{"type":47,"tag":321,"props":3463,"children":3464},{"style":433},[3465],{"type":53,"value":638},{"type":47,"tag":321,"props":3467,"children":3468},{"style":349},[3469],{"type":53,"value":248},{"type":47,"tag":321,"props":3471,"children":3472},{"style":588},[3473],{"type":53,"value":3474},"delay",{"type":47,"tag":321,"props":3476,"children":3477},{"style":433},[3478],{"type":53,"value":700},{"type":47,"tag":321,"props":3480,"children":3481},{"style":349},[3482],{"type":53,"value":505},{"type":47,"tag":321,"props":3484,"children":3485},{"style":333},[3486],{"type":53,"value":3487},"wait-a-day",{"type":47,"tag":321,"props":3489,"children":3490},{"style":349},[3491],{"type":53,"value":505},{"type":47,"tag":321,"props":3493,"children":3494},{"style":349},[3495],{"type":53,"value":643},{"type":47,"tag":321,"props":3497,"children":3498},{"style":572},[3499],{"type":53,"value":722},{"type":47,"tag":321,"props":3501,"children":3502},{"style":349},[3503],{"type":53,"value":2581},{"type":47,"tag":321,"props":3505,"children":3506},{"style":572},[3507],{"type":53,"value":667},{"type":47,"tag":321,"props":3509,"children":3510},{"style":433},[3511],{"type":53,"value":727},{"type":47,"tag":321,"props":3513,"children":3514},{"style":349},[3515],{"type":53,"value":926},{"type":47,"tag":321,"props":3517,"children":3518},{"class":323,"line":27},[3519,3524,3528,3532,3537,3541],{"type":47,"tag":321,"props":3520,"children":3521},{"style":697},[3522],{"type":53,"value":3523},"  unit",{"type":47,"tag":321,"props":3525,"children":3526},{"style":349},[3527],{"type":53,"value":772},{"type":47,"tag":321,"props":3529,"children":3530},{"style":349},[3531],{"type":53,"value":496},{"type":47,"tag":321,"props":3533,"children":3534},{"style":333},[3535],{"type":53,"value":3536},"days",{"type":47,"tag":321,"props":3538,"children":3539},{"style":349},[3540],{"type":53,"value":505},{"type":47,"tag":321,"props":3542,"children":3543},{"style":349},[3544],{"type":53,"value":618},{"type":47,"tag":321,"props":3546,"children":3547},{"class":323,"line":554},[3548,3553,3557,3563],{"type":47,"tag":321,"props":3549,"children":3550},{"style":697},[3551],{"type":53,"value":3552},"  amount",{"type":47,"tag":321,"props":3554,"children":3555},{"style":349},[3556],{"type":53,"value":772},{"type":47,"tag":321,"props":3558,"children":3560},{"style":3559},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[3561],{"type":53,"value":3562}," 1",{"type":47,"tag":321,"props":3564,"children":3565},{"style":349},[3566],{"type":53,"value":618},{"type":47,"tag":321,"props":3568,"children":3569},{"class":323,"line":563},[3570,3574,3578],{"type":47,"tag":321,"props":3571,"children":3572},{"style":349},[3573],{"type":53,"value":855},{"type":47,"tag":321,"props":3575,"children":3576},{"style":433},[3577],{"type":53,"value":2514},{"type":47,"tag":321,"props":3579,"children":3580},{"style":349},[3581],{"type":53,"value":510},{"type":47,"tag":56,"props":3583,"children":3584},{},[3585,3587,3593,3595,3601,3602,3608,3609,3615,3616,3621,3622,3628,3629,3635],{"type":53,"value":3586},"Supported ",{"type":47,"tag":62,"props":3588,"children":3590},{"className":3589},[],[3591],{"type":53,"value":3592},"unit",{"type":53,"value":3594}," values: ",{"type":47,"tag":62,"props":3596,"children":3598},{"className":3597},[],[3599],{"type":53,"value":3600},"seconds",{"type":53,"value":1865},{"type":47,"tag":62,"props":3603,"children":3605},{"className":3604},[],[3606],{"type":53,"value":3607},"minutes",{"type":53,"value":1865},{"type":47,"tag":62,"props":3610,"children":3612},{"className":3611},[],[3613],{"type":53,"value":3614},"hours",{"type":53,"value":1865},{"type":47,"tag":62,"props":3617,"children":3619},{"className":3618},[],[3620],{"type":53,"value":3536},{"type":53,"value":1865},{"type":47,"tag":62,"props":3623,"children":3625},{"className":3624},[],[3626],{"type":53,"value":3627},"weeks",{"type":53,"value":1865},{"type":47,"tag":62,"props":3630,"children":3632},{"className":3631},[],[3633],{"type":53,"value":3634},"months",{"type":53,"value":248},{"type":47,"tag":305,"props":3637,"children":3639},{"id":3638},"stepdigest",[3640],{"type":47,"tag":62,"props":3641,"children":3643},{"className":3642},[],[3644],{"type":53,"value":1878},{"type":47,"tag":56,"props":3646,"children":3647},{},[3648],{"type":53,"value":3649},"Aggregate multiple triggers into a single notification over a window.",{"type":47,"tag":287,"props":3651,"children":3653},{"className":457,"code":3652,"language":19,"meta":295,"style":295},"const { events } = await step.digest(\"daily\", async () => ({\n  unit: \"days\",\n  amount: 1,\n  digestKey: payload.projectId, \u002F\u002F optional — group by custom key\n}));\n\nawait step.email(\"summary\", async () => ({\n  subject: `${events.length} updates today`,\n  body: render(\u003CDigestEmail events={events} \u002F>),\n}));\n",[3654],{"type":47,"tag":62,"props":3655,"children":3656},{"__ignoreMap":295},[3657,3742,3769,3788,3823,3838,3845,3905,3952,4005],{"type":47,"tag":321,"props":3658,"children":3659},{"class":323,"line":23},[3660,3665,3669,3674,3678,3683,3688,3692,3696,3701,3705,3709,3714,3718,3722,3726,3730,3734,3738],{"type":47,"tag":321,"props":3661,"children":3662},{"style":572},[3663],{"type":53,"value":3664},"const",{"type":47,"tag":321,"props":3666,"children":3667},{"style":349},[3668],{"type":53,"value":476},{"type":47,"tag":321,"props":3670,"children":3671},{"style":433},[3672],{"type":53,"value":3673}," events ",{"type":47,"tag":321,"props":3675,"children":3676},{"style":349},[3677],{"type":53,"value":855},{"type":47,"tag":321,"props":3679,"children":3680},{"style":349},[3681],{"type":53,"value":3682}," =",{"type":47,"tag":321,"props":3684,"children":3685},{"style":468},[3686],{"type":53,"value":3687}," await",{"type":47,"tag":321,"props":3689,"children":3690},{"style":433},[3691],{"type":53,"value":638},{"type":47,"tag":321,"props":3693,"children":3694},{"style":349},[3695],{"type":53,"value":248},{"type":47,"tag":321,"props":3697,"children":3698},{"style":588},[3699],{"type":53,"value":3700},"digest",{"type":47,"tag":321,"props":3702,"children":3703},{"style":433},[3704],{"type":53,"value":700},{"type":47,"tag":321,"props":3706,"children":3707},{"style":349},[3708],{"type":53,"value":505},{"type":47,"tag":321,"props":3710,"children":3711},{"style":333},[3712],{"type":53,"value":3713},"daily",{"type":47,"tag":321,"props":3715,"children":3716},{"style":349},[3717],{"type":53,"value":505},{"type":47,"tag":321,"props":3719,"children":3720},{"style":349},[3721],{"type":53,"value":643},{"type":47,"tag":321,"props":3723,"children":3724},{"style":572},[3725],{"type":53,"value":722},{"type":47,"tag":321,"props":3727,"children":3728},{"style":349},[3729],{"type":53,"value":2581},{"type":47,"tag":321,"props":3731,"children":3732},{"style":572},[3733],{"type":53,"value":667},{"type":47,"tag":321,"props":3735,"children":3736},{"style":433},[3737],{"type":53,"value":727},{"type":47,"tag":321,"props":3739,"children":3740},{"style":349},[3741],{"type":53,"value":926},{"type":47,"tag":321,"props":3743,"children":3744},{"class":323,"line":27},[3745,3749,3753,3757,3761,3765],{"type":47,"tag":321,"props":3746,"children":3747},{"style":697},[3748],{"type":53,"value":3523},{"type":47,"tag":321,"props":3750,"children":3751},{"style":349},[3752],{"type":53,"value":772},{"type":47,"tag":321,"props":3754,"children":3755},{"style":349},[3756],{"type":53,"value":496},{"type":47,"tag":321,"props":3758,"children":3759},{"style":333},[3760],{"type":53,"value":3536},{"type":47,"tag":321,"props":3762,"children":3763},{"style":349},[3764],{"type":53,"value":505},{"type":47,"tag":321,"props":3766,"children":3767},{"style":349},[3768],{"type":53,"value":618},{"type":47,"tag":321,"props":3770,"children":3771},{"class":323,"line":554},[3772,3776,3780,3784],{"type":47,"tag":321,"props":3773,"children":3774},{"style":697},[3775],{"type":53,"value":3552},{"type":47,"tag":321,"props":3777,"children":3778},{"style":349},[3779],{"type":53,"value":772},{"type":47,"tag":321,"props":3781,"children":3782},{"style":3559},[3783],{"type":53,"value":3562},{"type":47,"tag":321,"props":3785,"children":3786},{"style":349},[3787],{"type":53,"value":618},{"type":47,"tag":321,"props":3789,"children":3790},{"class":323,"line":563},[3791,3796,3800,3804,3808,3813,3817],{"type":47,"tag":321,"props":3792,"children":3793},{"style":697},[3794],{"type":53,"value":3795},"  digestKey",{"type":47,"tag":321,"props":3797,"children":3798},{"style":349},[3799],{"type":53,"value":772},{"type":47,"tag":321,"props":3801,"children":3802},{"style":433},[3803],{"type":53,"value":648},{"type":47,"tag":321,"props":3805,"children":3806},{"style":349},[3807],{"type":53,"value":248},{"type":47,"tag":321,"props":3809,"children":3810},{"style":433},[3811],{"type":53,"value":3812},"projectId",{"type":47,"tag":321,"props":3814,"children":3815},{"style":349},[3816],{"type":53,"value":643},{"type":47,"tag":321,"props":3818,"children":3820},{"style":3819},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[3821],{"type":53,"value":3822}," \u002F\u002F optional — group by custom key\n",{"type":47,"tag":321,"props":3824,"children":3825},{"class":323,"line":598},[3826,3830,3834],{"type":47,"tag":321,"props":3827,"children":3828},{"style":349},[3829],{"type":53,"value":855},{"type":47,"tag":321,"props":3831,"children":3832},{"style":433},[3833],{"type":53,"value":2514},{"type":47,"tag":321,"props":3835,"children":3836},{"style":349},[3837],{"type":53,"value":510},{"type":47,"tag":321,"props":3839,"children":3840},{"class":323,"line":621},[3841],{"type":47,"tag":321,"props":3842,"children":3843},{"emptyLinePlaceholder":41},[3844],{"type":53,"value":560},{"type":47,"tag":321,"props":3846,"children":3847},{"class":323,"line":675},[3848,3852,3856,3860,3864,3868,3872,3877,3881,3885,3889,3893,3897,3901],{"type":47,"tag":321,"props":3849,"children":3850},{"style":468},[3851],{"type":53,"value":1939},{"type":47,"tag":321,"props":3853,"children":3854},{"style":433},[3855],{"type":53,"value":638},{"type":47,"tag":321,"props":3857,"children":3858},{"style":349},[3859],{"type":53,"value":248},{"type":47,"tag":321,"props":3861,"children":3862},{"style":588},[3863],{"type":53,"value":694},{"type":47,"tag":321,"props":3865,"children":3866},{"style":433},[3867],{"type":53,"value":700},{"type":47,"tag":321,"props":3869,"children":3870},{"style":349},[3871],{"type":53,"value":505},{"type":47,"tag":321,"props":3873,"children":3874},{"style":333},[3875],{"type":53,"value":3876},"summary",{"type":47,"tag":321,"props":3878,"children":3879},{"style":349},[3880],{"type":53,"value":505},{"type":47,"tag":321,"props":3882,"children":3883},{"style":349},[3884],{"type":53,"value":643},{"type":47,"tag":321,"props":3886,"children":3887},{"style":572},[3888],{"type":53,"value":722},{"type":47,"tag":321,"props":3890,"children":3891},{"style":349},[3892],{"type":53,"value":2581},{"type":47,"tag":321,"props":3894,"children":3895},{"style":572},[3896],{"type":53,"value":667},{"type":47,"tag":321,"props":3898,"children":3899},{"style":433},[3900],{"type":53,"value":727},{"type":47,"tag":321,"props":3902,"children":3903},{"style":349},[3904],{"type":53,"value":926},{"type":47,"tag":321,"props":3906,"children":3907},{"class":323,"line":748},[3908,3912,3916,3921,3926,3930,3935,3939,3944,3948],{"type":47,"tag":321,"props":3909,"children":3910},{"style":697},[3911],{"type":53,"value":2357},{"type":47,"tag":321,"props":3913,"children":3914},{"style":349},[3915],{"type":53,"value":772},{"type":47,"tag":321,"props":3917,"children":3918},{"style":349},[3919],{"type":53,"value":3920}," `${",{"type":47,"tag":321,"props":3922,"children":3923},{"style":433},[3924],{"type":53,"value":3925},"events",{"type":47,"tag":321,"props":3927,"children":3928},{"style":349},[3929],{"type":53,"value":248},{"type":47,"tag":321,"props":3931,"children":3932},{"style":433},[3933],{"type":53,"value":3934},"length",{"type":47,"tag":321,"props":3936,"children":3937},{"style":349},[3938],{"type":53,"value":855},{"type":47,"tag":321,"props":3940,"children":3941},{"style":333},[3942],{"type":53,"value":3943}," updates today",{"type":47,"tag":321,"props":3945,"children":3946},{"style":349},[3947],{"type":53,"value":865},{"type":47,"tag":321,"props":3949,"children":3950},{"style":349},[3951],{"type":53,"value":618},{"type":47,"tag":321,"props":3953,"children":3954},{"class":323,"line":761},[3955,3959,3963,3967,3971,3976,3981,3985,3989,3993,3997,4001],{"type":47,"tag":321,"props":3956,"children":3957},{"style":697},[3958],{"type":53,"value":2385},{"type":47,"tag":321,"props":3960,"children":3961},{"style":349},[3962],{"type":53,"value":772},{"type":47,"tag":321,"props":3964,"children":3965},{"style":588},[3966],{"type":53,"value":2394},{"type":47,"tag":321,"props":3968,"children":3969},{"style":433},[3970],{"type":53,"value":2399},{"type":47,"tag":321,"props":3972,"children":3973},{"style":327},[3974],{"type":53,"value":3975},"DigestEmail",{"type":47,"tag":321,"props":3977,"children":3978},{"style":327},[3979],{"type":53,"value":3980}," events",{"type":47,"tag":321,"props":3982,"children":3983},{"style":433},[3984],{"type":53,"value":585},{"type":47,"tag":321,"props":3986,"children":3987},{"style":349},[3988],{"type":53,"value":2418},{"type":47,"tag":321,"props":3990,"children":3991},{"style":697},[3992],{"type":53,"value":3925},{"type":47,"tag":321,"props":3994,"children":3995},{"style":349},[3996],{"type":53,"value":855},{"type":47,"tag":321,"props":3998,"children":3999},{"style":433},[4000],{"type":53,"value":2440},{"type":47,"tag":321,"props":4002,"children":4003},{"style":349},[4004],{"type":53,"value":618},{"type":47,"tag":321,"props":4006,"children":4007},{"class":323,"line":793},[4008,4012,4016],{"type":47,"tag":321,"props":4009,"children":4010},{"style":349},[4011],{"type":53,"value":855},{"type":47,"tag":321,"props":4013,"children":4014},{"style":433},[4015],{"type":53,"value":2514},{"type":47,"tag":321,"props":4017,"children":4018},{"style":349},[4019],{"type":53,"value":510},{"type":47,"tag":56,"props":4021,"children":4022},{},[4023,4024,4030,4032,4037,4039,4045,4047,4053,4055,4060,4062,4068],{"type":53,"value":60},{"type":47,"tag":62,"props":4025,"children":4027},{"className":4026},[],[4028],{"type":53,"value":4029},"cron: \"0 0 * * *\"",{"type":53,"value":4031}," instead of ",{"type":47,"tag":62,"props":4033,"children":4035},{"className":4034},[],[4036],{"type":53,"value":3592},{"type":53,"value":4038},"\u002F",{"type":47,"tag":62,"props":4040,"children":4042},{"className":4041},[],[4043],{"type":53,"value":4044},"amount",{"type":53,"value":4046}," for cron-based digests. Each digest event has ",{"type":47,"tag":62,"props":4048,"children":4050},{"className":4049},[],[4051],{"type":53,"value":4052},"{ id, time, payload }",{"type":53,"value":4054},". ",{"type":47,"tag":71,"props":4056,"children":4057},{},[4058],{"type":53,"value":4059},"Only one digest per workflow",{"type":53,"value":4061}," — chain a second workflow via ",{"type":47,"tag":62,"props":4063,"children":4065},{"className":4064},[],[4066],{"type":53,"value":4067},"step.custom",{"type":53,"value":4069}," if you need a two-stage digest.",{"type":47,"tag":305,"props":4071,"children":4073},{"id":4072},"stephttp",[4074],{"type":47,"tag":62,"props":4075,"children":4077},{"className":4076},[],[4078],{"type":53,"value":4079},"step.http",{"type":47,"tag":56,"props":4081,"children":4082},{},[4083],{"type":53,"value":4084},"Call an external HTTP endpoint as part of the workflow — webhook fan-out or just-in-time data fetch.",{"type":47,"tag":287,"props":4086,"children":4088},{"className":457,"code":4087,"language":19,"meta":295,"style":295},"const plan = await step.http(\"fetch-plan\", async () => ({\n  method: \"GET\",\n  url: `https:\u002F\u002Fapi.example.com\u002Fusers\u002F${payload.userId}\u002Fplan`,\n  responseBodySchema: {\n    type: \"object\",\n    properties: { planName: { type: \"string\" }, renewalDate: { type: \"string\" } },\n    required: [\"planName\", \"renewalDate\"],\n  } as const,\n}));\n\nawait step.email(\"notify\", async () => ({\n  subject: `Your ${plan.planName} plan`,\n  body: `Renews on ${plan.renewalDate}.`,\n}));\n",[4089],{"type":47,"tag":62,"props":4090,"children":4091},{"__ignoreMap":295},[4092,4166,4195,4250,4266,4294,4390,4444,4465,4480,4487,4546,4600,4652],{"type":47,"tag":321,"props":4093,"children":4094},{"class":323,"line":23},[4095,4099,4104,4108,4112,4116,4120,4125,4129,4133,4138,4142,4146,4150,4154,4158,4162],{"type":47,"tag":321,"props":4096,"children":4097},{"style":572},[4098],{"type":53,"value":3664},{"type":47,"tag":321,"props":4100,"children":4101},{"style":433},[4102],{"type":53,"value":4103}," plan ",{"type":47,"tag":321,"props":4105,"children":4106},{"style":349},[4107],{"type":53,"value":585},{"type":47,"tag":321,"props":4109,"children":4110},{"style":468},[4111],{"type":53,"value":3687},{"type":47,"tag":321,"props":4113,"children":4114},{"style":433},[4115],{"type":53,"value":638},{"type":47,"tag":321,"props":4117,"children":4118},{"style":349},[4119],{"type":53,"value":248},{"type":47,"tag":321,"props":4121,"children":4122},{"style":588},[4123],{"type":53,"value":4124},"http",{"type":47,"tag":321,"props":4126,"children":4127},{"style":433},[4128],{"type":53,"value":700},{"type":47,"tag":321,"props":4130,"children":4131},{"style":349},[4132],{"type":53,"value":505},{"type":47,"tag":321,"props":4134,"children":4135},{"style":333},[4136],{"type":53,"value":4137},"fetch-plan",{"type":47,"tag":321,"props":4139,"children":4140},{"style":349},[4141],{"type":53,"value":505},{"type":47,"tag":321,"props":4143,"children":4144},{"style":349},[4145],{"type":53,"value":643},{"type":47,"tag":321,"props":4147,"children":4148},{"style":572},[4149],{"type":53,"value":722},{"type":47,"tag":321,"props":4151,"children":4152},{"style":349},[4153],{"type":53,"value":2581},{"type":47,"tag":321,"props":4155,"children":4156},{"style":572},[4157],{"type":53,"value":667},{"type":47,"tag":321,"props":4159,"children":4160},{"style":433},[4161],{"type":53,"value":727},{"type":47,"tag":321,"props":4163,"children":4164},{"style":349},[4165],{"type":53,"value":926},{"type":47,"tag":321,"props":4167,"children":4168},{"class":323,"line":27},[4169,4174,4178,4182,4187,4191],{"type":47,"tag":321,"props":4170,"children":4171},{"style":697},[4172],{"type":53,"value":4173},"  method",{"type":47,"tag":321,"props":4175,"children":4176},{"style":349},[4177],{"type":53,"value":772},{"type":47,"tag":321,"props":4179,"children":4180},{"style":349},[4181],{"type":53,"value":496},{"type":47,"tag":321,"props":4183,"children":4184},{"style":333},[4185],{"type":53,"value":4186},"GET",{"type":47,"tag":321,"props":4188,"children":4189},{"style":349},[4190],{"type":53,"value":505},{"type":47,"tag":321,"props":4192,"children":4193},{"style":349},[4194],{"type":53,"value":618},{"type":47,"tag":321,"props":4196,"children":4197},{"class":323,"line":554},[4198,4203,4207,4211,4216,4220,4224,4228,4233,4237,4242,4246],{"type":47,"tag":321,"props":4199,"children":4200},{"style":697},[4201],{"type":53,"value":4202},"  url",{"type":47,"tag":321,"props":4204,"children":4205},{"style":349},[4206],{"type":53,"value":772},{"type":47,"tag":321,"props":4208,"children":4209},{"style":349},[4210],{"type":53,"value":808},{"type":47,"tag":321,"props":4212,"children":4213},{"style":333},[4214],{"type":53,"value":4215},"https:\u002F\u002Fapi.example.com\u002Fusers\u002F",{"type":47,"tag":321,"props":4217,"children":4218},{"style":349},[4219],{"type":53,"value":818},{"type":47,"tag":321,"props":4221,"children":4222},{"style":433},[4223],{"type":53,"value":1657},{"type":47,"tag":321,"props":4225,"children":4226},{"style":349},[4227],{"type":53,"value":248},{"type":47,"tag":321,"props":4229,"children":4230},{"style":433},[4231],{"type":53,"value":4232},"userId",{"type":47,"tag":321,"props":4234,"children":4235},{"style":349},[4236],{"type":53,"value":855},{"type":47,"tag":321,"props":4238,"children":4239},{"style":333},[4240],{"type":53,"value":4241},"\u002Fplan",{"type":47,"tag":321,"props":4243,"children":4244},{"style":349},[4245],{"type":53,"value":865},{"type":47,"tag":321,"props":4247,"children":4248},{"style":349},[4249],{"type":53,"value":618},{"type":47,"tag":321,"props":4251,"children":4252},{"class":323,"line":563},[4253,4258,4262],{"type":47,"tag":321,"props":4254,"children":4255},{"style":697},[4256],{"type":53,"value":4257},"  responseBodySchema",{"type":47,"tag":321,"props":4259,"children":4260},{"style":349},[4261],{"type":53,"value":772},{"type":47,"tag":321,"props":4263,"children":4264},{"style":349},[4265],{"type":53,"value":672},{"type":47,"tag":321,"props":4267,"children":4268},{"class":323,"line":598},[4269,4274,4278,4282,4286,4290],{"type":47,"tag":321,"props":4270,"children":4271},{"style":697},[4272],{"type":53,"value":4273},"    type",{"type":47,"tag":321,"props":4275,"children":4276},{"style":349},[4277],{"type":53,"value":772},{"type":47,"tag":321,"props":4279,"children":4280},{"style":349},[4281],{"type":53,"value":496},{"type":47,"tag":321,"props":4283,"children":4284},{"style":333},[4285],{"type":53,"value":917},{"type":47,"tag":321,"props":4287,"children":4288},{"style":349},[4289],{"type":53,"value":505},{"type":47,"tag":321,"props":4291,"children":4292},{"style":349},[4293],{"type":53,"value":618},{"type":47,"tag":321,"props":4295,"children":4296},{"class":323,"line":621},[4297,4302,4306,4310,4315,4319,4323,4328,4332,4336,4340,4344,4349,4354,4358,4362,4366,4370,4374,4378,4382,4386],{"type":47,"tag":321,"props":4298,"children":4299},{"style":697},[4300],{"type":53,"value":4301},"    properties",{"type":47,"tag":321,"props":4303,"children":4304},{"style":349},[4305],{"type":53,"value":772},{"type":47,"tag":321,"props":4307,"children":4308},{"style":349},[4309],{"type":53,"value":476},{"type":47,"tag":321,"props":4311,"children":4312},{"style":697},[4313],{"type":53,"value":4314}," planName",{"type":47,"tag":321,"props":4316,"children":4317},{"style":349},[4318],{"type":53,"value":772},{"type":47,"tag":321,"props":4320,"children":4321},{"style":349},[4322],{"type":53,"value":476},{"type":47,"tag":321,"props":4324,"children":4325},{"style":697},[4326],{"type":53,"value":4327}," type",{"type":47,"tag":321,"props":4329,"children":4330},{"style":349},[4331],{"type":53,"value":772},{"type":47,"tag":321,"props":4333,"children":4334},{"style":349},[4335],{"type":53,"value":496},{"type":47,"tag":321,"props":4337,"children":4338},{"style":333},[4339],{"type":53,"value":951},{"type":47,"tag":321,"props":4341,"children":4342},{"style":349},[4343],{"type":53,"value":505},{"type":47,"tag":321,"props":4345,"children":4346},{"style":349},[4347],{"type":53,"value":4348}," },",{"type":47,"tag":321,"props":4350,"children":4351},{"style":697},[4352],{"type":53,"value":4353}," renewalDate",{"type":47,"tag":321,"props":4355,"children":4356},{"style":349},[4357],{"type":53,"value":772},{"type":47,"tag":321,"props":4359,"children":4360},{"style":349},[4361],{"type":53,"value":476},{"type":47,"tag":321,"props":4363,"children":4364},{"style":697},[4365],{"type":53,"value":4327},{"type":47,"tag":321,"props":4367,"children":4368},{"style":349},[4369],{"type":53,"value":772},{"type":47,"tag":321,"props":4371,"children":4372},{"style":349},[4373],{"type":53,"value":496},{"type":47,"tag":321,"props":4375,"children":4376},{"style":333},[4377],{"type":53,"value":951},{"type":47,"tag":321,"props":4379,"children":4380},{"style":349},[4381],{"type":53,"value":505},{"type":47,"tag":321,"props":4383,"children":4384},{"style":349},[4385],{"type":53,"value":486},{"type":47,"tag":321,"props":4387,"children":4388},{"style":349},[4389],{"type":53,"value":2747},{"type":47,"tag":321,"props":4391,"children":4392},{"class":323,"line":675},[4393,4398,4402,4406,4410,4415,4419,4423,4427,4432,4436,4440],{"type":47,"tag":321,"props":4394,"children":4395},{"style":697},[4396],{"type":53,"value":4397},"    required",{"type":47,"tag":321,"props":4399,"children":4400},{"style":349},[4401],{"type":53,"value":772},{"type":47,"tag":321,"props":4403,"children":4404},{"style":433},[4405],{"type":53,"value":1264},{"type":47,"tag":321,"props":4407,"children":4408},{"style":349},[4409],{"type":53,"value":505},{"type":47,"tag":321,"props":4411,"children":4412},{"style":333},[4413],{"type":53,"value":4414},"planName",{"type":47,"tag":321,"props":4416,"children":4417},{"style":349},[4418],{"type":53,"value":505},{"type":47,"tag":321,"props":4420,"children":4421},{"style":349},[4422],{"type":53,"value":643},{"type":47,"tag":321,"props":4424,"children":4425},{"style":349},[4426],{"type":53,"value":496},{"type":47,"tag":321,"props":4428,"children":4429},{"style":333},[4430],{"type":53,"value":4431},"renewalDate",{"type":47,"tag":321,"props":4433,"children":4434},{"style":349},[4435],{"type":53,"value":505},{"type":47,"tag":321,"props":4437,"children":4438},{"style":433},[4439],{"type":53,"value":1282},{"type":47,"tag":321,"props":4441,"children":4442},{"style":349},[4443],{"type":53,"value":618},{"type":47,"tag":321,"props":4445,"children":4446},{"class":323,"line":748},[4447,4452,4457,4461],{"type":47,"tag":321,"props":4448,"children":4449},{"style":349},[4450],{"type":53,"value":4451},"  }",{"type":47,"tag":321,"props":4453,"children":4454},{"style":468},[4455],{"type":53,"value":4456}," as",{"type":47,"tag":321,"props":4458,"children":4459},{"style":572},[4460],{"type":53,"value":575},{"type":47,"tag":321,"props":4462,"children":4463},{"style":349},[4464],{"type":53,"value":618},{"type":47,"tag":321,"props":4466,"children":4467},{"class":323,"line":761},[4468,4472,4476],{"type":47,"tag":321,"props":4469,"children":4470},{"style":349},[4471],{"type":53,"value":855},{"type":47,"tag":321,"props":4473,"children":4474},{"style":433},[4475],{"type":53,"value":2514},{"type":47,"tag":321,"props":4477,"children":4478},{"style":349},[4479],{"type":53,"value":510},{"type":47,"tag":321,"props":4481,"children":4482},{"class":323,"line":793},[4483],{"type":47,"tag":321,"props":4484,"children":4485},{"emptyLinePlaceholder":41},[4486],{"type":53,"value":560},{"type":47,"tag":321,"props":4488,"children":4489},{"class":323,"line":872},[4490,4494,4498,4502,4506,4510,4514,4518,4522,4526,4530,4534,4538,4542],{"type":47,"tag":321,"props":4491,"children":4492},{"style":468},[4493],{"type":53,"value":1939},{"type":47,"tag":321,"props":4495,"children":4496},{"style":433},[4497],{"type":53,"value":638},{"type":47,"tag":321,"props":4499,"children":4500},{"style":349},[4501],{"type":53,"value":248},{"type":47,"tag":321,"props":4503,"children":4504},{"style":588},[4505],{"type":53,"value":694},{"type":47,"tag":321,"props":4507,"children":4508},{"style":433},[4509],{"type":53,"value":700},{"type":47,"tag":321,"props":4511,"children":4512},{"style":349},[4513],{"type":53,"value":505},{"type":47,"tag":321,"props":4515,"children":4516},{"style":333},[4517],{"type":53,"value":3330},{"type":47,"tag":321,"props":4519,"children":4520},{"style":349},[4521],{"type":53,"value":505},{"type":47,"tag":321,"props":4523,"children":4524},{"style":349},[4525],{"type":53,"value":643},{"type":47,"tag":321,"props":4527,"children":4528},{"style":572},[4529],{"type":53,"value":722},{"type":47,"tag":321,"props":4531,"children":4532},{"style":349},[4533],{"type":53,"value":2581},{"type":47,"tag":321,"props":4535,"children":4536},{"style":572},[4537],{"type":53,"value":667},{"type":47,"tag":321,"props":4539,"children":4540},{"style":433},[4541],{"type":53,"value":727},{"type":47,"tag":321,"props":4543,"children":4544},{"style":349},[4545],{"type":53,"value":926},{"type":47,"tag":321,"props":4547,"children":4548},{"class":323,"line":881},[4549,4553,4557,4561,4566,4570,4575,4579,4583,4587,4592,4596],{"type":47,"tag":321,"props":4550,"children":4551},{"style":697},[4552],{"type":53,"value":2357},{"type":47,"tag":321,"props":4554,"children":4555},{"style":349},[4556],{"type":53,"value":772},{"type":47,"tag":321,"props":4558,"children":4559},{"style":349},[4560],{"type":53,"value":808},{"type":47,"tag":321,"props":4562,"children":4563},{"style":333},[4564],{"type":53,"value":4565},"Your ",{"type":47,"tag":321,"props":4567,"children":4568},{"style":349},[4569],{"type":53,"value":818},{"type":47,"tag":321,"props":4571,"children":4572},{"style":433},[4573],{"type":53,"value":4574},"plan",{"type":47,"tag":321,"props":4576,"children":4577},{"style":349},[4578],{"type":53,"value":248},{"type":47,"tag":321,"props":4580,"children":4581},{"style":433},[4582],{"type":53,"value":4414},{"type":47,"tag":321,"props":4584,"children":4585},{"style":349},[4586],{"type":53,"value":855},{"type":47,"tag":321,"props":4588,"children":4589},{"style":333},[4590],{"type":53,"value":4591}," plan",{"type":47,"tag":321,"props":4593,"children":4594},{"style":349},[4595],{"type":53,"value":865},{"type":47,"tag":321,"props":4597,"children":4598},{"style":349},[4599],{"type":53,"value":618},{"type":47,"tag":321,"props":4601,"children":4602},{"class":323,"line":894},[4603,4607,4611,4615,4620,4624,4628,4632,4636,4640,4644,4648],{"type":47,"tag":321,"props":4604,"children":4605},{"style":697},[4606],{"type":53,"value":2385},{"type":47,"tag":321,"props":4608,"children":4609},{"style":349},[4610],{"type":53,"value":772},{"type":47,"tag":321,"props":4612,"children":4613},{"style":349},[4614],{"type":53,"value":808},{"type":47,"tag":321,"props":4616,"children":4617},{"style":333},[4618],{"type":53,"value":4619},"Renews on ",{"type":47,"tag":321,"props":4621,"children":4622},{"style":349},[4623],{"type":53,"value":818},{"type":47,"tag":321,"props":4625,"children":4626},{"style":433},[4627],{"type":53,"value":4574},{"type":47,"tag":321,"props":4629,"children":4630},{"style":349},[4631],{"type":53,"value":248},{"type":47,"tag":321,"props":4633,"children":4634},{"style":433},[4635],{"type":53,"value":4431},{"type":47,"tag":321,"props":4637,"children":4638},{"style":349},[4639],{"type":53,"value":855},{"type":47,"tag":321,"props":4641,"children":4642},{"style":333},[4643],{"type":53,"value":248},{"type":47,"tag":321,"props":4645,"children":4646},{"style":349},[4647],{"type":53,"value":865},{"type":47,"tag":321,"props":4649,"children":4650},{"style":349},[4651],{"type":53,"value":618},{"type":47,"tag":321,"props":4653,"children":4654},{"class":323,"line":929},[4655,4659,4663],{"type":47,"tag":321,"props":4656,"children":4657},{"style":349},[4658],{"type":53,"value":855},{"type":47,"tag":321,"props":4660,"children":4661},{"style":433},[4662],{"type":53,"value":2514},{"type":47,"tag":321,"props":4664,"children":4665},{"style":349},[4666],{"type":53,"value":510},{"type":47,"tag":56,"props":4668,"children":4669},{},[4670],{"type":53,"value":4671},"Webhook-style:",{"type":47,"tag":287,"props":4673,"children":4675},{"className":457,"code":4674,"language":19,"meta":295,"style":295},"await step.http(\"webhook\", async () => ({\n  method: \"POST\",\n  url: payload.webhookUrl,\n  headers: [{ key: \"Content-Type\", value: \"application\u002Fjson\" }],\n  body: [\n    { key: \"event\", value: \"payment_failed\" },\n    { key: \"subscriberId\", value: subscriber.subscriberId },\n  ],\n  continueOnFailure: true,\n}));\n",[4676],{"type":47,"tag":62,"props":4677,"children":4678},{"__ignoreMap":295},[4679,4739,4767,4795,4875,4891,4949,5006,5018,5040],{"type":47,"tag":321,"props":4680,"children":4681},{"class":323,"line":23},[4682,4686,4690,4694,4698,4702,4706,4711,4715,4719,4723,4727,4731,4735],{"type":47,"tag":321,"props":4683,"children":4684},{"style":468},[4685],{"type":53,"value":1939},{"type":47,"tag":321,"props":4687,"children":4688},{"style":433},[4689],{"type":53,"value":638},{"type":47,"tag":321,"props":4691,"children":4692},{"style":349},[4693],{"type":53,"value":248},{"type":47,"tag":321,"props":4695,"children":4696},{"style":588},[4697],{"type":53,"value":4124},{"type":47,"tag":321,"props":4699,"children":4700},{"style":433},[4701],{"type":53,"value":700},{"type":47,"tag":321,"props":4703,"children":4704},{"style":349},[4705],{"type":53,"value":505},{"type":47,"tag":321,"props":4707,"children":4708},{"style":333},[4709],{"type":53,"value":4710},"webhook",{"type":47,"tag":321,"props":4712,"children":4713},{"style":349},[4714],{"type":53,"value":505},{"type":47,"tag":321,"props":4716,"children":4717},{"style":349},[4718],{"type":53,"value":643},{"type":47,"tag":321,"props":4720,"children":4721},{"style":572},[4722],{"type":53,"value":722},{"type":47,"tag":321,"props":4724,"children":4725},{"style":349},[4726],{"type":53,"value":2581},{"type":47,"tag":321,"props":4728,"children":4729},{"style":572},[4730],{"type":53,"value":667},{"type":47,"tag":321,"props":4732,"children":4733},{"style":433},[4734],{"type":53,"value":727},{"type":47,"tag":321,"props":4736,"children":4737},{"style":349},[4738],{"type":53,"value":926},{"type":47,"tag":321,"props":4740,"children":4741},{"class":323,"line":27},[4742,4746,4750,4754,4759,4763],{"type":47,"tag":321,"props":4743,"children":4744},{"style":697},[4745],{"type":53,"value":4173},{"type":47,"tag":321,"props":4747,"children":4748},{"style":349},[4749],{"type":53,"value":772},{"type":47,"tag":321,"props":4751,"children":4752},{"style":349},[4753],{"type":53,"value":496},{"type":47,"tag":321,"props":4755,"children":4756},{"style":333},[4757],{"type":53,"value":4758},"POST",{"type":47,"tag":321,"props":4760,"children":4761},{"style":349},[4762],{"type":53,"value":505},{"type":47,"tag":321,"props":4764,"children":4765},{"style":349},[4766],{"type":53,"value":618},{"type":47,"tag":321,"props":4768,"children":4769},{"class":323,"line":554},[4770,4774,4778,4782,4786,4791],{"type":47,"tag":321,"props":4771,"children":4772},{"style":697},[4773],{"type":53,"value":4202},{"type":47,"tag":321,"props":4775,"children":4776},{"style":349},[4777],{"type":53,"value":772},{"type":47,"tag":321,"props":4779,"children":4780},{"style":433},[4781],{"type":53,"value":648},{"type":47,"tag":321,"props":4783,"children":4784},{"style":349},[4785],{"type":53,"value":248},{"type":47,"tag":321,"props":4787,"children":4788},{"style":433},[4789],{"type":53,"value":4790},"webhookUrl",{"type":47,"tag":321,"props":4792,"children":4793},{"style":349},[4794],{"type":53,"value":618},{"type":47,"tag":321,"props":4796,"children":4797},{"class":323,"line":563},[4798,4803,4807,4811,4815,4820,4824,4828,4833,4837,4841,4846,4850,4854,4859,4863,4867,4871],{"type":47,"tag":321,"props":4799,"children":4800},{"style":697},[4801],{"type":53,"value":4802},"  headers",{"type":47,"tag":321,"props":4804,"children":4805},{"style":349},[4806],{"type":53,"value":772},{"type":47,"tag":321,"props":4808,"children":4809},{"style":433},[4810],{"type":53,"value":1264},{"type":47,"tag":321,"props":4812,"children":4813},{"style":349},[4814],{"type":53,"value":2418},{"type":47,"tag":321,"props":4816,"children":4817},{"style":697},[4818],{"type":53,"value":4819}," key",{"type":47,"tag":321,"props":4821,"children":4822},{"style":349},[4823],{"type":53,"value":772},{"type":47,"tag":321,"props":4825,"children":4826},{"style":349},[4827],{"type":53,"value":496},{"type":47,"tag":321,"props":4829,"children":4830},{"style":333},[4831],{"type":53,"value":4832},"Content-Type",{"type":47,"tag":321,"props":4834,"children":4835},{"style":349},[4836],{"type":53,"value":505},{"type":47,"tag":321,"props":4838,"children":4839},{"style":349},[4840],{"type":53,"value":643},{"type":47,"tag":321,"props":4842,"children":4843},{"style":697},[4844],{"type":53,"value":4845}," value",{"type":47,"tag":321,"props":4847,"children":4848},{"style":349},[4849],{"type":53,"value":772},{"type":47,"tag":321,"props":4851,"children":4852},{"style":349},[4853],{"type":53,"value":496},{"type":47,"tag":321,"props":4855,"children":4856},{"style":333},[4857],{"type":53,"value":4858},"application\u002Fjson",{"type":47,"tag":321,"props":4860,"children":4861},{"style":349},[4862],{"type":53,"value":505},{"type":47,"tag":321,"props":4864,"children":4865},{"style":349},[4866],{"type":53,"value":486},{"type":47,"tag":321,"props":4868,"children":4869},{"style":433},[4870],{"type":53,"value":1282},{"type":47,"tag":321,"props":4872,"children":4873},{"style":349},[4874],{"type":53,"value":618},{"type":47,"tag":321,"props":4876,"children":4877},{"class":323,"line":598},[4878,4882,4886],{"type":47,"tag":321,"props":4879,"children":4880},{"style":697},[4881],{"type":53,"value":2385},{"type":47,"tag":321,"props":4883,"children":4884},{"style":349},[4885],{"type":53,"value":772},{"type":47,"tag":321,"props":4887,"children":4888},{"style":433},[4889],{"type":53,"value":4890}," [\n",{"type":47,"tag":321,"props":4892,"children":4893},{"class":323,"line":621},[4894,4899,4903,4907,4911,4916,4920,4924,4928,4932,4936,4941,4945],{"type":47,"tag":321,"props":4895,"children":4896},{"style":349},[4897],{"type":53,"value":4898},"    {",{"type":47,"tag":321,"props":4900,"children":4901},{"style":697},[4902],{"type":53,"value":4819},{"type":47,"tag":321,"props":4904,"children":4905},{"style":349},[4906],{"type":53,"value":772},{"type":47,"tag":321,"props":4908,"children":4909},{"style":349},[4910],{"type":53,"value":496},{"type":47,"tag":321,"props":4912,"children":4913},{"style":333},[4914],{"type":53,"value":4915},"event",{"type":47,"tag":321,"props":4917,"children":4918},{"style":349},[4919],{"type":53,"value":505},{"type":47,"tag":321,"props":4921,"children":4922},{"style":349},[4923],{"type":53,"value":643},{"type":47,"tag":321,"props":4925,"children":4926},{"style":697},[4927],{"type":53,"value":4845},{"type":47,"tag":321,"props":4929,"children":4930},{"style":349},[4931],{"type":53,"value":772},{"type":47,"tag":321,"props":4933,"children":4934},{"style":349},[4935],{"type":53,"value":496},{"type":47,"tag":321,"props":4937,"children":4938},{"style":333},[4939],{"type":53,"value":4940},"payment_failed",{"type":47,"tag":321,"props":4942,"children":4943},{"style":349},[4944],{"type":53,"value":505},{"type":47,"tag":321,"props":4946,"children":4947},{"style":349},[4948],{"type":53,"value":2747},{"type":47,"tag":321,"props":4950,"children":4951},{"class":323,"line":675},[4952,4956,4960,4964,4968,4973,4977,4981,4985,4989,4993,4997,5002],{"type":47,"tag":321,"props":4953,"children":4954},{"style":349},[4955],{"type":53,"value":4898},{"type":47,"tag":321,"props":4957,"children":4958},{"style":697},[4959],{"type":53,"value":4819},{"type":47,"tag":321,"props":4961,"children":4962},{"style":349},[4963],{"type":53,"value":772},{"type":47,"tag":321,"props":4965,"children":4966},{"style":349},[4967],{"type":53,"value":496},{"type":47,"tag":321,"props":4969,"children":4970},{"style":333},[4971],{"type":53,"value":4972},"subscriberId",{"type":47,"tag":321,"props":4974,"children":4975},{"style":349},[4976],{"type":53,"value":505},{"type":47,"tag":321,"props":4978,"children":4979},{"style":349},[4980],{"type":53,"value":643},{"type":47,"tag":321,"props":4982,"children":4983},{"style":697},[4984],{"type":53,"value":4845},{"type":47,"tag":321,"props":4986,"children":4987},{"style":349},[4988],{"type":53,"value":772},{"type":47,"tag":321,"props":4990,"children":4991},{"style":433},[4992],{"type":53,"value":657},{"type":47,"tag":321,"props":4994,"children":4995},{"style":349},[4996],{"type":53,"value":248},{"type":47,"tag":321,"props":4998,"children":4999},{"style":433},[5000],{"type":53,"value":5001},"subscriberId ",{"type":47,"tag":321,"props":5003,"children":5004},{"style":349},[5005],{"type":53,"value":2933},{"type":47,"tag":321,"props":5007,"children":5008},{"class":323,"line":748},[5009,5014],{"type":47,"tag":321,"props":5010,"children":5011},{"style":433},[5012],{"type":53,"value":5013},"  ]",{"type":47,"tag":321,"props":5015,"children":5016},{"style":349},[5017],{"type":53,"value":618},{"type":47,"tag":321,"props":5019,"children":5020},{"class":323,"line":761},[5021,5026,5030,5036],{"type":47,"tag":321,"props":5022,"children":5023},{"style":697},[5024],{"type":53,"value":5025},"  continueOnFailure",{"type":47,"tag":321,"props":5027,"children":5028},{"style":349},[5029],{"type":53,"value":772},{"type":47,"tag":321,"props":5031,"children":5033},{"style":5032},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[5034],{"type":53,"value":5035}," true",{"type":47,"tag":321,"props":5037,"children":5038},{"style":349},[5039],{"type":53,"value":618},{"type":47,"tag":321,"props":5041,"children":5042},{"class":323,"line":793},[5043,5047,5051],{"type":47,"tag":321,"props":5044,"children":5045},{"style":349},[5046],{"type":53,"value":855},{"type":47,"tag":321,"props":5048,"children":5049},{"style":433},[5050],{"type":53,"value":2514},{"type":47,"tag":321,"props":5052,"children":5053},{"style":349},[5054],{"type":53,"value":510},{"type":47,"tag":56,"props":5056,"children":5057},{},[5058,5060,5065,5067,5073,5075,5081],{"type":53,"value":5059},"When a subsequent step references HTTP response data, the HTTP step ",{"type":47,"tag":71,"props":5061,"children":5062},{},[5063],{"type":53,"value":5064},"must",{"type":53,"value":5066}," declare a ",{"type":47,"tag":62,"props":5068,"children":5070},{"className":5069},[],[5071],{"type":53,"value":5072},"responseBodySchema",{"type":53,"value":5074},". Only properties declared in the schema are addressable as ",{"type":47,"tag":62,"props":5076,"children":5078},{"className":5077},[],[5079],{"type":53,"value":5080},"{{ steps.\u003Chttp-step-id>.\u003Cproperty> }}",{"type":53,"value":248},{"type":47,"tag":305,"props":5083,"children":5085},{"id":5084},"stepcustom",[5086],{"type":47,"tag":62,"props":5087,"children":5089},{"className":5088},[],[5090],{"type":53,"value":4067},{"type":47,"tag":56,"props":5092,"children":5093},{},[5094],{"type":53,"value":5095},"Run arbitrary code and persist its result for later steps.",{"type":47,"tag":287,"props":5097,"children":5099},{"className":457,"code":5098,"language":19,"meta":295,"style":295},"const task = await step.custom(\"fetch-task\", async () => {\n  const t = await db.fetchTask(payload.taskId);\n  return { id: t.id, title: t.title, complete: t.complete };\n}, {\n  outputSchema: {\n    type: \"object\",\n    properties: {\n      id: { type: \"string\" },\n      title: { type: \"string\" },\n      complete: { type: \"boolean\" },\n    },\n    required: [\"id\", \"complete\"],\n  } as const,\n});\n\nawait step.email(\"reminder\", async () => ({\n  subject: `Reminder: ${task.title}`,\n  body: \"Please complete your task.\",\n}), {\n  skip: () => task.complete,\n});\n",[5100],{"type":47,"tag":62,"props":5101,"children":5102},{"__ignoreMap":295},[5103,5173,5233,5322,5334,5350,5377,5392,5432,5472,5512,5520,5571,5590,5605,5612,5672,5717,5745,5764,5801],{"type":47,"tag":321,"props":5104,"children":5105},{"class":323,"line":23},[5106,5110,5115,5119,5123,5127,5131,5136,5140,5144,5149,5153,5157,5161,5165,5169],{"type":47,"tag":321,"props":5107,"children":5108},{"style":572},[5109],{"type":53,"value":3664},{"type":47,"tag":321,"props":5111,"children":5112},{"style":433},[5113],{"type":53,"value":5114}," task ",{"type":47,"tag":321,"props":5116,"children":5117},{"style":349},[5118],{"type":53,"value":585},{"type":47,"tag":321,"props":5120,"children":5121},{"style":468},[5122],{"type":53,"value":3687},{"type":47,"tag":321,"props":5124,"children":5125},{"style":433},[5126],{"type":53,"value":638},{"type":47,"tag":321,"props":5128,"children":5129},{"style":349},[5130],{"type":53,"value":248},{"type":47,"tag":321,"props":5132,"children":5133},{"style":588},[5134],{"type":53,"value":5135},"custom",{"type":47,"tag":321,"props":5137,"children":5138},{"style":433},[5139],{"type":53,"value":700},{"type":47,"tag":321,"props":5141,"children":5142},{"style":349},[5143],{"type":53,"value":505},{"type":47,"tag":321,"props":5145,"children":5146},{"style":333},[5147],{"type":53,"value":5148},"fetch-task",{"type":47,"tag":321,"props":5150,"children":5151},{"style":349},[5152],{"type":53,"value":505},{"type":47,"tag":321,"props":5154,"children":5155},{"style":349},[5156],{"type":53,"value":643},{"type":47,"tag":321,"props":5158,"children":5159},{"style":572},[5160],{"type":53,"value":722},{"type":47,"tag":321,"props":5162,"children":5163},{"style":349},[5164],{"type":53,"value":2581},{"type":47,"tag":321,"props":5166,"children":5167},{"style":572},[5168],{"type":53,"value":667},{"type":47,"tag":321,"props":5170,"children":5171},{"style":349},[5172],{"type":53,"value":672},{"type":47,"tag":321,"props":5174,"children":5175},{"class":323,"line":27},[5176,5181,5186,5190,5194,5199,5203,5208,5212,5216,5220,5225,5229],{"type":47,"tag":321,"props":5177,"children":5178},{"style":572},[5179],{"type":53,"value":5180},"  const",{"type":47,"tag":321,"props":5182,"children":5183},{"style":433},[5184],{"type":53,"value":5185}," t",{"type":47,"tag":321,"props":5187,"children":5188},{"style":349},[5189],{"type":53,"value":3682},{"type":47,"tag":321,"props":5191,"children":5192},{"style":468},[5193],{"type":53,"value":3687},{"type":47,"tag":321,"props":5195,"children":5196},{"style":433},[5197],{"type":53,"value":5198}," db",{"type":47,"tag":321,"props":5200,"children":5201},{"style":349},[5202],{"type":53,"value":248},{"type":47,"tag":321,"props":5204,"children":5205},{"style":588},[5206],{"type":53,"value":5207},"fetchTask",{"type":47,"tag":321,"props":5209,"children":5210},{"style":697},[5211],{"type":53,"value":700},{"type":47,"tag":321,"props":5213,"children":5214},{"style":433},[5215],{"type":53,"value":1657},{"type":47,"tag":321,"props":5217,"children":5218},{"style":349},[5219],{"type":53,"value":248},{"type":47,"tag":321,"props":5221,"children":5222},{"style":433},[5223],{"type":53,"value":5224},"taskId",{"type":47,"tag":321,"props":5226,"children":5227},{"style":697},[5228],{"type":53,"value":737},{"type":47,"tag":321,"props":5230,"children":5231},{"style":349},[5232],{"type":53,"value":510},{"type":47,"tag":321,"props":5234,"children":5235},{"class":323,"line":554},[5236,5241,5245,5250,5254,5258,5262,5266,5270,5275,5279,5283,5287,5291,5295,5300,5304,5308,5312,5317],{"type":47,"tag":321,"props":5237,"children":5238},{"style":468},[5239],{"type":53,"value":5240},"  return",{"type":47,"tag":321,"props":5242,"children":5243},{"style":349},[5244],{"type":53,"value":476},{"type":47,"tag":321,"props":5246,"children":5247},{"style":697},[5248],{"type":53,"value":5249}," id",{"type":47,"tag":321,"props":5251,"children":5252},{"style":349},[5253],{"type":53,"value":772},{"type":47,"tag":321,"props":5255,"children":5256},{"style":433},[5257],{"type":53,"value":5185},{"type":47,"tag":321,"props":5259,"children":5260},{"style":349},[5261],{"type":53,"value":248},{"type":47,"tag":321,"props":5263,"children":5264},{"style":433},[5265],{"type":53,"value":3395},{"type":47,"tag":321,"props":5267,"children":5268},{"style":349},[5269],{"type":53,"value":643},{"type":47,"tag":321,"props":5271,"children":5272},{"style":697},[5273],{"type":53,"value":5274}," title",{"type":47,"tag":321,"props":5276,"children":5277},{"style":349},[5278],{"type":53,"value":772},{"type":47,"tag":321,"props":5280,"children":5281},{"style":433},[5282],{"type":53,"value":5185},{"type":47,"tag":321,"props":5284,"children":5285},{"style":349},[5286],{"type":53,"value":248},{"type":47,"tag":321,"props":5288,"children":5289},{"style":433},[5290],{"type":53,"value":2127},{"type":47,"tag":321,"props":5292,"children":5293},{"style":349},[5294],{"type":53,"value":643},{"type":47,"tag":321,"props":5296,"children":5297},{"style":697},[5298],{"type":53,"value":5299}," complete",{"type":47,"tag":321,"props":5301,"children":5302},{"style":349},[5303],{"type":53,"value":772},{"type":47,"tag":321,"props":5305,"children":5306},{"style":433},[5307],{"type":53,"value":5185},{"type":47,"tag":321,"props":5309,"children":5310},{"style":349},[5311],{"type":53,"value":248},{"type":47,"tag":321,"props":5313,"children":5314},{"style":433},[5315],{"type":53,"value":5316},"complete",{"type":47,"tag":321,"props":5318,"children":5319},{"style":349},[5320],{"type":53,"value":5321}," };\n",{"type":47,"tag":321,"props":5323,"children":5324},{"class":323,"line":563},[5325,5330],{"type":47,"tag":321,"props":5326,"children":5327},{"style":349},[5328],{"type":53,"value":5329},"},",{"type":47,"tag":321,"props":5331,"children":5332},{"style":349},[5333],{"type":53,"value":672},{"type":47,"tag":321,"props":5335,"children":5336},{"class":323,"line":598},[5337,5342,5346],{"type":47,"tag":321,"props":5338,"children":5339},{"style":697},[5340],{"type":53,"value":5341},"  outputSchema",{"type":47,"tag":321,"props":5343,"children":5344},{"style":349},[5345],{"type":53,"value":772},{"type":47,"tag":321,"props":5347,"children":5348},{"style":349},[5349],{"type":53,"value":672},{"type":47,"tag":321,"props":5351,"children":5352},{"class":323,"line":621},[5353,5357,5361,5365,5369,5373],{"type":47,"tag":321,"props":5354,"children":5355},{"style":697},[5356],{"type":53,"value":4273},{"type":47,"tag":321,"props":5358,"children":5359},{"style":349},[5360],{"type":53,"value":772},{"type":47,"tag":321,"props":5362,"children":5363},{"style":349},[5364],{"type":53,"value":496},{"type":47,"tag":321,"props":5366,"children":5367},{"style":333},[5368],{"type":53,"value":917},{"type":47,"tag":321,"props":5370,"children":5371},{"style":349},[5372],{"type":53,"value":505},{"type":47,"tag":321,"props":5374,"children":5375},{"style":349},[5376],{"type":53,"value":618},{"type":47,"tag":321,"props":5378,"children":5379},{"class":323,"line":675},[5380,5384,5388],{"type":47,"tag":321,"props":5381,"children":5382},{"style":697},[5383],{"type":53,"value":4301},{"type":47,"tag":321,"props":5385,"children":5386},{"style":349},[5387],{"type":53,"value":772},{"type":47,"tag":321,"props":5389,"children":5390},{"style":349},[5391],{"type":53,"value":672},{"type":47,"tag":321,"props":5393,"children":5394},{"class":323,"line":748},[5395,5400,5404,5408,5412,5416,5420,5424,5428],{"type":47,"tag":321,"props":5396,"children":5397},{"style":697},[5398],{"type":53,"value":5399},"      id",{"type":47,"tag":321,"props":5401,"children":5402},{"style":349},[5403],{"type":53,"value":772},{"type":47,"tag":321,"props":5405,"children":5406},{"style":349},[5407],{"type":53,"value":476},{"type":47,"tag":321,"props":5409,"children":5410},{"style":697},[5411],{"type":53,"value":4327},{"type":47,"tag":321,"props":5413,"children":5414},{"style":349},[5415],{"type":53,"value":772},{"type":47,"tag":321,"props":5417,"children":5418},{"style":349},[5419],{"type":53,"value":496},{"type":47,"tag":321,"props":5421,"children":5422},{"style":333},[5423],{"type":53,"value":951},{"type":47,"tag":321,"props":5425,"children":5426},{"style":349},[5427],{"type":53,"value":505},{"type":47,"tag":321,"props":5429,"children":5430},{"style":349},[5431],{"type":53,"value":2747},{"type":47,"tag":321,"props":5433,"children":5434},{"class":323,"line":761},[5435,5440,5444,5448,5452,5456,5460,5464,5468],{"type":47,"tag":321,"props":5436,"children":5437},{"style":697},[5438],{"type":53,"value":5439},"      title",{"type":47,"tag":321,"props":5441,"children":5442},{"style":349},[5443],{"type":53,"value":772},{"type":47,"tag":321,"props":5445,"children":5446},{"style":349},[5447],{"type":53,"value":476},{"type":47,"tag":321,"props":5449,"children":5450},{"style":697},[5451],{"type":53,"value":4327},{"type":47,"tag":321,"props":5453,"children":5454},{"style":349},[5455],{"type":53,"value":772},{"type":47,"tag":321,"props":5457,"children":5458},{"style":349},[5459],{"type":53,"value":496},{"type":47,"tag":321,"props":5461,"children":5462},{"style":333},[5463],{"type":53,"value":951},{"type":47,"tag":321,"props":5465,"children":5466},{"style":349},[5467],{"type":53,"value":505},{"type":47,"tag":321,"props":5469,"children":5470},{"style":349},[5471],{"type":53,"value":2747},{"type":47,"tag":321,"props":5473,"children":5474},{"class":323,"line":793},[5475,5480,5484,5488,5492,5496,5500,5504,5508],{"type":47,"tag":321,"props":5476,"children":5477},{"style":697},[5478],{"type":53,"value":5479},"      complete",{"type":47,"tag":321,"props":5481,"children":5482},{"style":349},[5483],{"type":53,"value":772},{"type":47,"tag":321,"props":5485,"children":5486},{"style":349},[5487],{"type":53,"value":476},{"type":47,"tag":321,"props":5489,"children":5490},{"style":697},[5491],{"type":53,"value":4327},{"type":47,"tag":321,"props":5493,"children":5494},{"style":349},[5495],{"type":53,"value":772},{"type":47,"tag":321,"props":5497,"children":5498},{"style":349},[5499],{"type":53,"value":496},{"type":47,"tag":321,"props":5501,"children":5502},{"style":333},[5503],{"type":53,"value":1785},{"type":47,"tag":321,"props":5505,"children":5506},{"style":349},[5507],{"type":53,"value":505},{"type":47,"tag":321,"props":5509,"children":5510},{"style":349},[5511],{"type":53,"value":2747},{"type":47,"tag":321,"props":5513,"children":5514},{"class":323,"line":872},[5515],{"type":47,"tag":321,"props":5516,"children":5517},{"style":349},[5518],{"type":53,"value":5519},"    },\n",{"type":47,"tag":321,"props":5521,"children":5522},{"class":323,"line":881},[5523,5527,5531,5535,5539,5543,5547,5551,5555,5559,5563,5567],{"type":47,"tag":321,"props":5524,"children":5525},{"style":697},[5526],{"type":53,"value":4397},{"type":47,"tag":321,"props":5528,"children":5529},{"style":349},[5530],{"type":53,"value":772},{"type":47,"tag":321,"props":5532,"children":5533},{"style":433},[5534],{"type":53,"value":1264},{"type":47,"tag":321,"props":5536,"children":5537},{"style":349},[5538],{"type":53,"value":505},{"type":47,"tag":321,"props":5540,"children":5541},{"style":333},[5542],{"type":53,"value":3395},{"type":47,"tag":321,"props":5544,"children":5545},{"style":349},[5546],{"type":53,"value":505},{"type":47,"tag":321,"props":5548,"children":5549},{"style":349},[5550],{"type":53,"value":643},{"type":47,"tag":321,"props":5552,"children":5553},{"style":349},[5554],{"type":53,"value":496},{"type":47,"tag":321,"props":5556,"children":5557},{"style":333},[5558],{"type":53,"value":5316},{"type":47,"tag":321,"props":5560,"children":5561},{"style":349},[5562],{"type":53,"value":505},{"type":47,"tag":321,"props":5564,"children":5565},{"style":433},[5566],{"type":53,"value":1282},{"type":47,"tag":321,"props":5568,"children":5569},{"style":349},[5570],{"type":53,"value":618},{"type":47,"tag":321,"props":5572,"children":5573},{"class":323,"line":894},[5574,5578,5582,5586],{"type":47,"tag":321,"props":5575,"children":5576},{"style":349},[5577],{"type":53,"value":4451},{"type":47,"tag":321,"props":5579,"children":5580},{"style":468},[5581],{"type":53,"value":4456},{"type":47,"tag":321,"props":5583,"children":5584},{"style":572},[5585],{"type":53,"value":575},{"type":47,"tag":321,"props":5587,"children":5588},{"style":349},[5589],{"type":53,"value":618},{"type":47,"tag":321,"props":5591,"children":5592},{"class":323,"line":929},[5593,5597,5601],{"type":47,"tag":321,"props":5594,"children":5595},{"style":349},[5596],{"type":53,"value":855},{"type":47,"tag":321,"props":5598,"children":5599},{"style":433},[5600],{"type":53,"value":737},{"type":47,"tag":321,"props":5602,"children":5603},{"style":349},[5604],{"type":53,"value":510},{"type":47,"tag":321,"props":5606,"children":5607},{"class":323,"line":993},[5608],{"type":47,"tag":321,"props":5609,"children":5610},{"emptyLinePlaceholder":41},[5611],{"type":53,"value":560},{"type":47,"tag":321,"props":5613,"children":5614},{"class":323,"line":1010},[5615,5619,5623,5627,5631,5635,5639,5644,5648,5652,5656,5660,5664,5668],{"type":47,"tag":321,"props":5616,"children":5617},{"style":468},[5618],{"type":53,"value":1939},{"type":47,"tag":321,"props":5620,"children":5621},{"style":433},[5622],{"type":53,"value":638},{"type":47,"tag":321,"props":5624,"children":5625},{"style":349},[5626],{"type":53,"value":248},{"type":47,"tag":321,"props":5628,"children":5629},{"style":588},[5630],{"type":53,"value":694},{"type":47,"tag":321,"props":5632,"children":5633},{"style":433},[5634],{"type":53,"value":700},{"type":47,"tag":321,"props":5636,"children":5637},{"style":349},[5638],{"type":53,"value":505},{"type":47,"tag":321,"props":5640,"children":5641},{"style":333},[5642],{"type":53,"value":5643},"reminder",{"type":47,"tag":321,"props":5645,"children":5646},{"style":349},[5647],{"type":53,"value":505},{"type":47,"tag":321,"props":5649,"children":5650},{"style":349},[5651],{"type":53,"value":643},{"type":47,"tag":321,"props":5653,"children":5654},{"style":572},[5655],{"type":53,"value":722},{"type":47,"tag":321,"props":5657,"children":5658},{"style":349},[5659],{"type":53,"value":2581},{"type":47,"tag":321,"props":5661,"children":5662},{"style":572},[5663],{"type":53,"value":667},{"type":47,"tag":321,"props":5665,"children":5666},{"style":433},[5667],{"type":53,"value":727},{"type":47,"tag":321,"props":5669,"children":5670},{"style":349},[5671],{"type":53,"value":926},{"type":47,"tag":321,"props":5673,"children":5674},{"class":323,"line":1027},[5675,5679,5683,5687,5692,5696,5701,5705,5709,5713],{"type":47,"tag":321,"props":5676,"children":5677},{"style":697},[5678],{"type":53,"value":2357},{"type":47,"tag":321,"props":5680,"children":5681},{"style":349},[5682],{"type":53,"value":772},{"type":47,"tag":321,"props":5684,"children":5685},{"style":349},[5686],{"type":53,"value":808},{"type":47,"tag":321,"props":5688,"children":5689},{"style":333},[5690],{"type":53,"value":5691},"Reminder: ",{"type":47,"tag":321,"props":5693,"children":5694},{"style":349},[5695],{"type":53,"value":818},{"type":47,"tag":321,"props":5697,"children":5698},{"style":433},[5699],{"type":53,"value":5700},"task",{"type":47,"tag":321,"props":5702,"children":5703},{"style":349},[5704],{"type":53,"value":248},{"type":47,"tag":321,"props":5706,"children":5707},{"style":433},[5708],{"type":53,"value":2127},{"type":47,"tag":321,"props":5710,"children":5711},{"style":349},[5712],{"type":53,"value":3090},{"type":47,"tag":321,"props":5714,"children":5715},{"style":349},[5716],{"type":53,"value":618},{"type":47,"tag":321,"props":5718,"children":5719},{"class":323,"line":1036},[5720,5724,5728,5732,5737,5741],{"type":47,"tag":321,"props":5721,"children":5722},{"style":697},[5723],{"type":53,"value":2385},{"type":47,"tag":321,"props":5725,"children":5726},{"style":349},[5727],{"type":53,"value":772},{"type":47,"tag":321,"props":5729,"children":5730},{"style":349},[5731],{"type":53,"value":496},{"type":47,"tag":321,"props":5733,"children":5734},{"style":333},[5735],{"type":53,"value":5736},"Please complete your task.",{"type":47,"tag":321,"props":5738,"children":5739},{"style":349},[5740],{"type":53,"value":505},{"type":47,"tag":321,"props":5742,"children":5743},{"style":349},[5744],{"type":53,"value":618},{"type":47,"tag":321,"props":5746,"children":5747},{"class":323,"line":1045},[5748,5752,5756,5760],{"type":47,"tag":321,"props":5749,"children":5750},{"style":349},[5751],{"type":53,"value":855},{"type":47,"tag":321,"props":5753,"children":5754},{"style":433},[5755],{"type":53,"value":737},{"type":47,"tag":321,"props":5757,"children":5758},{"style":349},[5759],{"type":53,"value":643},{"type":47,"tag":321,"props":5761,"children":5762},{"style":349},[5763],{"type":53,"value":672},{"type":47,"tag":321,"props":5765,"children":5766},{"class":323,"line":1078},[5767,5772,5776,5780,5784,5789,5793,5797],{"type":47,"tag":321,"props":5768,"children":5769},{"style":588},[5770],{"type":53,"value":5771},"  skip",{"type":47,"tag":321,"props":5773,"children":5774},{"style":349},[5775],{"type":53,"value":772},{"type":47,"tag":321,"props":5777,"children":5778},{"style":349},[5779],{"type":53,"value":2581},{"type":47,"tag":321,"props":5781,"children":5782},{"style":572},[5783],{"type":53,"value":667},{"type":47,"tag":321,"props":5785,"children":5786},{"style":433},[5787],{"type":53,"value":5788}," task",{"type":47,"tag":321,"props":5790,"children":5791},{"style":349},[5792],{"type":53,"value":248},{"type":47,"tag":321,"props":5794,"children":5795},{"style":433},[5796],{"type":53,"value":5316},{"type":47,"tag":321,"props":5798,"children":5799},{"style":349},[5800],{"type":53,"value":618},{"type":47,"tag":321,"props":5802,"children":5803},{"class":323,"line":1111},[5804,5808,5812],{"type":47,"tag":321,"props":5805,"children":5806},{"style":349},[5807],{"type":53,"value":855},{"type":47,"tag":321,"props":5809,"children":5810},{"style":433},[5811],{"type":53,"value":737},{"type":47,"tag":321,"props":5813,"children":5814},{"style":349},[5815],{"type":53,"value":510},{"type":47,"tag":56,"props":5817,"children":5818},{},[5819,5821,5826,5828,5834,5835,5841,5843,5848],{"type":53,"value":5820},"The custom step result is ",{"type":47,"tag":71,"props":5822,"children":5823},{},[5824],{"type":53,"value":5825},"only",{"type":53,"value":5827}," usable inside subsequent step ",{"type":47,"tag":62,"props":5829,"children":5831},{"className":5830},[],[5832],{"type":53,"value":5833},"resolver",{"type":53,"value":1865},{"type":47,"tag":62,"props":5836,"children":5838},{"className":5837},[],[5839],{"type":53,"value":5840},"providers",{"type":53,"value":5842},", and ",{"type":47,"tag":62,"props":5844,"children":5846},{"className":5845},[],[5847],{"type":53,"value":2973},{"type":53,"value":5849}," functions — not in step controls.",{"type":47,"tag":107,"props":5851,"children":5853},{"id":5852},"step-options",[5854],{"type":53,"value":5855},"Step Options",{"type":47,"tag":287,"props":5857,"children":5859},{"className":457,"code":5858,"language":19,"meta":295,"style":295},"await step.email(stepId, resolver, {\n  controlSchema,         \u002F\u002F Zod | JSON Schema | Class-Validator class\n  skip,                  \u002F\u002F (controls) => boolean | Promise\u003Cboolean>\n  providers,             \u002F\u002F per-provider override callbacks\n  disableOutputSanitization, \u002F\u002F boolean — for raw HTML in Inbox\n});\n",[5860],{"type":47,"tag":62,"props":5861,"children":5862},{"__ignoreMap":295},[5863,5902,5919,5935,5952,5969],{"type":47,"tag":321,"props":5864,"children":5865},{"class":323,"line":23},[5866,5870,5874,5878,5882,5886,5890,5894,5898],{"type":47,"tag":321,"props":5867,"children":5868},{"style":468},[5869],{"type":53,"value":1939},{"type":47,"tag":321,"props":5871,"children":5872},{"style":433},[5873],{"type":53,"value":638},{"type":47,"tag":321,"props":5875,"children":5876},{"style":349},[5877],{"type":53,"value":248},{"type":47,"tag":321,"props":5879,"children":5880},{"style":588},[5881],{"type":53,"value":694},{"type":47,"tag":321,"props":5883,"children":5884},{"style":433},[5885],{"type":53,"value":1963},{"type":47,"tag":321,"props":5887,"children":5888},{"style":349},[5889],{"type":53,"value":643},{"type":47,"tag":321,"props":5891,"children":5892},{"style":433},[5893],{"type":53,"value":1972},{"type":47,"tag":321,"props":5895,"children":5896},{"style":349},[5897],{"type":53,"value":643},{"type":47,"tag":321,"props":5899,"children":5900},{"style":349},[5901],{"type":53,"value":672},{"type":47,"tag":321,"props":5903,"children":5904},{"class":323,"line":27},[5905,5910,5914],{"type":47,"tag":321,"props":5906,"children":5907},{"style":433},[5908],{"type":53,"value":5909},"  controlSchema",{"type":47,"tag":321,"props":5911,"children":5912},{"style":349},[5913],{"type":53,"value":643},{"type":47,"tag":321,"props":5915,"children":5916},{"style":3819},[5917],{"type":53,"value":5918},"         \u002F\u002F Zod | JSON Schema | Class-Validator class\n",{"type":47,"tag":321,"props":5920,"children":5921},{"class":323,"line":554},[5922,5926,5930],{"type":47,"tag":321,"props":5923,"children":5924},{"style":433},[5925],{"type":53,"value":5771},{"type":47,"tag":321,"props":5927,"children":5928},{"style":349},[5929],{"type":53,"value":643},{"type":47,"tag":321,"props":5931,"children":5932},{"style":3819},[5933],{"type":53,"value":5934},"                  \u002F\u002F (controls) => boolean | Promise\u003Cboolean>\n",{"type":47,"tag":321,"props":5936,"children":5937},{"class":323,"line":563},[5938,5943,5947],{"type":47,"tag":321,"props":5939,"children":5940},{"style":433},[5941],{"type":53,"value":5942},"  providers",{"type":47,"tag":321,"props":5944,"children":5945},{"style":349},[5946],{"type":53,"value":643},{"type":47,"tag":321,"props":5948,"children":5949},{"style":3819},[5950],{"type":53,"value":5951},"             \u002F\u002F per-provider override callbacks\n",{"type":47,"tag":321,"props":5953,"children":5954},{"class":323,"line":598},[5955,5960,5964],{"type":47,"tag":321,"props":5956,"children":5957},{"style":433},[5958],{"type":53,"value":5959},"  disableOutputSanitization",{"type":47,"tag":321,"props":5961,"children":5962},{"style":349},[5963],{"type":53,"value":643},{"type":47,"tag":321,"props":5965,"children":5966},{"style":3819},[5967],{"type":53,"value":5968}," \u002F\u002F boolean — for raw HTML in Inbox\n",{"type":47,"tag":321,"props":5970,"children":5971},{"class":323,"line":621},[5972,5976,5980],{"type":47,"tag":321,"props":5973,"children":5974},{"style":349},[5975],{"type":53,"value":855},{"type":47,"tag":321,"props":5977,"children":5978},{"style":433},[5979],{"type":53,"value":737},{"type":47,"tag":321,"props":5981,"children":5982},{"style":349},[5983],{"type":53,"value":510},{"type":47,"tag":305,"props":5985,"children":5986},{"id":2973},[5987],{"type":47,"tag":62,"props":5988,"children":5990},{"className":5989},[],[5991],{"type":53,"value":2973},{"type":47,"tag":56,"props":5993,"children":5994},{},[5995],{"type":53,"value":5996},"Conditionally skip a step. Receives the resolved controls.",{"type":47,"tag":287,"props":5998,"children":6000},{"className":457,"code":5999,"language":19,"meta":295,"style":295},"await step.email(\"follow-up\", resolver, {\n  skip: () => inAppNotification.read === true,\n});\n",[6001],{"type":47,"tag":62,"props":6002,"children":6003},{"__ignoreMap":295},[6004,6056,6102],{"type":47,"tag":321,"props":6005,"children":6006},{"class":323,"line":23},[6007,6011,6015,6019,6023,6027,6031,6036,6040,6044,6048,6052],{"type":47,"tag":321,"props":6008,"children":6009},{"style":468},[6010],{"type":53,"value":1939},{"type":47,"tag":321,"props":6012,"children":6013},{"style":433},[6014],{"type":53,"value":638},{"type":47,"tag":321,"props":6016,"children":6017},{"style":349},[6018],{"type":53,"value":248},{"type":47,"tag":321,"props":6020,"children":6021},{"style":588},[6022],{"type":53,"value":694},{"type":47,"tag":321,"props":6024,"children":6025},{"style":433},[6026],{"type":53,"value":700},{"type":47,"tag":321,"props":6028,"children":6029},{"style":349},[6030],{"type":53,"value":505},{"type":47,"tag":321,"props":6032,"children":6033},{"style":333},[6034],{"type":53,"value":6035},"follow-up",{"type":47,"tag":321,"props":6037,"children":6038},{"style":349},[6039],{"type":53,"value":505},{"type":47,"tag":321,"props":6041,"children":6042},{"style":349},[6043],{"type":53,"value":643},{"type":47,"tag":321,"props":6045,"children":6046},{"style":433},[6047],{"type":53,"value":1972},{"type":47,"tag":321,"props":6049,"children":6050},{"style":349},[6051],{"type":53,"value":643},{"type":47,"tag":321,"props":6053,"children":6054},{"style":349},[6055],{"type":53,"value":672},{"type":47,"tag":321,"props":6057,"children":6058},{"class":323,"line":27},[6059,6063,6067,6071,6075,6080,6084,6089,6094,6098],{"type":47,"tag":321,"props":6060,"children":6061},{"style":588},[6062],{"type":53,"value":5771},{"type":47,"tag":321,"props":6064,"children":6065},{"style":349},[6066],{"type":53,"value":772},{"type":47,"tag":321,"props":6068,"children":6069},{"style":349},[6070],{"type":53,"value":2581},{"type":47,"tag":321,"props":6072,"children":6073},{"style":572},[6074],{"type":53,"value":667},{"type":47,"tag":321,"props":6076,"children":6077},{"style":433},[6078],{"type":53,"value":6079}," inAppNotification",{"type":47,"tag":321,"props":6081,"children":6082},{"style":349},[6083],{"type":53,"value":248},{"type":47,"tag":321,"props":6085,"children":6086},{"style":433},[6087],{"type":53,"value":6088},"read ",{"type":47,"tag":321,"props":6090,"children":6091},{"style":349},[6092],{"type":53,"value":6093},"===",{"type":47,"tag":321,"props":6095,"children":6096},{"style":5032},[6097],{"type":53,"value":5035},{"type":47,"tag":321,"props":6099,"children":6100},{"style":349},[6101],{"type":53,"value":618},{"type":47,"tag":321,"props":6103,"children":6104},{"class":323,"line":554},[6105,6109,6113],{"type":47,"tag":321,"props":6106,"children":6107},{"style":349},[6108],{"type":53,"value":855},{"type":47,"tag":321,"props":6110,"children":6111},{"style":433},[6112],{"type":53,"value":737},{"type":47,"tag":321,"props":6114,"children":6115},{"style":349},[6116],{"type":53,"value":510},{"type":47,"tag":305,"props":6118,"children":6120},{"id":6119},"providers-per-step-provider-overrides",[6121,6126],{"type":47,"tag":62,"props":6122,"children":6124},{"className":6123},[],[6125],{"type":53,"value":5840},{"type":53,"value":6127}," (Per-Step Provider Overrides)",{"type":47,"tag":56,"props":6129,"children":6130},{},[6131,6133,6139,6141,6147],{"type":53,"value":6132},"Customize the request sent to the underlying provider — e.g. Slack ",{"type":47,"tag":62,"props":6134,"children":6136},{"className":6135},[],[6137],{"type":53,"value":6138},"blocks",{"type":53,"value":6140}," or SendGrid ",{"type":47,"tag":62,"props":6142,"children":6144},{"className":6143},[],[6145],{"type":53,"value":6146},"cc",{"type":53,"value":248},{"type":47,"tag":287,"props":6149,"children":6151},{"className":457,"code":6150,"language":19,"meta":295,"style":295},"await step.email(\"alert\", resolver, {\n  providers: {\n    sendgrid: ({ controls, outputs }) => ({\n      from: \"alerts@acme.com\",\n      cc: [\"ops@acme.com\"],\n      _passthrough: {\n        body: { ip_pool_name: \"transactional\" },\n        headers: { \"X-Custom\": \"value\" },\n      },\n    }),\n  },\n});\n",[6152],{"type":47,"tag":62,"props":6153,"children":6154},{"__ignoreMap":295},[6155,6207,6222,6267,6296,6333,6349,6390,6440,6448,6463,6470],{"type":47,"tag":321,"props":6156,"children":6157},{"class":323,"line":23},[6158,6162,6166,6170,6174,6178,6182,6187,6191,6195,6199,6203],{"type":47,"tag":321,"props":6159,"children":6160},{"style":468},[6161],{"type":53,"value":1939},{"type":47,"tag":321,"props":6163,"children":6164},{"style":433},[6165],{"type":53,"value":638},{"type":47,"tag":321,"props":6167,"children":6168},{"style":349},[6169],{"type":53,"value":248},{"type":47,"tag":321,"props":6171,"children":6172},{"style":588},[6173],{"type":53,"value":694},{"type":47,"tag":321,"props":6175,"children":6176},{"style":433},[6177],{"type":53,"value":700},{"type":47,"tag":321,"props":6179,"children":6180},{"style":349},[6181],{"type":53,"value":505},{"type":47,"tag":321,"props":6183,"children":6184},{"style":333},[6185],{"type":53,"value":6186},"alert",{"type":47,"tag":321,"props":6188,"children":6189},{"style":349},[6190],{"type":53,"value":505},{"type":47,"tag":321,"props":6192,"children":6193},{"style":349},[6194],{"type":53,"value":643},{"type":47,"tag":321,"props":6196,"children":6197},{"style":433},[6198],{"type":53,"value":1972},{"type":47,"tag":321,"props":6200,"children":6201},{"style":349},[6202],{"type":53,"value":643},{"type":47,"tag":321,"props":6204,"children":6205},{"style":349},[6206],{"type":53,"value":672},{"type":47,"tag":321,"props":6208,"children":6209},{"class":323,"line":27},[6210,6214,6218],{"type":47,"tag":321,"props":6211,"children":6212},{"style":697},[6213],{"type":53,"value":5942},{"type":47,"tag":321,"props":6215,"children":6216},{"style":349},[6217],{"type":53,"value":772},{"type":47,"tag":321,"props":6219,"children":6220},{"style":349},[6221],{"type":53,"value":672},{"type":47,"tag":321,"props":6223,"children":6224},{"class":323,"line":554},[6225,6230,6234,6238,6242,6246,6251,6255,6259,6263],{"type":47,"tag":321,"props":6226,"children":6227},{"style":588},[6228],{"type":53,"value":6229},"    sendgrid",{"type":47,"tag":321,"props":6231,"children":6232},{"style":349},[6233],{"type":53,"value":772},{"type":47,"tag":321,"props":6235,"children":6236},{"style":349},[6237],{"type":53,"value":632},{"type":47,"tag":321,"props":6239,"children":6240},{"style":635},[6241],{"type":53,"value":777},{"type":47,"tag":321,"props":6243,"children":6244},{"style":349},[6245],{"type":53,"value":643},{"type":47,"tag":321,"props":6247,"children":6248},{"style":635},[6249],{"type":53,"value":6250}," outputs",{"type":47,"tag":321,"props":6252,"children":6253},{"style":349},[6254],{"type":53,"value":662},{"type":47,"tag":321,"props":6256,"children":6257},{"style":572},[6258],{"type":53,"value":667},{"type":47,"tag":321,"props":6260,"children":6261},{"style":433},[6262],{"type":53,"value":727},{"type":47,"tag":321,"props":6264,"children":6265},{"style":349},[6266],{"type":53,"value":926},{"type":47,"tag":321,"props":6268,"children":6269},{"class":323,"line":563},[6270,6275,6279,6283,6288,6292],{"type":47,"tag":321,"props":6271,"children":6272},{"style":697},[6273],{"type":53,"value":6274},"      from",{"type":47,"tag":321,"props":6276,"children":6277},{"style":349},[6278],{"type":53,"value":772},{"type":47,"tag":321,"props":6280,"children":6281},{"style":349},[6282],{"type":53,"value":496},{"type":47,"tag":321,"props":6284,"children":6285},{"style":333},[6286],{"type":53,"value":6287},"alerts@acme.com",{"type":47,"tag":321,"props":6289,"children":6290},{"style":349},[6291],{"type":53,"value":505},{"type":47,"tag":321,"props":6293,"children":6294},{"style":349},[6295],{"type":53,"value":618},{"type":47,"tag":321,"props":6297,"children":6298},{"class":323,"line":598},[6299,6304,6308,6312,6316,6321,6325,6329],{"type":47,"tag":321,"props":6300,"children":6301},{"style":697},[6302],{"type":53,"value":6303},"      cc",{"type":47,"tag":321,"props":6305,"children":6306},{"style":349},[6307],{"type":53,"value":772},{"type":47,"tag":321,"props":6309,"children":6310},{"style":433},[6311],{"type":53,"value":1264},{"type":47,"tag":321,"props":6313,"children":6314},{"style":349},[6315],{"type":53,"value":505},{"type":47,"tag":321,"props":6317,"children":6318},{"style":333},[6319],{"type":53,"value":6320},"ops@acme.com",{"type":47,"tag":321,"props":6322,"children":6323},{"style":349},[6324],{"type":53,"value":505},{"type":47,"tag":321,"props":6326,"children":6327},{"style":433},[6328],{"type":53,"value":1282},{"type":47,"tag":321,"props":6330,"children":6331},{"style":349},[6332],{"type":53,"value":618},{"type":47,"tag":321,"props":6334,"children":6335},{"class":323,"line":621},[6336,6341,6345],{"type":47,"tag":321,"props":6337,"children":6338},{"style":697},[6339],{"type":53,"value":6340},"      _passthrough",{"type":47,"tag":321,"props":6342,"children":6343},{"style":349},[6344],{"type":53,"value":772},{"type":47,"tag":321,"props":6346,"children":6347},{"style":349},[6348],{"type":53,"value":672},{"type":47,"tag":321,"props":6350,"children":6351},{"class":323,"line":675},[6352,6356,6360,6364,6369,6373,6377,6382,6386],{"type":47,"tag":321,"props":6353,"children":6354},{"style":697},[6355],{"type":53,"value":799},{"type":47,"tag":321,"props":6357,"children":6358},{"style":349},[6359],{"type":53,"value":772},{"type":47,"tag":321,"props":6361,"children":6362},{"style":349},[6363],{"type":53,"value":476},{"type":47,"tag":321,"props":6365,"children":6366},{"style":697},[6367],{"type":53,"value":6368}," ip_pool_name",{"type":47,"tag":321,"props":6370,"children":6371},{"style":349},[6372],{"type":53,"value":772},{"type":47,"tag":321,"props":6374,"children":6375},{"style":349},[6376],{"type":53,"value":496},{"type":47,"tag":321,"props":6378,"children":6379},{"style":333},[6380],{"type":53,"value":6381},"transactional",{"type":47,"tag":321,"props":6383,"children":6384},{"style":349},[6385],{"type":53,"value":505},{"type":47,"tag":321,"props":6387,"children":6388},{"style":349},[6389],{"type":53,"value":2747},{"type":47,"tag":321,"props":6391,"children":6392},{"class":323,"line":748},[6393,6398,6402,6406,6410,6415,6419,6423,6427,6432,6436],{"type":47,"tag":321,"props":6394,"children":6395},{"style":697},[6396],{"type":53,"value":6397},"        headers",{"type":47,"tag":321,"props":6399,"children":6400},{"style":349},[6401],{"type":53,"value":772},{"type":47,"tag":321,"props":6403,"children":6404},{"style":349},[6405],{"type":53,"value":476},{"type":47,"tag":321,"props":6407,"children":6408},{"style":349},[6409],{"type":53,"value":496},{"type":47,"tag":321,"props":6411,"children":6412},{"style":697},[6413],{"type":53,"value":6414},"X-Custom",{"type":47,"tag":321,"props":6416,"children":6417},{"style":349},[6418],{"type":53,"value":505},{"type":47,"tag":321,"props":6420,"children":6421},{"style":349},[6422],{"type":53,"value":772},{"type":47,"tag":321,"props":6424,"children":6425},{"style":349},[6426],{"type":53,"value":496},{"type":47,"tag":321,"props":6428,"children":6429},{"style":333},[6430],{"type":53,"value":6431},"value",{"type":47,"tag":321,"props":6433,"children":6434},{"style":349},[6435],{"type":53,"value":505},{"type":47,"tag":321,"props":6437,"children":6438},{"style":349},[6439],{"type":53,"value":2747},{"type":47,"tag":321,"props":6441,"children":6442},{"class":323,"line":761},[6443],{"type":47,"tag":321,"props":6444,"children":6445},{"style":349},[6446],{"type":53,"value":6447},"      },\n",{"type":47,"tag":321,"props":6449,"children":6450},{"class":323,"line":793},[6451,6455,6459],{"type":47,"tag":321,"props":6452,"children":6453},{"style":349},[6454],{"type":53,"value":1016},{"type":47,"tag":321,"props":6456,"children":6457},{"style":433},[6458],{"type":53,"value":737},{"type":47,"tag":321,"props":6460,"children":6461},{"style":349},[6462],{"type":53,"value":618},{"type":47,"tag":321,"props":6464,"children":6465},{"class":323,"line":872},[6466],{"type":47,"tag":321,"props":6467,"children":6468},{"style":349},[6469],{"type":53,"value":1033},{"type":47,"tag":321,"props":6471,"children":6472},{"class":323,"line":881},[6473,6477,6481],{"type":47,"tag":321,"props":6474,"children":6475},{"style":349},[6476],{"type":53,"value":855},{"type":47,"tag":321,"props":6478,"children":6479},{"style":433},[6480],{"type":53,"value":737},{"type":47,"tag":321,"props":6482,"children":6483},{"style":349},[6484],{"type":53,"value":510},{"type":47,"tag":56,"props":6486,"children":6487},{},[6488,6494,6496,6501],{"type":47,"tag":62,"props":6489,"children":6491},{"className":6490},[],[6492],{"type":53,"value":6493},"_passthrough",{"type":53,"value":6495}," deep-merges into the final provider request — typed provider keys take precedence over ",{"type":47,"tag":62,"props":6497,"children":6499},{"className":6498},[],[6500],{"type":53,"value":6493},{"type":53,"value":248},{"type":47,"tag":305,"props":6503,"children":6505},{"id":6504},"disableoutputsanitization",[6506],{"type":47,"tag":62,"props":6507,"children":6509},{"className":6508},[],[6510],{"type":53,"value":6511},"disableOutputSanitization",{"type":47,"tag":56,"props":6513,"children":6514},{},[6515,6517,6523,6525,6531],{"type":53,"value":6516},"Allow raw HTML \u002F unescaped characters in the output (e.g. ",{"type":47,"tag":62,"props":6518,"children":6520},{"className":6519},[],[6521],{"type":53,"value":6522},"&",{"type":53,"value":6524}," in In-App ",{"type":47,"tag":62,"props":6526,"children":6528},{"className":6527},[],[6529],{"type":53,"value":6530},"data.link",{"type":53,"value":6532},"):",{"type":47,"tag":287,"props":6534,"children":6536},{"className":457,"code":6535,"language":19,"meta":295,"style":295},"await step.inApp(\"link\", async () => ({\n  body: \"Check it out\",\n  data: { link: \"\u002Fp\u002F123?active=true&env=prod\" },\n}), { disableOutputSanitization: true });\n",[6537],{"type":47,"tag":62,"props":6538,"children":6539},{"__ignoreMap":295},[6540,6600,6628,6669],{"type":47,"tag":321,"props":6541,"children":6542},{"class":323,"line":23},[6543,6547,6551,6555,6559,6563,6567,6572,6576,6580,6584,6588,6592,6596],{"type":47,"tag":321,"props":6544,"children":6545},{"style":468},[6546],{"type":53,"value":1939},{"type":47,"tag":321,"props":6548,"children":6549},{"style":433},[6550],{"type":53,"value":638},{"type":47,"tag":321,"props":6552,"children":6553},{"style":349},[6554],{"type":53,"value":248},{"type":47,"tag":321,"props":6556,"children":6557},{"style":588},[6558],{"type":53,"value":2551},{"type":47,"tag":321,"props":6560,"children":6561},{"style":433},[6562],{"type":53,"value":700},{"type":47,"tag":321,"props":6564,"children":6565},{"style":349},[6566],{"type":53,"value":505},{"type":47,"tag":321,"props":6568,"children":6569},{"style":333},[6570],{"type":53,"value":6571},"link",{"type":47,"tag":321,"props":6573,"children":6574},{"style":349},[6575],{"type":53,"value":505},{"type":47,"tag":321,"props":6577,"children":6578},{"style":349},[6579],{"type":53,"value":643},{"type":47,"tag":321,"props":6581,"children":6582},{"style":572},[6583],{"type":53,"value":722},{"type":47,"tag":321,"props":6585,"children":6586},{"style":349},[6587],{"type":53,"value":2581},{"type":47,"tag":321,"props":6589,"children":6590},{"style":572},[6591],{"type":53,"value":667},{"type":47,"tag":321,"props":6593,"children":6594},{"style":433},[6595],{"type":53,"value":727},{"type":47,"tag":321,"props":6597,"children":6598},{"style":349},[6599],{"type":53,"value":926},{"type":47,"tag":321,"props":6601,"children":6602},{"class":323,"line":27},[6603,6607,6611,6615,6620,6624],{"type":47,"tag":321,"props":6604,"children":6605},{"style":697},[6606],{"type":53,"value":2385},{"type":47,"tag":321,"props":6608,"children":6609},{"style":349},[6610],{"type":53,"value":772},{"type":47,"tag":321,"props":6612,"children":6613},{"style":349},[6614],{"type":53,"value":496},{"type":47,"tag":321,"props":6616,"children":6617},{"style":333},[6618],{"type":53,"value":6619},"Check it out",{"type":47,"tag":321,"props":6621,"children":6622},{"style":349},[6623],{"type":53,"value":505},{"type":47,"tag":321,"props":6625,"children":6626},{"style":349},[6627],{"type":53,"value":618},{"type":47,"tag":321,"props":6629,"children":6630},{"class":323,"line":554},[6631,6635,6639,6643,6648,6652,6656,6661,6665],{"type":47,"tag":321,"props":6632,"children":6633},{"style":697},[6634],{"type":53,"value":2872},{"type":47,"tag":321,"props":6636,"children":6637},{"style":349},[6638],{"type":53,"value":772},{"type":47,"tag":321,"props":6640,"children":6641},{"style":349},[6642],{"type":53,"value":476},{"type":47,"tag":321,"props":6644,"children":6645},{"style":697},[6646],{"type":53,"value":6647}," link",{"type":47,"tag":321,"props":6649,"children":6650},{"style":349},[6651],{"type":53,"value":772},{"type":47,"tag":321,"props":6653,"children":6654},{"style":349},[6655],{"type":53,"value":496},{"type":47,"tag":321,"props":6657,"children":6658},{"style":333},[6659],{"type":53,"value":6660},"\u002Fp\u002F123?active=true&env=prod",{"type":47,"tag":321,"props":6662,"children":6663},{"style":349},[6664],{"type":53,"value":505},{"type":47,"tag":321,"props":6666,"children":6667},{"style":349},[6668],{"type":53,"value":2747},{"type":47,"tag":321,"props":6670,"children":6671},{"class":323,"line":563},[6672,6676,6680,6684,6688,6693,6697,6701,6705,6709],{"type":47,"tag":321,"props":6673,"children":6674},{"style":349},[6675],{"type":53,"value":855},{"type":47,"tag":321,"props":6677,"children":6678},{"style":433},[6679],{"type":53,"value":737},{"type":47,"tag":321,"props":6681,"children":6682},{"style":349},[6683],{"type":53,"value":643},{"type":47,"tag":321,"props":6685,"children":6686},{"style":349},[6687],{"type":53,"value":476},{"type":47,"tag":321,"props":6689,"children":6690},{"style":697},[6691],{"type":53,"value":6692}," disableOutputSanitization",{"type":47,"tag":321,"props":6694,"children":6695},{"style":349},[6696],{"type":53,"value":772},{"type":47,"tag":321,"props":6698,"children":6699},{"style":5032},[6700],{"type":53,"value":5035},{"type":47,"tag":321,"props":6702,"children":6703},{"style":349},[6704],{"type":53,"value":486},{"type":47,"tag":321,"props":6706,"children":6707},{"style":433},[6708],{"type":53,"value":737},{"type":47,"tag":321,"props":6710,"children":6711},{"style":349},[6712],{"type":53,"value":510},{"type":47,"tag":107,"props":6714,"children":6716},{"id":6715},"payload-schema",[6717],{"type":53,"value":6718},"Payload Schema",{"type":47,"tag":56,"props":6720,"children":6721},{},[6722,6724,6729],{"type":53,"value":6723},"The payload is the data passed at trigger time. Define a schema to get typed ",{"type":47,"tag":62,"props":6725,"children":6727},{"className":6726},[],[6728],{"type":53,"value":1657},{"type":53,"value":6730}," and runtime validation.",{"type":47,"tag":305,"props":6732,"children":6734},{"id":6733},"with-zod",[6735],{"type":53,"value":6736},"With Zod",{"type":47,"tag":287,"props":6738,"children":6740},{"className":457,"code":6739,"language":19,"meta":295,"style":295},"import { z } from \"zod\";\n\nworkflow(\"comment\", handler, {\n  payloadSchema: z.object({\n    postId: z.number(),\n    authorName: z.string(),\n    comment: z.string().max(200),\n  }),\n});\n",[6741],{"type":47,"tag":62,"props":6742,"children":6743},{"__ignoreMap":295},[6744,6783,6790,6830,6862,6895,6927,6981,6996],{"type":47,"tag":321,"props":6745,"children":6746},{"class":323,"line":23},[6747,6751,6755,6759,6763,6767,6771,6775,6779],{"type":47,"tag":321,"props":6748,"children":6749},{"style":468},[6750],{"type":53,"value":471},{"type":47,"tag":321,"props":6752,"children":6753},{"style":349},[6754],{"type":53,"value":476},{"type":47,"tag":321,"props":6756,"children":6757},{"style":433},[6758],{"type":53,"value":526},{"type":47,"tag":321,"props":6760,"children":6761},{"style":349},[6762],{"type":53,"value":486},{"type":47,"tag":321,"props":6764,"children":6765},{"style":468},[6766],{"type":53,"value":491},{"type":47,"tag":321,"props":6768,"children":6769},{"style":349},[6770],{"type":53,"value":496},{"type":47,"tag":321,"props":6772,"children":6773},{"style":333},[6774],{"type":53,"value":543},{"type":47,"tag":321,"props":6776,"children":6777},{"style":349},[6778],{"type":53,"value":505},{"type":47,"tag":321,"props":6780,"children":6781},{"style":349},[6782],{"type":53,"value":510},{"type":47,"tag":321,"props":6784,"children":6785},{"class":323,"line":27},[6786],{"type":47,"tag":321,"props":6787,"children":6788},{"emptyLinePlaceholder":41},[6789],{"type":53,"value":560},{"type":47,"tag":321,"props":6791,"children":6792},{"class":323,"line":554},[6793,6797,6801,6805,6810,6814,6818,6822,6826],{"type":47,"tag":321,"props":6794,"children":6795},{"style":588},[6796],{"type":53,"value":1462},{"type":47,"tag":321,"props":6798,"children":6799},{"style":433},[6800],{"type":53,"value":700},{"type":47,"tag":321,"props":6802,"children":6803},{"style":349},[6804],{"type":53,"value":505},{"type":47,"tag":321,"props":6806,"children":6807},{"style":333},[6808],{"type":53,"value":6809},"comment",{"type":47,"tag":321,"props":6811,"children":6812},{"style":349},[6813],{"type":53,"value":505},{"type":47,"tag":321,"props":6815,"children":6816},{"style":349},[6817],{"type":53,"value":643},{"type":47,"tag":321,"props":6819,"children":6820},{"style":433},[6821],{"type":53,"value":1476},{"type":47,"tag":321,"props":6823,"children":6824},{"style":349},[6825],{"type":53,"value":643},{"type":47,"tag":321,"props":6827,"children":6828},{"style":349},[6829],{"type":53,"value":672},{"type":47,"tag":321,"props":6831,"children":6832},{"class":323,"line":563},[6833,6838,6842,6846,6850,6854,6858],{"type":47,"tag":321,"props":6834,"children":6835},{"style":697},[6836],{"type":53,"value":6837},"  payloadSchema",{"type":47,"tag":321,"props":6839,"children":6840},{"style":349},[6841],{"type":53,"value":772},{"type":47,"tag":321,"props":6843,"children":6844},{"style":433},[6845],{"type":53,"value":526},{"type":47,"tag":321,"props":6847,"children":6848},{"style":349},[6849],{"type":53,"value":248},{"type":47,"tag":321,"props":6851,"children":6852},{"style":588},[6853],{"type":53,"value":917},{"type":47,"tag":321,"props":6855,"children":6856},{"style":433},[6857],{"type":53,"value":700},{"type":47,"tag":321,"props":6859,"children":6860},{"style":349},[6861],{"type":53,"value":926},{"type":47,"tag":321,"props":6863,"children":6864},{"class":323,"line":598},[6865,6870,6874,6878,6882,6887,6891],{"type":47,"tag":321,"props":6866,"children":6867},{"style":697},[6868],{"type":53,"value":6869},"    postId",{"type":47,"tag":321,"props":6871,"children":6872},{"style":349},[6873],{"type":53,"value":772},{"type":47,"tag":321,"props":6875,"children":6876},{"style":433},[6877],{"type":53,"value":526},{"type":47,"tag":321,"props":6879,"children":6880},{"style":349},[6881],{"type":53,"value":248},{"type":47,"tag":321,"props":6883,"children":6884},{"style":588},[6885],{"type":53,"value":6886},"number",{"type":47,"tag":321,"props":6888,"children":6889},{"style":433},[6890],{"type":53,"value":956},{"type":47,"tag":321,"props":6892,"children":6893},{"style":349},[6894],{"type":53,"value":618},{"type":47,"tag":321,"props":6896,"children":6897},{"class":323,"line":621},[6898,6903,6907,6911,6915,6919,6923],{"type":47,"tag":321,"props":6899,"children":6900},{"style":697},[6901],{"type":53,"value":6902},"    authorName",{"type":47,"tag":321,"props":6904,"children":6905},{"style":349},[6906],{"type":53,"value":772},{"type":47,"tag":321,"props":6908,"children":6909},{"style":433},[6910],{"type":53,"value":526},{"type":47,"tag":321,"props":6912,"children":6913},{"style":349},[6914],{"type":53,"value":248},{"type":47,"tag":321,"props":6916,"children":6917},{"style":588},[6918],{"type":53,"value":951},{"type":47,"tag":321,"props":6920,"children":6921},{"style":433},[6922],{"type":53,"value":956},{"type":47,"tag":321,"props":6924,"children":6925},{"style":349},[6926],{"type":53,"value":618},{"type":47,"tag":321,"props":6928,"children":6929},{"class":323,"line":675},[6930,6935,6939,6943,6947,6951,6955,6959,6964,6968,6973,6977],{"type":47,"tag":321,"props":6931,"children":6932},{"style":697},[6933],{"type":53,"value":6934},"    comment",{"type":47,"tag":321,"props":6936,"children":6937},{"style":349},[6938],{"type":53,"value":772},{"type":47,"tag":321,"props":6940,"children":6941},{"style":433},[6942],{"type":53,"value":526},{"type":47,"tag":321,"props":6944,"children":6945},{"style":349},[6946],{"type":53,"value":248},{"type":47,"tag":321,"props":6948,"children":6949},{"style":588},[6950],{"type":53,"value":951},{"type":47,"tag":321,"props":6952,"children":6953},{"style":433},[6954],{"type":53,"value":956},{"type":47,"tag":321,"props":6956,"children":6957},{"style":349},[6958],{"type":53,"value":248},{"type":47,"tag":321,"props":6960,"children":6961},{"style":588},[6962],{"type":53,"value":6963},"max",{"type":47,"tag":321,"props":6965,"children":6966},{"style":433},[6967],{"type":53,"value":700},{"type":47,"tag":321,"props":6969,"children":6970},{"style":3559},[6971],{"type":53,"value":6972},"200",{"type":47,"tag":321,"props":6974,"children":6975},{"style":433},[6976],{"type":53,"value":737},{"type":47,"tag":321,"props":6978,"children":6979},{"style":349},[6980],{"type":53,"value":618},{"type":47,"tag":321,"props":6982,"children":6983},{"class":323,"line":748},[6984,6988,6992],{"type":47,"tag":321,"props":6985,"children":6986},{"style":349},[6987],{"type":53,"value":4451},{"type":47,"tag":321,"props":6989,"children":6990},{"style":433},[6991],{"type":53,"value":737},{"type":47,"tag":321,"props":6993,"children":6994},{"style":349},[6995],{"type":53,"value":618},{"type":47,"tag":321,"props":6997,"children":6998},{"class":323,"line":761},[6999,7003,7007],{"type":47,"tag":321,"props":7000,"children":7001},{"style":349},[7002],{"type":53,"value":855},{"type":47,"tag":321,"props":7004,"children":7005},{"style":433},[7006],{"type":53,"value":737},{"type":47,"tag":321,"props":7008,"children":7009},{"style":349},[7010],{"type":53,"value":510},{"type":47,"tag":305,"props":7012,"children":7014},{"id":7013},"with-json-schema",[7015],{"type":53,"value":7016},"With JSON Schema",{"type":47,"tag":287,"props":7018,"children":7020},{"className":457,"code":7019,"language":19,"meta":295,"style":295},"workflow(\"comment\", handler, {\n  payloadSchema: {\n    type: \"object\",\n    properties: {\n      postId: { type: \"number\" },\n      authorName: { type: \"string\" },\n      comment: { type: \"string\", maxLength: 200 },\n    },\n    required: [\"postId\", \"comment\"],\n    additionalProperties: false,\n  } as const,\n});\n",[7021],{"type":47,"tag":62,"props":7022,"children":7023},{"__ignoreMap":295},[7024,7063,7078,7105,7120,7160,7200,7258,7265,7317,7338,7357],{"type":47,"tag":321,"props":7025,"children":7026},{"class":323,"line":23},[7027,7031,7035,7039,7043,7047,7051,7055,7059],{"type":47,"tag":321,"props":7028,"children":7029},{"style":588},[7030],{"type":53,"value":1462},{"type":47,"tag":321,"props":7032,"children":7033},{"style":433},[7034],{"type":53,"value":700},{"type":47,"tag":321,"props":7036,"children":7037},{"style":349},[7038],{"type":53,"value":505},{"type":47,"tag":321,"props":7040,"children":7041},{"style":333},[7042],{"type":53,"value":6809},{"type":47,"tag":321,"props":7044,"children":7045},{"style":349},[7046],{"type":53,"value":505},{"type":47,"tag":321,"props":7048,"children":7049},{"style":349},[7050],{"type":53,"value":643},{"type":47,"tag":321,"props":7052,"children":7053},{"style":433},[7054],{"type":53,"value":1476},{"type":47,"tag":321,"props":7056,"children":7057},{"style":349},[7058],{"type":53,"value":643},{"type":47,"tag":321,"props":7060,"children":7061},{"style":349},[7062],{"type":53,"value":672},{"type":47,"tag":321,"props":7064,"children":7065},{"class":323,"line":27},[7066,7070,7074],{"type":47,"tag":321,"props":7067,"children":7068},{"style":697},[7069],{"type":53,"value":6837},{"type":47,"tag":321,"props":7071,"children":7072},{"style":349},[7073],{"type":53,"value":772},{"type":47,"tag":321,"props":7075,"children":7076},{"style":349},[7077],{"type":53,"value":672},{"type":47,"tag":321,"props":7079,"children":7080},{"class":323,"line":554},[7081,7085,7089,7093,7097,7101],{"type":47,"tag":321,"props":7082,"children":7083},{"style":697},[7084],{"type":53,"value":4273},{"type":47,"tag":321,"props":7086,"children":7087},{"style":349},[7088],{"type":53,"value":772},{"type":47,"tag":321,"props":7090,"children":7091},{"style":349},[7092],{"type":53,"value":496},{"type":47,"tag":321,"props":7094,"children":7095},{"style":333},[7096],{"type":53,"value":917},{"type":47,"tag":321,"props":7098,"children":7099},{"style":349},[7100],{"type":53,"value":505},{"type":47,"tag":321,"props":7102,"children":7103},{"style":349},[7104],{"type":53,"value":618},{"type":47,"tag":321,"props":7106,"children":7107},{"class":323,"line":563},[7108,7112,7116],{"type":47,"tag":321,"props":7109,"children":7110},{"style":697},[7111],{"type":53,"value":4301},{"type":47,"tag":321,"props":7113,"children":7114},{"style":349},[7115],{"type":53,"value":772},{"type":47,"tag":321,"props":7117,"children":7118},{"style":349},[7119],{"type":53,"value":672},{"type":47,"tag":321,"props":7121,"children":7122},{"class":323,"line":598},[7123,7128,7132,7136,7140,7144,7148,7152,7156],{"type":47,"tag":321,"props":7124,"children":7125},{"style":697},[7126],{"type":53,"value":7127},"      postId",{"type":47,"tag":321,"props":7129,"children":7130},{"style":349},[7131],{"type":53,"value":772},{"type":47,"tag":321,"props":7133,"children":7134},{"style":349},[7135],{"type":53,"value":476},{"type":47,"tag":321,"props":7137,"children":7138},{"style":697},[7139],{"type":53,"value":4327},{"type":47,"tag":321,"props":7141,"children":7142},{"style":349},[7143],{"type":53,"value":772},{"type":47,"tag":321,"props":7145,"children":7146},{"style":349},[7147],{"type":53,"value":496},{"type":47,"tag":321,"props":7149,"children":7150},{"style":333},[7151],{"type":53,"value":6886},{"type":47,"tag":321,"props":7153,"children":7154},{"style":349},[7155],{"type":53,"value":505},{"type":47,"tag":321,"props":7157,"children":7158},{"style":349},[7159],{"type":53,"value":2747},{"type":47,"tag":321,"props":7161,"children":7162},{"class":323,"line":621},[7163,7168,7172,7176,7180,7184,7188,7192,7196],{"type":47,"tag":321,"props":7164,"children":7165},{"style":697},[7166],{"type":53,"value":7167},"      authorName",{"type":47,"tag":321,"props":7169,"children":7170},{"style":349},[7171],{"type":53,"value":772},{"type":47,"tag":321,"props":7173,"children":7174},{"style":349},[7175],{"type":53,"value":476},{"type":47,"tag":321,"props":7177,"children":7178},{"style":697},[7179],{"type":53,"value":4327},{"type":47,"tag":321,"props":7181,"children":7182},{"style":349},[7183],{"type":53,"value":772},{"type":47,"tag":321,"props":7185,"children":7186},{"style":349},[7187],{"type":53,"value":496},{"type":47,"tag":321,"props":7189,"children":7190},{"style":333},[7191],{"type":53,"value":951},{"type":47,"tag":321,"props":7193,"children":7194},{"style":349},[7195],{"type":53,"value":505},{"type":47,"tag":321,"props":7197,"children":7198},{"style":349},[7199],{"type":53,"value":2747},{"type":47,"tag":321,"props":7201,"children":7202},{"class":323,"line":675},[7203,7208,7212,7216,7220,7224,7228,7232,7236,7240,7245,7249,7254],{"type":47,"tag":321,"props":7204,"children":7205},{"style":697},[7206],{"type":53,"value":7207},"      comment",{"type":47,"tag":321,"props":7209,"children":7210},{"style":349},[7211],{"type":53,"value":772},{"type":47,"tag":321,"props":7213,"children":7214},{"style":349},[7215],{"type":53,"value":476},{"type":47,"tag":321,"props":7217,"children":7218},{"style":697},[7219],{"type":53,"value":4327},{"type":47,"tag":321,"props":7221,"children":7222},{"style":349},[7223],{"type":53,"value":772},{"type":47,"tag":321,"props":7225,"children":7226},{"style":349},[7227],{"type":53,"value":496},{"type":47,"tag":321,"props":7229,"children":7230},{"style":333},[7231],{"type":53,"value":951},{"type":47,"tag":321,"props":7233,"children":7234},{"style":349},[7235],{"type":53,"value":505},{"type":47,"tag":321,"props":7237,"children":7238},{"style":349},[7239],{"type":53,"value":643},{"type":47,"tag":321,"props":7241,"children":7242},{"style":697},[7243],{"type":53,"value":7244}," maxLength",{"type":47,"tag":321,"props":7246,"children":7247},{"style":349},[7248],{"type":53,"value":772},{"type":47,"tag":321,"props":7250,"children":7251},{"style":3559},[7252],{"type":53,"value":7253}," 200",{"type":47,"tag":321,"props":7255,"children":7256},{"style":349},[7257],{"type":53,"value":2747},{"type":47,"tag":321,"props":7259,"children":7260},{"class":323,"line":748},[7261],{"type":47,"tag":321,"props":7262,"children":7263},{"style":349},[7264],{"type":53,"value":5519},{"type":47,"tag":321,"props":7266,"children":7267},{"class":323,"line":761},[7268,7272,7276,7280,7284,7289,7293,7297,7301,7305,7309,7313],{"type":47,"tag":321,"props":7269,"children":7270},{"style":697},[7271],{"type":53,"value":4397},{"type":47,"tag":321,"props":7273,"children":7274},{"style":349},[7275],{"type":53,"value":772},{"type":47,"tag":321,"props":7277,"children":7278},{"style":433},[7279],{"type":53,"value":1264},{"type":47,"tag":321,"props":7281,"children":7282},{"style":349},[7283],{"type":53,"value":505},{"type":47,"tag":321,"props":7285,"children":7286},{"style":333},[7287],{"type":53,"value":7288},"postId",{"type":47,"tag":321,"props":7290,"children":7291},{"style":349},[7292],{"type":53,"value":505},{"type":47,"tag":321,"props":7294,"children":7295},{"style":349},[7296],{"type":53,"value":643},{"type":47,"tag":321,"props":7298,"children":7299},{"style":349},[7300],{"type":53,"value":496},{"type":47,"tag":321,"props":7302,"children":7303},{"style":333},[7304],{"type":53,"value":6809},{"type":47,"tag":321,"props":7306,"children":7307},{"style":349},[7308],{"type":53,"value":505},{"type":47,"tag":321,"props":7310,"children":7311},{"style":433},[7312],{"type":53,"value":1282},{"type":47,"tag":321,"props":7314,"children":7315},{"style":349},[7316],{"type":53,"value":618},{"type":47,"tag":321,"props":7318,"children":7319},{"class":323,"line":793},[7320,7325,7329,7334],{"type":47,"tag":321,"props":7321,"children":7322},{"style":697},[7323],{"type":53,"value":7324},"    additionalProperties",{"type":47,"tag":321,"props":7326,"children":7327},{"style":349},[7328],{"type":53,"value":772},{"type":47,"tag":321,"props":7330,"children":7331},{"style":5032},[7332],{"type":53,"value":7333}," false",{"type":47,"tag":321,"props":7335,"children":7336},{"style":349},[7337],{"type":53,"value":618},{"type":47,"tag":321,"props":7339,"children":7340},{"class":323,"line":872},[7341,7345,7349,7353],{"type":47,"tag":321,"props":7342,"children":7343},{"style":349},[7344],{"type":53,"value":4451},{"type":47,"tag":321,"props":7346,"children":7347},{"style":468},[7348],{"type":53,"value":4456},{"type":47,"tag":321,"props":7350,"children":7351},{"style":572},[7352],{"type":53,"value":575},{"type":47,"tag":321,"props":7354,"children":7355},{"style":349},[7356],{"type":53,"value":618},{"type":47,"tag":321,"props":7358,"children":7359},{"class":323,"line":881},[7360,7364,7368],{"type":47,"tag":321,"props":7361,"children":7362},{"style":349},[7363],{"type":53,"value":855},{"type":47,"tag":321,"props":7365,"children":7366},{"style":433},[7367],{"type":53,"value":737},{"type":47,"tag":321,"props":7369,"children":7370},{"style":349},[7371],{"type":53,"value":510},{"type":47,"tag":79,"props":7373,"children":7374},{},[7375],{"type":47,"tag":56,"props":7376,"children":7377},{},[7378,7380,7386],{"type":53,"value":7379},"The ",{"type":47,"tag":62,"props":7381,"children":7383},{"className":7382},[],[7384],{"type":53,"value":7385},"as const",{"type":53,"value":7387}," is required for TS to infer the payload type from JSON Schema.",{"type":47,"tag":305,"props":7389,"children":7391},{"id":7390},"with-class-validator",[7392],{"type":53,"value":7393},"With Class Validator",{"type":47,"tag":287,"props":7395,"children":7397},{"className":457,"code":7396,"language":19,"meta":295,"style":295},"import { IsString, IsNumber } from \"class-validator\";\n\nclass CommentPayload {\n  @IsNumber() postId!: number;\n  @IsString() authorName!: string;\n  @IsString() comment!: string;\n}\n\nworkflow(\"comment\", handler, { payloadSchema: CommentPayload });\n",[7398],{"type":47,"tag":62,"props":7399,"children":7400},{"__ignoreMap":295},[7401,7451,7458,7475,7511,7545,7576,7584,7591],{"type":47,"tag":321,"props":7402,"children":7403},{"class":323,"line":23},[7404,7408,7412,7417,7421,7426,7430,7434,7438,7443,7447],{"type":47,"tag":321,"props":7405,"children":7406},{"style":468},[7407],{"type":53,"value":471},{"type":47,"tag":321,"props":7409,"children":7410},{"style":349},[7411],{"type":53,"value":476},{"type":47,"tag":321,"props":7413,"children":7414},{"style":433},[7415],{"type":53,"value":7416}," IsString",{"type":47,"tag":321,"props":7418,"children":7419},{"style":349},[7420],{"type":53,"value":643},{"type":47,"tag":321,"props":7422,"children":7423},{"style":433},[7424],{"type":53,"value":7425}," IsNumber",{"type":47,"tag":321,"props":7427,"children":7428},{"style":349},[7429],{"type":53,"value":486},{"type":47,"tag":321,"props":7431,"children":7432},{"style":468},[7433],{"type":53,"value":491},{"type":47,"tag":321,"props":7435,"children":7436},{"style":349},[7437],{"type":53,"value":496},{"type":47,"tag":321,"props":7439,"children":7440},{"style":333},[7441],{"type":53,"value":7442},"class-validator",{"type":47,"tag":321,"props":7444,"children":7445},{"style":349},[7446],{"type":53,"value":505},{"type":47,"tag":321,"props":7448,"children":7449},{"style":349},[7450],{"type":53,"value":510},{"type":47,"tag":321,"props":7452,"children":7453},{"class":323,"line":27},[7454],{"type":47,"tag":321,"props":7455,"children":7456},{"emptyLinePlaceholder":41},[7457],{"type":53,"value":560},{"type":47,"tag":321,"props":7459,"children":7460},{"class":323,"line":554},[7461,7466,7471],{"type":47,"tag":321,"props":7462,"children":7463},{"style":572},[7464],{"type":53,"value":7465},"class",{"type":47,"tag":321,"props":7467,"children":7468},{"style":327},[7469],{"type":53,"value":7470}," CommentPayload",{"type":47,"tag":321,"props":7472,"children":7473},{"style":349},[7474],{"type":53,"value":672},{"type":47,"tag":321,"props":7476,"children":7477},{"class":323,"line":563},[7478,7483,7488,7493,7497,7502,7507],{"type":47,"tag":321,"props":7479,"children":7480},{"style":349},[7481],{"type":53,"value":7482},"  @",{"type":47,"tag":321,"props":7484,"children":7485},{"style":588},[7486],{"type":53,"value":7487},"IsNumber",{"type":47,"tag":321,"props":7489,"children":7490},{"style":433},[7491],{"type":53,"value":7492},"() ",{"type":47,"tag":321,"props":7494,"children":7495},{"style":697},[7496],{"type":53,"value":7288},{"type":47,"tag":321,"props":7498,"children":7499},{"style":349},[7500],{"type":53,"value":7501},"!:",{"type":47,"tag":321,"props":7503,"children":7504},{"style":327},[7505],{"type":53,"value":7506}," number",{"type":47,"tag":321,"props":7508,"children":7509},{"style":349},[7510],{"type":53,"value":510},{"type":47,"tag":321,"props":7512,"children":7513},{"class":323,"line":598},[7514,7518,7523,7527,7532,7536,7541],{"type":47,"tag":321,"props":7515,"children":7516},{"style":349},[7517],{"type":53,"value":7482},{"type":47,"tag":321,"props":7519,"children":7520},{"style":588},[7521],{"type":53,"value":7522},"IsString",{"type":47,"tag":321,"props":7524,"children":7525},{"style":433},[7526],{"type":53,"value":7492},{"type":47,"tag":321,"props":7528,"children":7529},{"style":697},[7530],{"type":53,"value":7531},"authorName",{"type":47,"tag":321,"props":7533,"children":7534},{"style":349},[7535],{"type":53,"value":7501},{"type":47,"tag":321,"props":7537,"children":7538},{"style":327},[7539],{"type":53,"value":7540}," string",{"type":47,"tag":321,"props":7542,"children":7543},{"style":349},[7544],{"type":53,"value":510},{"type":47,"tag":321,"props":7546,"children":7547},{"class":323,"line":621},[7548,7552,7556,7560,7564,7568,7572],{"type":47,"tag":321,"props":7549,"children":7550},{"style":349},[7551],{"type":53,"value":7482},{"type":47,"tag":321,"props":7553,"children":7554},{"style":588},[7555],{"type":53,"value":7522},{"type":47,"tag":321,"props":7557,"children":7558},{"style":433},[7559],{"type":53,"value":7492},{"type":47,"tag":321,"props":7561,"children":7562},{"style":697},[7563],{"type":53,"value":6809},{"type":47,"tag":321,"props":7565,"children":7566},{"style":349},[7567],{"type":53,"value":7501},{"type":47,"tag":321,"props":7569,"children":7570},{"style":327},[7571],{"type":53,"value":7540},{"type":47,"tag":321,"props":7573,"children":7574},{"style":349},[7575],{"type":53,"value":510},{"type":47,"tag":321,"props":7577,"children":7578},{"class":323,"line":675},[7579],{"type":47,"tag":321,"props":7580,"children":7581},{"style":349},[7582],{"type":53,"value":7583},"}\n",{"type":47,"tag":321,"props":7585,"children":7586},{"class":323,"line":748},[7587],{"type":47,"tag":321,"props":7588,"children":7589},{"emptyLinePlaceholder":41},[7590],{"type":53,"value":560},{"type":47,"tag":321,"props":7592,"children":7593},{"class":323,"line":761},[7594,7598,7602,7606,7610,7614,7618,7622,7626,7630,7635,7639,7644,7648,7652],{"type":47,"tag":321,"props":7595,"children":7596},{"style":588},[7597],{"type":53,"value":1462},{"type":47,"tag":321,"props":7599,"children":7600},{"style":433},[7601],{"type":53,"value":700},{"type":47,"tag":321,"props":7603,"children":7604},{"style":349},[7605],{"type":53,"value":505},{"type":47,"tag":321,"props":7607,"children":7608},{"style":333},[7609],{"type":53,"value":6809},{"type":47,"tag":321,"props":7611,"children":7612},{"style":349},[7613],{"type":53,"value":505},{"type":47,"tag":321,"props":7615,"children":7616},{"style":349},[7617],{"type":53,"value":643},{"type":47,"tag":321,"props":7619,"children":7620},{"style":433},[7621],{"type":53,"value":1476},{"type":47,"tag":321,"props":7623,"children":7624},{"style":349},[7625],{"type":53,"value":643},{"type":47,"tag":321,"props":7627,"children":7628},{"style":349},[7629],{"type":53,"value":476},{"type":47,"tag":321,"props":7631,"children":7632},{"style":697},[7633],{"type":53,"value":7634}," payloadSchema",{"type":47,"tag":321,"props":7636,"children":7637},{"style":349},[7638],{"type":53,"value":772},{"type":47,"tag":321,"props":7640,"children":7641},{"style":433},[7642],{"type":53,"value":7643}," CommentPayload ",{"type":47,"tag":321,"props":7645,"children":7646},{"style":349},[7647],{"type":53,"value":855},{"type":47,"tag":321,"props":7649,"children":7650},{"style":433},[7651],{"type":53,"value":737},{"type":47,"tag":321,"props":7653,"children":7654},{"style":349},[7655],{"type":53,"value":510},{"type":47,"tag":56,"props":7657,"children":7658},{},[7659,7661,7666,7667,7673,7674,7680,7682,7692],{"type":53,"value":7660},"Requires ",{"type":47,"tag":62,"props":7662,"children":7664},{"className":7663},[],[7665],{"type":53,"value":7442},{"type":53,"value":1865},{"type":47,"tag":62,"props":7668,"children":7670},{"className":7669},[],[7671],{"type":53,"value":7672},"class-validator-jsonschema",{"type":53,"value":1865},{"type":47,"tag":62,"props":7675,"children":7677},{"className":7676},[],[7678],{"type":53,"value":7679},"reflect-metadata",{"type":53,"value":7681},". See ",{"type":47,"tag":94,"props":7683,"children":7685},{"href":7684},".\u002Freferences\u002Fschema-validation.md",[7686],{"type":47,"tag":62,"props":7687,"children":7689},{"className":7688},[],[7690],{"type":53,"value":7691},"references\u002Fschema-validation.md",{"type":53,"value":248},{"type":47,"tag":107,"props":7694,"children":7696},{"id":7695},"step-controls-no-code-for-your-team",[7697],{"type":53,"value":7698},"Step Controls — No-Code for Your Team",{"type":47,"tag":56,"props":7700,"children":7701},{},[7702],{"type":53,"value":7703},"Controls are step-level inputs your non-technical peers can edit in the Novu Dashboard UI without touching code. They're validated by a schema you define (Zod \u002F JSON Schema \u002F Class-Validator).",{"type":47,"tag":287,"props":7705,"children":7707},{"className":457,"code":7706,"language":19,"meta":295,"style":295},"await step.email(\"welcome\", async (controls) => ({\n  subject: controls.subject,\n  body: render(\u003CEmailTemplate hideBanner={controls.hideBanner} \u002F>),\n}), {\n  controlSchema: z.object({\n    hideBanner: z.boolean().default(false),\n    subject: z.string().default(\"Hi {{subscriber.firstName | capitalize}}\"),\n  }),\n});\n",[7708],{"type":47,"tag":62,"props":7709,"children":7710},{"__ignoreMap":295},[7711,7778,7805,7867,7886,7917,7970,8031,8046],{"type":47,"tag":321,"props":7712,"children":7713},{"class":323,"line":23},[7714,7718,7722,7726,7730,7734,7738,7742,7746,7750,7754,7758,7762,7766,7770,7774],{"type":47,"tag":321,"props":7715,"children":7716},{"style":468},[7717],{"type":53,"value":1939},{"type":47,"tag":321,"props":7719,"children":7720},{"style":433},[7721],{"type":53,"value":638},{"type":47,"tag":321,"props":7723,"children":7724},{"style":349},[7725],{"type":53,"value":248},{"type":47,"tag":321,"props":7727,"children":7728},{"style":588},[7729],{"type":53,"value":694},{"type":47,"tag":321,"props":7731,"children":7732},{"style":433},[7733],{"type":53,"value":700},{"type":47,"tag":321,"props":7735,"children":7736},{"style":349},[7737],{"type":53,"value":505},{"type":47,"tag":321,"props":7739,"children":7740},{"style":333},[7741],{"type":53,"value":2313},{"type":47,"tag":321,"props":7743,"children":7744},{"style":349},[7745],{"type":53,"value":505},{"type":47,"tag":321,"props":7747,"children":7748},{"style":349},[7749],{"type":53,"value":643},{"type":47,"tag":321,"props":7751,"children":7752},{"style":572},[7753],{"type":53,"value":722},{"type":47,"tag":321,"props":7755,"children":7756},{"style":349},[7757],{"type":53,"value":727},{"type":47,"tag":321,"props":7759,"children":7760},{"style":635},[7761],{"type":53,"value":732},{"type":47,"tag":321,"props":7763,"children":7764},{"style":349},[7765],{"type":53,"value":737},{"type":47,"tag":321,"props":7767,"children":7768},{"style":572},[7769],{"type":53,"value":667},{"type":47,"tag":321,"props":7771,"children":7772},{"style":433},[7773],{"type":53,"value":727},{"type":47,"tag":321,"props":7775,"children":7776},{"style":349},[7777],{"type":53,"value":926},{"type":47,"tag":321,"props":7779,"children":7780},{"class":323,"line":27},[7781,7785,7789,7793,7797,7801],{"type":47,"tag":321,"props":7782,"children":7783},{"style":697},[7784],{"type":53,"value":2357},{"type":47,"tag":321,"props":7786,"children":7787},{"style":349},[7788],{"type":53,"value":772},{"type":47,"tag":321,"props":7790,"children":7791},{"style":433},[7792],{"type":53,"value":777},{"type":47,"tag":321,"props":7794,"children":7795},{"style":349},[7796],{"type":53,"value":248},{"type":47,"tag":321,"props":7798,"children":7799},{"style":433},[7800],{"type":53,"value":786},{"type":47,"tag":321,"props":7802,"children":7803},{"style":349},[7804],{"type":53,"value":618},{"type":47,"tag":321,"props":7806,"children":7807},{"class":323,"line":554},[7808,7812,7816,7820,7824,7829,7834,7838,7842,7846,7850,7855,7859,7863],{"type":47,"tag":321,"props":7809,"children":7810},{"style":697},[7811],{"type":53,"value":2385},{"type":47,"tag":321,"props":7813,"children":7814},{"style":349},[7815],{"type":53,"value":772},{"type":47,"tag":321,"props":7817,"children":7818},{"style":588},[7819],{"type":53,"value":2394},{"type":47,"tag":321,"props":7821,"children":7822},{"style":433},[7823],{"type":53,"value":2399},{"type":47,"tag":321,"props":7825,"children":7826},{"style":327},[7827],{"type":53,"value":7828},"EmailTemplate",{"type":47,"tag":321,"props":7830,"children":7831},{"style":327},[7832],{"type":53,"value":7833}," hideBanner",{"type":47,"tag":321,"props":7835,"children":7836},{"style":433},[7837],{"type":53,"value":585},{"type":47,"tag":321,"props":7839,"children":7840},{"style":349},[7841],{"type":53,"value":2418},{"type":47,"tag":321,"props":7843,"children":7844},{"style":327},[7845],{"type":53,"value":732},{"type":47,"tag":321,"props":7847,"children":7848},{"style":349},[7849],{"type":53,"value":248},{"type":47,"tag":321,"props":7851,"children":7852},{"style":697},[7853],{"type":53,"value":7854},"hideBanner",{"type":47,"tag":321,"props":7856,"children":7857},{"style":349},[7858],{"type":53,"value":855},{"type":47,"tag":321,"props":7860,"children":7861},{"style":433},[7862],{"type":53,"value":2440},{"type":47,"tag":321,"props":7864,"children":7865},{"style":349},[7866],{"type":53,"value":618},{"type":47,"tag":321,"props":7868,"children":7869},{"class":323,"line":563},[7870,7874,7878,7882],{"type":47,"tag":321,"props":7871,"children":7872},{"style":349},[7873],{"type":53,"value":855},{"type":47,"tag":321,"props":7875,"children":7876},{"style":433},[7877],{"type":53,"value":737},{"type":47,"tag":321,"props":7879,"children":7880},{"style":349},[7881],{"type":53,"value":643},{"type":47,"tag":321,"props":7883,"children":7884},{"style":349},[7885],{"type":53,"value":672},{"type":47,"tag":321,"props":7887,"children":7888},{"class":323,"line":598},[7889,7893,7897,7901,7905,7909,7913],{"type":47,"tag":321,"props":7890,"children":7891},{"style":697},[7892],{"type":53,"value":5909},{"type":47,"tag":321,"props":7894,"children":7895},{"style":349},[7896],{"type":53,"value":772},{"type":47,"tag":321,"props":7898,"children":7899},{"style":433},[7900],{"type":53,"value":526},{"type":47,"tag":321,"props":7902,"children":7903},{"style":349},[7904],{"type":53,"value":248},{"type":47,"tag":321,"props":7906,"children":7907},{"style":588},[7908],{"type":53,"value":917},{"type":47,"tag":321,"props":7910,"children":7911},{"style":433},[7912],{"type":53,"value":700},{"type":47,"tag":321,"props":7914,"children":7915},{"style":349},[7916],{"type":53,"value":926},{"type":47,"tag":321,"props":7918,"children":7919},{"class":323,"line":621},[7920,7925,7929,7933,7937,7941,7945,7949,7953,7957,7962,7966],{"type":47,"tag":321,"props":7921,"children":7922},{"style":697},[7923],{"type":53,"value":7924},"    hideBanner",{"type":47,"tag":321,"props":7926,"children":7927},{"style":349},[7928],{"type":53,"value":772},{"type":47,"tag":321,"props":7930,"children":7931},{"style":433},[7932],{"type":53,"value":526},{"type":47,"tag":321,"props":7934,"children":7935},{"style":349},[7936],{"type":53,"value":248},{"type":47,"tag":321,"props":7938,"children":7939},{"style":588},[7940],{"type":53,"value":1785},{"type":47,"tag":321,"props":7942,"children":7943},{"style":433},[7944],{"type":53,"value":956},{"type":47,"tag":321,"props":7946,"children":7947},{"style":349},[7948],{"type":53,"value":248},{"type":47,"tag":321,"props":7950,"children":7951},{"style":588},[7952],{"type":53,"value":965},{"type":47,"tag":321,"props":7954,"children":7955},{"style":433},[7956],{"type":53,"value":700},{"type":47,"tag":321,"props":7958,"children":7959},{"style":5032},[7960],{"type":53,"value":7961},"false",{"type":47,"tag":321,"props":7963,"children":7964},{"style":433},[7965],{"type":53,"value":737},{"type":47,"tag":321,"props":7967,"children":7968},{"style":349},[7969],{"type":53,"value":618},{"type":47,"tag":321,"props":7971,"children":7972},{"class":323,"line":675},[7973,7978,7982,7986,7990,7994,7998,8002,8006,8010,8014,8019,8023,8027],{"type":47,"tag":321,"props":7974,"children":7975},{"style":697},[7976],{"type":53,"value":7977},"    subject",{"type":47,"tag":321,"props":7979,"children":7980},{"style":349},[7981],{"type":53,"value":772},{"type":47,"tag":321,"props":7983,"children":7984},{"style":433},[7985],{"type":53,"value":526},{"type":47,"tag":321,"props":7987,"children":7988},{"style":349},[7989],{"type":53,"value":248},{"type":47,"tag":321,"props":7991,"children":7992},{"style":588},[7993],{"type":53,"value":951},{"type":47,"tag":321,"props":7995,"children":7996},{"style":433},[7997],{"type":53,"value":956},{"type":47,"tag":321,"props":7999,"children":8000},{"style":349},[8001],{"type":53,"value":248},{"type":47,"tag":321,"props":8003,"children":8004},{"style":588},[8005],{"type":53,"value":965},{"type":47,"tag":321,"props":8007,"children":8008},{"style":433},[8009],{"type":53,"value":700},{"type":47,"tag":321,"props":8011,"children":8012},{"style":349},[8013],{"type":53,"value":505},{"type":47,"tag":321,"props":8015,"children":8016},{"style":333},[8017],{"type":53,"value":8018},"Hi {{subscriber.firstName | capitalize}}",{"type":47,"tag":321,"props":8020,"children":8021},{"style":349},[8022],{"type":53,"value":505},{"type":47,"tag":321,"props":8024,"children":8025},{"style":433},[8026],{"type":53,"value":737},{"type":47,"tag":321,"props":8028,"children":8029},{"style":349},[8030],{"type":53,"value":618},{"type":47,"tag":321,"props":8032,"children":8033},{"class":323,"line":748},[8034,8038,8042],{"type":47,"tag":321,"props":8035,"children":8036},{"style":349},[8037],{"type":53,"value":4451},{"type":47,"tag":321,"props":8039,"children":8040},{"style":433},[8041],{"type":53,"value":737},{"type":47,"tag":321,"props":8043,"children":8044},{"style":349},[8045],{"type":53,"value":618},{"type":47,"tag":321,"props":8047,"children":8048},{"class":323,"line":761},[8049,8053,8057],{"type":47,"tag":321,"props":8050,"children":8051},{"style":349},[8052],{"type":53,"value":855},{"type":47,"tag":321,"props":8054,"children":8055},{"style":433},[8056],{"type":53,"value":737},{"type":47,"tag":321,"props":8058,"children":8059},{"style":349},[8060],{"type":53,"value":510},{"type":47,"tag":305,"props":8062,"children":8064},{"id":8063},"variables-in-controls",[8065],{"type":53,"value":8066},"Variables in Controls",{"type":47,"tag":56,"props":8068,"children":8069},{},[8070,8072,8080],{"type":53,"value":8071},"Control values support ",{"type":47,"tag":94,"props":8073,"children":8077},{"href":8074,"rel":8075},"https:\u002F\u002Fliquidjs.com\u002Ffilters\u002Foverview.html",[8076],"nofollow",[8078],{"type":53,"value":8079},"LiquidJS",{"type":53,"value":8081}," templating:",{"type":47,"tag":1844,"props":8083,"children":8084},{},[8085,8096,8112,8123],{"type":47,"tag":229,"props":8086,"children":8087},{},[8088,8094],{"type":47,"tag":62,"props":8089,"children":8091},{"className":8090},[],[8092],{"type":53,"value":8093},"{{subscriber.firstName}}",{"type":53,"value":8095}," — any subscriber attribute",{"type":47,"tag":229,"props":8097,"children":8098},{},[8099,8105,8107],{"type":47,"tag":62,"props":8100,"children":8102},{"className":8101},[],[8103],{"type":53,"value":8104},"{{payload.userId}}",{"type":53,"value":8106}," — any payload field defined in ",{"type":47,"tag":62,"props":8108,"children":8110},{"className":8109},[],[8111],{"type":53,"value":1637},{"type":47,"tag":229,"props":8113,"children":8114},{},[8115,8121],{"type":47,"tag":62,"props":8116,"children":8118},{"className":8117},[],[8119],{"type":53,"value":8120},"{{payload.invoiceDate | date: '%a, %b %d, %y'}}",{"type":53,"value":8122}," — Liquid filters",{"type":47,"tag":229,"props":8124,"children":8125},{},[8126,8132],{"type":47,"tag":62,"props":8127,"children":8129},{"className":8128},[],[8130],{"type":53,"value":8131},"{{subscriber.firstName | append: ': ' | append: payload.status | capitalize}}",{"type":53,"value":8133}," — chained filters",{"type":47,"tag":56,"props":8135,"children":8136},{},[8137,8139,8145],{"type":53,"value":8138},"Type ",{"type":47,"tag":62,"props":8140,"children":8142},{"className":8141},[],[8143],{"type":53,"value":8144},"{{",{"type":53,"value":8146}," in the Dashboard UI to autocomplete available variables.",{"type":47,"tag":305,"props":8148,"children":8150},{"id":8149},"controls-vs-payload",[8151],{"type":53,"value":8152},"Controls vs Payload",{"type":47,"tag":114,"props":8154,"children":8155},{},[8156,8175],{"type":47,"tag":118,"props":8157,"children":8158},{},[8159],{"type":47,"tag":122,"props":8160,"children":8161},{},[8162,8165,8170],{"type":47,"tag":126,"props":8163,"children":8164},{},[],{"type":47,"tag":126,"props":8166,"children":8167},{},[8168],{"type":53,"value":8169},"Controls",{"type":47,"tag":126,"props":8171,"children":8172},{},[8173],{"type":53,"value":8174},"Payload",{"type":47,"tag":137,"props":8176,"children":8177},{},[8178,8196,8225,8243],{"type":47,"tag":122,"props":8179,"children":8180},{},[8181,8186,8191],{"type":47,"tag":144,"props":8182,"children":8183},{},[8184],{"type":53,"value":8185},"Edited by",{"type":47,"tag":144,"props":8187,"children":8188},{},[8189],{"type":53,"value":8190},"Non-technical peers in Dashboard",{"type":47,"tag":144,"props":8192,"children":8193},{},[8194],{"type":53,"value":8195},"Developers in code",{"type":47,"tag":122,"props":8197,"children":8198},{},[8199,8204,8215],{"type":47,"tag":144,"props":8200,"children":8201},{},[8202],{"type":53,"value":8203},"Schema",{"type":47,"tag":144,"props":8205,"children":8206},{},[8207,8213],{"type":47,"tag":62,"props":8208,"children":8210},{"className":8209},[],[8211],{"type":53,"value":8212},"controlSchema",{"type":53,"value":8214}," per step",{"type":47,"tag":144,"props":8216,"children":8217},{},[8218,8223],{"type":47,"tag":62,"props":8219,"children":8221},{"className":8220},[],[8222],{"type":53,"value":1637},{"type":53,"value":8224}," per workflow",{"type":47,"tag":122,"props":8226,"children":8227},{},[8228,8233,8238],{"type":47,"tag":144,"props":8229,"children":8230},{},[8231],{"type":53,"value":8232},"Persistence",{"type":47,"tag":144,"props":8234,"children":8235},{},[8236],{"type":53,"value":8237},"Stored in Novu Cloud per environment",{"type":47,"tag":144,"props":8239,"children":8240},{},[8241],{"type":53,"value":8242},"Sent at trigger time",{"type":47,"tag":122,"props":8244,"children":8245},{},[8246,8251,8256],{"type":47,"tag":144,"props":8247,"children":8248},{},[8249],{"type":53,"value":8250},"Use case",{"type":47,"tag":144,"props":8252,"children":8253},{},[8254],{"type":53,"value":8255},"Subject, copy, styling, behaviour toggles",{"type":47,"tag":144,"props":8257,"children":8258},{},[8259],{"type":53,"value":8260},"Dynamic per-trigger data",{"type":47,"tag":107,"props":8262,"children":8264},{"id":8263},"workflow-preferences",[8265],{"type":53,"value":8266},"Workflow Preferences",{"type":47,"tag":56,"props":8268,"children":8269},{},[8270,8272,8282],{"type":53,"value":8271},"Define default channel preferences in code. See ",{"type":47,"tag":94,"props":8273,"children":8275},{"href":8274},"..\u002Fmanage-preferences",[8276],{"type":47,"tag":62,"props":8277,"children":8279},{"className":8278},[],[8280],{"type":53,"value":8281},"manage-preferences",{"type":53,"value":8283}," for the full preference resolution model.",{"type":47,"tag":287,"props":8285,"children":8287},{"className":457,"code":8286,"language":19,"meta":295,"style":295},"workflow(\"system-alert\", handler, {\n  preferences: {\n    all: { enabled: true, readOnly: false },\n    channels: {\n      email: { enabled: true },\n      sms: { enabled: false },\n      inApp: { enabled: true },\n    },\n  },\n});\n",[8288],{"type":47,"tag":62,"props":8289,"children":8290},{"__ignoreMap":295},[8291,8331,8347,8397,8413,8445,8477,8509,8516,8523],{"type":47,"tag":321,"props":8292,"children":8293},{"class":323,"line":23},[8294,8298,8302,8306,8311,8315,8319,8323,8327],{"type":47,"tag":321,"props":8295,"children":8296},{"style":588},[8297],{"type":53,"value":1462},{"type":47,"tag":321,"props":8299,"children":8300},{"style":433},[8301],{"type":53,"value":700},{"type":47,"tag":321,"props":8303,"children":8304},{"style":349},[8305],{"type":53,"value":505},{"type":47,"tag":321,"props":8307,"children":8308},{"style":333},[8309],{"type":53,"value":8310},"system-alert",{"type":47,"tag":321,"props":8312,"children":8313},{"style":349},[8314],{"type":53,"value":505},{"type":47,"tag":321,"props":8316,"children":8317},{"style":349},[8318],{"type":53,"value":643},{"type":47,"tag":321,"props":8320,"children":8321},{"style":433},[8322],{"type":53,"value":1476},{"type":47,"tag":321,"props":8324,"children":8325},{"style":349},[8326],{"type":53,"value":643},{"type":47,"tag":321,"props":8328,"children":8329},{"style":349},[8330],{"type":53,"value":672},{"type":47,"tag":321,"props":8332,"children":8333},{"class":323,"line":27},[8334,8339,8343],{"type":47,"tag":321,"props":8335,"children":8336},{"style":697},[8337],{"type":53,"value":8338},"  preferences",{"type":47,"tag":321,"props":8340,"children":8341},{"style":349},[8342],{"type":53,"value":772},{"type":47,"tag":321,"props":8344,"children":8345},{"style":349},[8346],{"type":53,"value":672},{"type":47,"tag":321,"props":8348,"children":8349},{"class":323,"line":554},[8350,8355,8359,8363,8368,8372,8376,8380,8385,8389,8393],{"type":47,"tag":321,"props":8351,"children":8352},{"style":697},[8353],{"type":53,"value":8354},"    all",{"type":47,"tag":321,"props":8356,"children":8357},{"style":349},[8358],{"type":53,"value":772},{"type":47,"tag":321,"props":8360,"children":8361},{"style":349},[8362],{"type":53,"value":476},{"type":47,"tag":321,"props":8364,"children":8365},{"style":697},[8366],{"type":53,"value":8367}," enabled",{"type":47,"tag":321,"props":8369,"children":8370},{"style":349},[8371],{"type":53,"value":772},{"type":47,"tag":321,"props":8373,"children":8374},{"style":5032},[8375],{"type":53,"value":5035},{"type":47,"tag":321,"props":8377,"children":8378},{"style":349},[8379],{"type":53,"value":643},{"type":47,"tag":321,"props":8381,"children":8382},{"style":697},[8383],{"type":53,"value":8384}," readOnly",{"type":47,"tag":321,"props":8386,"children":8387},{"style":349},[8388],{"type":53,"value":772},{"type":47,"tag":321,"props":8390,"children":8391},{"style":5032},[8392],{"type":53,"value":7333},{"type":47,"tag":321,"props":8394,"children":8395},{"style":349},[8396],{"type":53,"value":2747},{"type":47,"tag":321,"props":8398,"children":8399},{"class":323,"line":563},[8400,8405,8409],{"type":47,"tag":321,"props":8401,"children":8402},{"style":697},[8403],{"type":53,"value":8404},"    channels",{"type":47,"tag":321,"props":8406,"children":8407},{"style":349},[8408],{"type":53,"value":772},{"type":47,"tag":321,"props":8410,"children":8411},{"style":349},[8412],{"type":53,"value":672},{"type":47,"tag":321,"props":8414,"children":8415},{"class":323,"line":598},[8416,8421,8425,8429,8433,8437,8441],{"type":47,"tag":321,"props":8417,"children":8418},{"style":697},[8419],{"type":53,"value":8420},"      email",{"type":47,"tag":321,"props":8422,"children":8423},{"style":349},[8424],{"type":53,"value":772},{"type":47,"tag":321,"props":8426,"children":8427},{"style":349},[8428],{"type":53,"value":476},{"type":47,"tag":321,"props":8430,"children":8431},{"style":697},[8432],{"type":53,"value":8367},{"type":47,"tag":321,"props":8434,"children":8435},{"style":349},[8436],{"type":53,"value":772},{"type":47,"tag":321,"props":8438,"children":8439},{"style":5032},[8440],{"type":53,"value":5035},{"type":47,"tag":321,"props":8442,"children":8443},{"style":349},[8444],{"type":53,"value":2747},{"type":47,"tag":321,"props":8446,"children":8447},{"class":323,"line":621},[8448,8453,8457,8461,8465,8469,8473],{"type":47,"tag":321,"props":8449,"children":8450},{"style":697},[8451],{"type":53,"value":8452},"      sms",{"type":47,"tag":321,"props":8454,"children":8455},{"style":349},[8456],{"type":53,"value":772},{"type":47,"tag":321,"props":8458,"children":8459},{"style":349},[8460],{"type":53,"value":476},{"type":47,"tag":321,"props":8462,"children":8463},{"style":697},[8464],{"type":53,"value":8367},{"type":47,"tag":321,"props":8466,"children":8467},{"style":349},[8468],{"type":53,"value":772},{"type":47,"tag":321,"props":8470,"children":8471},{"style":5032},[8472],{"type":53,"value":7333},{"type":47,"tag":321,"props":8474,"children":8475},{"style":349},[8476],{"type":53,"value":2747},{"type":47,"tag":321,"props":8478,"children":8479},{"class":323,"line":675},[8480,8485,8489,8493,8497,8501,8505],{"type":47,"tag":321,"props":8481,"children":8482},{"style":697},[8483],{"type":53,"value":8484},"      inApp",{"type":47,"tag":321,"props":8486,"children":8487},{"style":349},[8488],{"type":53,"value":772},{"type":47,"tag":321,"props":8490,"children":8491},{"style":349},[8492],{"type":53,"value":476},{"type":47,"tag":321,"props":8494,"children":8495},{"style":697},[8496],{"type":53,"value":8367},{"type":47,"tag":321,"props":8498,"children":8499},{"style":349},[8500],{"type":53,"value":772},{"type":47,"tag":321,"props":8502,"children":8503},{"style":5032},[8504],{"type":53,"value":5035},{"type":47,"tag":321,"props":8506,"children":8507},{"style":349},[8508],{"type":53,"value":2747},{"type":47,"tag":321,"props":8510,"children":8511},{"class":323,"line":748},[8512],{"type":47,"tag":321,"props":8513,"children":8514},{"style":349},[8515],{"type":53,"value":5519},{"type":47,"tag":321,"props":8517,"children":8518},{"class":323,"line":761},[8519],{"type":47,"tag":321,"props":8520,"children":8521},{"style":349},[8522],{"type":53,"value":1033},{"type":47,"tag":321,"props":8524,"children":8525},{"class":323,"line":793},[8526,8530,8534],{"type":47,"tag":321,"props":8527,"children":8528},{"style":349},[8529],{"type":53,"value":855},{"type":47,"tag":321,"props":8531,"children":8532},{"style":433},[8533],{"type":53,"value":737},{"type":47,"tag":321,"props":8535,"children":8536},{"style":349},[8537],{"type":53,"value":510},{"type":47,"tag":1844,"props":8539,"children":8540},{},[8541,8558,8576],{"type":47,"tag":229,"props":8542,"children":8543},{},[8544,8550,8552,8556],{"type":47,"tag":62,"props":8545,"children":8547},{"className":8546},[],[8548],{"type":53,"value":8549},"all.readOnly: true",{"type":53,"value":8551}," makes the workflow ",{"type":47,"tag":71,"props":8553,"children":8554},{},[8555],{"type":53,"value":1425},{"type":53,"value":8557}," — subscribers cannot disable it.",{"type":47,"tag":229,"props":8559,"children":8560},{},[8561,8567,8569,8575],{"type":47,"tag":62,"props":8562,"children":8564},{"className":8563},[],[8565],{"type":53,"value":8566},"all.enabled",{"type":53,"value":8568}," is the fallback for any channel not in ",{"type":47,"tag":62,"props":8570,"children":8572},{"className":8571},[],[8573],{"type":53,"value":8574},"channels",{"type":53,"value":248},{"type":47,"tag":229,"props":8577,"children":8578},{},[8579,8581,8587,8588,8594],{"type":53,"value":8580},"Default if omitted: ",{"type":47,"tag":62,"props":8582,"children":8584},{"className":8583},[],[8585],{"type":53,"value":8586},"enabled: true",{"type":53,"value":1865},{"type":47,"tag":62,"props":8589,"children":8591},{"className":8590},[],[8592],{"type":53,"value":8593},"readOnly: false",{"type":53,"value":8595}," for all channels.",{"type":47,"tag":107,"props":8597,"children":8599},{"id":8598},"bridge-endpoint-setup",[8600],{"type":53,"value":1324},{"type":47,"tag":56,"props":8602,"children":8603},{},[8604,8606,8611],{"type":53,"value":8605},"The Bridge is a single HTTP route (",{"type":47,"tag":62,"props":8607,"children":8609},{"className":8608},[],[8610],{"type":53,"value":259},{"type":53,"value":8612}," by default) where Novu Cloud calls your app to:",{"type":47,"tag":1844,"props":8614,"children":8615},{},[8616,8627,8638],{"type":47,"tag":229,"props":8617,"children":8618},{},[8619,8621,8626],{"type":53,"value":8620},"Discover registered workflows (",{"type":47,"tag":62,"props":8622,"children":8624},{"className":8623},[],[8625],{"type":53,"value":4186},{"type":53,"value":737},{"type":47,"tag":229,"props":8628,"children":8629},{},[8630,8632,8637],{"type":53,"value":8631},"Resolve step content for a given subscriber + payload (",{"type":47,"tag":62,"props":8633,"children":8635},{"className":8634},[],[8636],{"type":53,"value":4758},{"type":53,"value":737},{"type":47,"tag":229,"props":8639,"children":8640},{},[8641],{"type":53,"value":8642},"Verify HMAC signatures on requests",{"type":47,"tag":56,"props":8644,"children":8645},{},[8646,8648,8654],{"type":53,"value":8647},"Each framework ships a ",{"type":47,"tag":62,"props":8649,"children":8651},{"className":8650},[],[8652],{"type":53,"value":8653},"serve",{"type":53,"value":8655}," wrapper that handles parsing, HMAC verification, and response shaping.",{"type":47,"tag":305,"props":8657,"children":8659},{"id":8658},"nextjs-app-router",[8660],{"type":53,"value":8661},"Next.js (App Router)",{"type":47,"tag":287,"props":8663,"children":8665},{"className":457,"code":8664,"language":19,"meta":295,"style":295},"import { serve } from \"@novu\u002Fframework\u002Fnext\";\nimport { welcomeWorkflow } from \"@\u002Fnovu\u002Fworkflows\";\n\nexport const { GET, POST, OPTIONS } = serve({\n  workflows: [welcomeWorkflow],\n});\n",[8666],{"type":47,"tag":62,"props":8667,"children":8668},{"__ignoreMap":295},[8669,8710,8751,8758,8816,8837],{"type":47,"tag":321,"props":8670,"children":8671},{"class":323,"line":23},[8672,8676,8680,8685,8689,8693,8697,8702,8706],{"type":47,"tag":321,"props":8673,"children":8674},{"style":468},[8675],{"type":53,"value":471},{"type":47,"tag":321,"props":8677,"children":8678},{"style":349},[8679],{"type":53,"value":476},{"type":47,"tag":321,"props":8681,"children":8682},{"style":433},[8683],{"type":53,"value":8684}," serve",{"type":47,"tag":321,"props":8686,"children":8687},{"style":349},[8688],{"type":53,"value":486},{"type":47,"tag":321,"props":8690,"children":8691},{"style":468},[8692],{"type":53,"value":491},{"type":47,"tag":321,"props":8694,"children":8695},{"style":349},[8696],{"type":53,"value":496},{"type":47,"tag":321,"props":8698,"children":8699},{"style":333},[8700],{"type":53,"value":8701},"@novu\u002Fframework\u002Fnext",{"type":47,"tag":321,"props":8703,"children":8704},{"style":349},[8705],{"type":53,"value":505},{"type":47,"tag":321,"props":8707,"children":8708},{"style":349},[8709],{"type":53,"value":510},{"type":47,"tag":321,"props":8711,"children":8712},{"class":323,"line":27},[8713,8717,8721,8726,8730,8734,8738,8743,8747],{"type":47,"tag":321,"props":8714,"children":8715},{"style":468},[8716],{"type":53,"value":471},{"type":47,"tag":321,"props":8718,"children":8719},{"style":349},[8720],{"type":53,"value":476},{"type":47,"tag":321,"props":8722,"children":8723},{"style":433},[8724],{"type":53,"value":8725}," welcomeWorkflow",{"type":47,"tag":321,"props":8727,"children":8728},{"style":349},[8729],{"type":53,"value":486},{"type":47,"tag":321,"props":8731,"children":8732},{"style":468},[8733],{"type":53,"value":491},{"type":47,"tag":321,"props":8735,"children":8736},{"style":349},[8737],{"type":53,"value":496},{"type":47,"tag":321,"props":8739,"children":8740},{"style":333},[8741],{"type":53,"value":8742},"@\u002Fnovu\u002Fworkflows",{"type":47,"tag":321,"props":8744,"children":8745},{"style":349},[8746],{"type":53,"value":505},{"type":47,"tag":321,"props":8748,"children":8749},{"style":349},[8750],{"type":53,"value":510},{"type":47,"tag":321,"props":8752,"children":8753},{"class":323,"line":554},[8754],{"type":47,"tag":321,"props":8755,"children":8756},{"emptyLinePlaceholder":41},[8757],{"type":53,"value":560},{"type":47,"tag":321,"props":8759,"children":8760},{"class":323,"line":563},[8761,8765,8769,8773,8778,8782,8787,8791,8796,8800,8804,8808,8812],{"type":47,"tag":321,"props":8762,"children":8763},{"style":468},[8764],{"type":53,"value":569},{"type":47,"tag":321,"props":8766,"children":8767},{"style":572},[8768],{"type":53,"value":575},{"type":47,"tag":321,"props":8770,"children":8771},{"style":349},[8772],{"type":53,"value":476},{"type":47,"tag":321,"props":8774,"children":8775},{"style":433},[8776],{"type":53,"value":8777}," GET",{"type":47,"tag":321,"props":8779,"children":8780},{"style":349},[8781],{"type":53,"value":643},{"type":47,"tag":321,"props":8783,"children":8784},{"style":433},[8785],{"type":53,"value":8786}," POST",{"type":47,"tag":321,"props":8788,"children":8789},{"style":349},[8790],{"type":53,"value":643},{"type":47,"tag":321,"props":8792,"children":8793},{"style":433},[8794],{"type":53,"value":8795}," OPTIONS ",{"type":47,"tag":321,"props":8797,"children":8798},{"style":349},[8799],{"type":53,"value":855},{"type":47,"tag":321,"props":8801,"children":8802},{"style":349},[8803],{"type":53,"value":3682},{"type":47,"tag":321,"props":8805,"children":8806},{"style":588},[8807],{"type":53,"value":8684},{"type":47,"tag":321,"props":8809,"children":8810},{"style":433},[8811],{"type":53,"value":700},{"type":47,"tag":321,"props":8813,"children":8814},{"style":349},[8815],{"type":53,"value":926},{"type":47,"tag":321,"props":8817,"children":8818},{"class":323,"line":598},[8819,8824,8828,8833],{"type":47,"tag":321,"props":8820,"children":8821},{"style":697},[8822],{"type":53,"value":8823},"  workflows",{"type":47,"tag":321,"props":8825,"children":8826},{"style":349},[8827],{"type":53,"value":772},{"type":47,"tag":321,"props":8829,"children":8830},{"style":433},[8831],{"type":53,"value":8832}," [welcomeWorkflow]",{"type":47,"tag":321,"props":8834,"children":8835},{"style":349},[8836],{"type":53,"value":618},{"type":47,"tag":321,"props":8838,"children":8839},{"class":323,"line":621},[8840,8844,8848],{"type":47,"tag":321,"props":8841,"children":8842},{"style":349},[8843],{"type":53,"value":855},{"type":47,"tag":321,"props":8845,"children":8846},{"style":433},[8847],{"type":53,"value":737},{"type":47,"tag":321,"props":8849,"children":8850},{"style":349},[8851],{"type":53,"value":510},{"type":47,"tag":305,"props":8853,"children":8855},{"id":8854},"nextjs-pages-router",[8856],{"type":53,"value":8857},"Next.js (Pages Router)",{"type":47,"tag":287,"props":8859,"children":8861},{"className":457,"code":8860,"language":19,"meta":295,"style":295},"import { serve } from \"@novu\u002Fframework\u002Fnext\";\nimport { welcomeWorkflow } from \"..\u002F..\u002Fnovu\u002Fworkflows\";\n\nexport default serve({ workflows: [welcomeWorkflow] });\n",[8862],{"type":47,"tag":62,"props":8863,"children":8864},{"__ignoreMap":295},[8865,8904,8944,8951],{"type":47,"tag":321,"props":8866,"children":8867},{"class":323,"line":23},[8868,8872,8876,8880,8884,8888,8892,8896,8900],{"type":47,"tag":321,"props":8869,"children":8870},{"style":468},[8871],{"type":53,"value":471},{"type":47,"tag":321,"props":8873,"children":8874},{"style":349},[8875],{"type":53,"value":476},{"type":47,"tag":321,"props":8877,"children":8878},{"style":433},[8879],{"type":53,"value":8684},{"type":47,"tag":321,"props":8881,"children":8882},{"style":349},[8883],{"type":53,"value":486},{"type":47,"tag":321,"props":8885,"children":8886},{"style":468},[8887],{"type":53,"value":491},{"type":47,"tag":321,"props":8889,"children":8890},{"style":349},[8891],{"type":53,"value":496},{"type":47,"tag":321,"props":8893,"children":8894},{"style":333},[8895],{"type":53,"value":8701},{"type":47,"tag":321,"props":8897,"children":8898},{"style":349},[8899],{"type":53,"value":505},{"type":47,"tag":321,"props":8901,"children":8902},{"style":349},[8903],{"type":53,"value":510},{"type":47,"tag":321,"props":8905,"children":8906},{"class":323,"line":27},[8907,8911,8915,8919,8923,8927,8931,8936,8940],{"type":47,"tag":321,"props":8908,"children":8909},{"style":468},[8910],{"type":53,"value":471},{"type":47,"tag":321,"props":8912,"children":8913},{"style":349},[8914],{"type":53,"value":476},{"type":47,"tag":321,"props":8916,"children":8917},{"style":433},[8918],{"type":53,"value":8725},{"type":47,"tag":321,"props":8920,"children":8921},{"style":349},[8922],{"type":53,"value":486},{"type":47,"tag":321,"props":8924,"children":8925},{"style":468},[8926],{"type":53,"value":491},{"type":47,"tag":321,"props":8928,"children":8929},{"style":349},[8930],{"type":53,"value":496},{"type":47,"tag":321,"props":8932,"children":8933},{"style":333},[8934],{"type":53,"value":8935},"..\u002F..\u002Fnovu\u002Fworkflows",{"type":47,"tag":321,"props":8937,"children":8938},{"style":349},[8939],{"type":53,"value":505},{"type":47,"tag":321,"props":8941,"children":8942},{"style":349},[8943],{"type":53,"value":510},{"type":47,"tag":321,"props":8945,"children":8946},{"class":323,"line":554},[8947],{"type":47,"tag":321,"props":8948,"children":8949},{"emptyLinePlaceholder":41},[8950],{"type":53,"value":560},{"type":47,"tag":321,"props":8952,"children":8953},{"class":323,"line":563},[8954,8958,8963,8967,8971,8975,8980,8984,8989,8993,8997],{"type":47,"tag":321,"props":8955,"children":8956},{"style":468},[8957],{"type":53,"value":569},{"type":47,"tag":321,"props":8959,"children":8960},{"style":468},[8961],{"type":53,"value":8962}," default",{"type":47,"tag":321,"props":8964,"children":8965},{"style":588},[8966],{"type":53,"value":8684},{"type":47,"tag":321,"props":8968,"children":8969},{"style":433},[8970],{"type":53,"value":700},{"type":47,"tag":321,"props":8972,"children":8973},{"style":349},[8974],{"type":53,"value":2418},{"type":47,"tag":321,"props":8976,"children":8977},{"style":697},[8978],{"type":53,"value":8979}," workflows",{"type":47,"tag":321,"props":8981,"children":8982},{"style":349},[8983],{"type":53,"value":772},{"type":47,"tag":321,"props":8985,"children":8986},{"style":433},[8987],{"type":53,"value":8988}," [welcomeWorkflow] ",{"type":47,"tag":321,"props":8990,"children":8991},{"style":349},[8992],{"type":53,"value":855},{"type":47,"tag":321,"props":8994,"children":8995},{"style":433},[8996],{"type":53,"value":737},{"type":47,"tag":321,"props":8998,"children":8999},{"style":349},[9000],{"type":53,"value":510},{"type":47,"tag":305,"props":9002,"children":9004},{"id":9003},"express",[9005],{"type":53,"value":9006},"Express",{"type":47,"tag":287,"props":9008,"children":9010},{"className":457,"code":9009,"language":19,"meta":295,"style":295},"import express from \"express\";\nimport { serve } from \"@novu\u002Fframework\u002Fexpress\";\nimport { welcomeWorkflow } from \".\u002Fnovu\u002Fworkflows\";\n\nconst app = express();\napp.use(express.json()); \u002F\u002F required\napp.use(\"\u002Fapi\u002Fnovu\", serve({ workflows: [welcomeWorkflow] }));\napp.listen(4000);\n",[9011],{"type":47,"tag":62,"props":9012,"children":9013},{"__ignoreMap":295},[9014,9046,9086,9126,9133,9162,9208,9279],{"type":47,"tag":321,"props":9015,"children":9016},{"class":323,"line":23},[9017,9021,9026,9030,9034,9038,9042],{"type":47,"tag":321,"props":9018,"children":9019},{"style":468},[9020],{"type":53,"value":471},{"type":47,"tag":321,"props":9022,"children":9023},{"style":433},[9024],{"type":53,"value":9025}," express ",{"type":47,"tag":321,"props":9027,"children":9028},{"style":468},[9029],{"type":53,"value":2065},{"type":47,"tag":321,"props":9031,"children":9032},{"style":349},[9033],{"type":53,"value":496},{"type":47,"tag":321,"props":9035,"children":9036},{"style":333},[9037],{"type":53,"value":9003},{"type":47,"tag":321,"props":9039,"children":9040},{"style":349},[9041],{"type":53,"value":505},{"type":47,"tag":321,"props":9043,"children":9044},{"style":349},[9045],{"type":53,"value":510},{"type":47,"tag":321,"props":9047,"children":9048},{"class":323,"line":27},[9049,9053,9057,9061,9065,9069,9073,9078,9082],{"type":47,"tag":321,"props":9050,"children":9051},{"style":468},[9052],{"type":53,"value":471},{"type":47,"tag":321,"props":9054,"children":9055},{"style":349},[9056],{"type":53,"value":476},{"type":47,"tag":321,"props":9058,"children":9059},{"style":433},[9060],{"type":53,"value":8684},{"type":47,"tag":321,"props":9062,"children":9063},{"style":349},[9064],{"type":53,"value":486},{"type":47,"tag":321,"props":9066,"children":9067},{"style":468},[9068],{"type":53,"value":491},{"type":47,"tag":321,"props":9070,"children":9071},{"style":349},[9072],{"type":53,"value":496},{"type":47,"tag":321,"props":9074,"children":9075},{"style":333},[9076],{"type":53,"value":9077},"@novu\u002Fframework\u002Fexpress",{"type":47,"tag":321,"props":9079,"children":9080},{"style":349},[9081],{"type":53,"value":505},{"type":47,"tag":321,"props":9083,"children":9084},{"style":349},[9085],{"type":53,"value":510},{"type":47,"tag":321,"props":9087,"children":9088},{"class":323,"line":554},[9089,9093,9097,9101,9105,9109,9113,9118,9122],{"type":47,"tag":321,"props":9090,"children":9091},{"style":468},[9092],{"type":53,"value":471},{"type":47,"tag":321,"props":9094,"children":9095},{"style":349},[9096],{"type":53,"value":476},{"type":47,"tag":321,"props":9098,"children":9099},{"style":433},[9100],{"type":53,"value":8725},{"type":47,"tag":321,"props":9102,"children":9103},{"style":349},[9104],{"type":53,"value":486},{"type":47,"tag":321,"props":9106,"children":9107},{"style":468},[9108],{"type":53,"value":491},{"type":47,"tag":321,"props":9110,"children":9111},{"style":349},[9112],{"type":53,"value":496},{"type":47,"tag":321,"props":9114,"children":9115},{"style":333},[9116],{"type":53,"value":9117},".\u002Fnovu\u002Fworkflows",{"type":47,"tag":321,"props":9119,"children":9120},{"style":349},[9121],{"type":53,"value":505},{"type":47,"tag":321,"props":9123,"children":9124},{"style":349},[9125],{"type":53,"value":510},{"type":47,"tag":321,"props":9127,"children":9128},{"class":323,"line":563},[9129],{"type":47,"tag":321,"props":9130,"children":9131},{"emptyLinePlaceholder":41},[9132],{"type":53,"value":560},{"type":47,"tag":321,"props":9134,"children":9135},{"class":323,"line":598},[9136,9140,9145,9149,9154,9158],{"type":47,"tag":321,"props":9137,"children":9138},{"style":572},[9139],{"type":53,"value":3664},{"type":47,"tag":321,"props":9141,"children":9142},{"style":433},[9143],{"type":53,"value":9144}," app ",{"type":47,"tag":321,"props":9146,"children":9147},{"style":349},[9148],{"type":53,"value":585},{"type":47,"tag":321,"props":9150,"children":9151},{"style":588},[9152],{"type":53,"value":9153}," express",{"type":47,"tag":321,"props":9155,"children":9156},{"style":433},[9157],{"type":53,"value":956},{"type":47,"tag":321,"props":9159,"children":9160},{"style":349},[9161],{"type":53,"value":510},{"type":47,"tag":321,"props":9163,"children":9164},{"class":323,"line":621},[9165,9170,9174,9179,9184,9188,9193,9198,9203],{"type":47,"tag":321,"props":9166,"children":9167},{"style":433},[9168],{"type":53,"value":9169},"app",{"type":47,"tag":321,"props":9171,"children":9172},{"style":349},[9173],{"type":53,"value":248},{"type":47,"tag":321,"props":9175,"children":9176},{"style":588},[9177],{"type":53,"value":9178},"use",{"type":47,"tag":321,"props":9180,"children":9181},{"style":433},[9182],{"type":53,"value":9183},"(express",{"type":47,"tag":321,"props":9185,"children":9186},{"style":349},[9187],{"type":53,"value":248},{"type":47,"tag":321,"props":9189,"children":9190},{"style":588},[9191],{"type":53,"value":9192},"json",{"type":47,"tag":321,"props":9194,"children":9195},{"style":433},[9196],{"type":53,"value":9197},"())",{"type":47,"tag":321,"props":9199,"children":9200},{"style":349},[9201],{"type":53,"value":9202},";",{"type":47,"tag":321,"props":9204,"children":9205},{"style":3819},[9206],{"type":53,"value":9207}," \u002F\u002F required\n",{"type":47,"tag":321,"props":9209,"children":9210},{"class":323,"line":675},[9211,9215,9219,9223,9227,9231,9235,9239,9243,9247,9251,9255,9259,9263,9267,9271,9275],{"type":47,"tag":321,"props":9212,"children":9213},{"style":433},[9214],{"type":53,"value":9169},{"type":47,"tag":321,"props":9216,"children":9217},{"style":349},[9218],{"type":53,"value":248},{"type":47,"tag":321,"props":9220,"children":9221},{"style":588},[9222],{"type":53,"value":9178},{"type":47,"tag":321,"props":9224,"children":9225},{"style":433},[9226],{"type":53,"value":700},{"type":47,"tag":321,"props":9228,"children":9229},{"style":349},[9230],{"type":53,"value":505},{"type":47,"tag":321,"props":9232,"children":9233},{"style":333},[9234],{"type":53,"value":259},{"type":47,"tag":321,"props":9236,"children":9237},{"style":349},[9238],{"type":53,"value":505},{"type":47,"tag":321,"props":9240,"children":9241},{"style":349},[9242],{"type":53,"value":643},{"type":47,"tag":321,"props":9244,"children":9245},{"style":588},[9246],{"type":53,"value":8684},{"type":47,"tag":321,"props":9248,"children":9249},{"style":433},[9250],{"type":53,"value":700},{"type":47,"tag":321,"props":9252,"children":9253},{"style":349},[9254],{"type":53,"value":2418},{"type":47,"tag":321,"props":9256,"children":9257},{"style":697},[9258],{"type":53,"value":8979},{"type":47,"tag":321,"props":9260,"children":9261},{"style":349},[9262],{"type":53,"value":772},{"type":47,"tag":321,"props":9264,"children":9265},{"style":433},[9266],{"type":53,"value":8988},{"type":47,"tag":321,"props":9268,"children":9269},{"style":349},[9270],{"type":53,"value":855},{"type":47,"tag":321,"props":9272,"children":9273},{"style":433},[9274],{"type":53,"value":2514},{"type":47,"tag":321,"props":9276,"children":9277},{"style":349},[9278],{"type":53,"value":510},{"type":47,"tag":321,"props":9280,"children":9281},{"class":323,"line":748},[9282,9286,9290,9295,9299,9304,9308],{"type":47,"tag":321,"props":9283,"children":9284},{"style":433},[9285],{"type":53,"value":9169},{"type":47,"tag":321,"props":9287,"children":9288},{"style":349},[9289],{"type":53,"value":248},{"type":47,"tag":321,"props":9291,"children":9292},{"style":588},[9293],{"type":53,"value":9294},"listen",{"type":47,"tag":321,"props":9296,"children":9297},{"style":433},[9298],{"type":53,"value":700},{"type":47,"tag":321,"props":9300,"children":9301},{"style":3559},[9302],{"type":53,"value":9303},"4000",{"type":47,"tag":321,"props":9305,"children":9306},{"style":433},[9307],{"type":53,"value":737},{"type":47,"tag":321,"props":9309,"children":9310},{"style":349},[9311],{"type":53,"value":510},{"type":47,"tag":305,"props":9313,"children":9315},{"id":9314},"nestjs",[9316],{"type":53,"value":9317},"NestJS",{"type":47,"tag":287,"props":9319,"children":9321},{"className":457,"code":9320,"language":19,"meta":295,"style":295},"import { Module } from \"@nestjs\u002Fcommon\";\nimport { NovuModule } from \"@novu\u002Fframework\u002Fnest\";\nimport { welcomeWorkflow } from \".\u002Fnovu\u002Fworkflows\";\n\n@Module({\n  imports: [\n    NovuModule.register({\n      apiPath: \"\u002Fapi\u002Fnovu\",\n      workflows: [welcomeWorkflow],\n    }),\n  ],\n})\nexport class AppModule {}\n",[9322],{"type":47,"tag":62,"props":9323,"children":9324},{"__ignoreMap":295},[9325,9366,9407,9446,9453,9474,9490,9515,9543,9563,9578,9589,9601],{"type":47,"tag":321,"props":9326,"children":9327},{"class":323,"line":23},[9328,9332,9336,9341,9345,9349,9353,9358,9362],{"type":47,"tag":321,"props":9329,"children":9330},{"style":468},[9331],{"type":53,"value":471},{"type":47,"tag":321,"props":9333,"children":9334},{"style":349},[9335],{"type":53,"value":476},{"type":47,"tag":321,"props":9337,"children":9338},{"style":433},[9339],{"type":53,"value":9340}," Module",{"type":47,"tag":321,"props":9342,"children":9343},{"style":349},[9344],{"type":53,"value":486},{"type":47,"tag":321,"props":9346,"children":9347},{"style":468},[9348],{"type":53,"value":491},{"type":47,"tag":321,"props":9350,"children":9351},{"style":349},[9352],{"type":53,"value":496},{"type":47,"tag":321,"props":9354,"children":9355},{"style":333},[9356],{"type":53,"value":9357},"@nestjs\u002Fcommon",{"type":47,"tag":321,"props":9359,"children":9360},{"style":349},[9361],{"type":53,"value":505},{"type":47,"tag":321,"props":9363,"children":9364},{"style":349},[9365],{"type":53,"value":510},{"type":47,"tag":321,"props":9367,"children":9368},{"class":323,"line":27},[9369,9373,9377,9382,9386,9390,9394,9399,9403],{"type":47,"tag":321,"props":9370,"children":9371},{"style":468},[9372],{"type":53,"value":471},{"type":47,"tag":321,"props":9374,"children":9375},{"style":349},[9376],{"type":53,"value":476},{"type":47,"tag":321,"props":9378,"children":9379},{"style":433},[9380],{"type":53,"value":9381}," NovuModule",{"type":47,"tag":321,"props":9383,"children":9384},{"style":349},[9385],{"type":53,"value":486},{"type":47,"tag":321,"props":9387,"children":9388},{"style":468},[9389],{"type":53,"value":491},{"type":47,"tag":321,"props":9391,"children":9392},{"style":349},[9393],{"type":53,"value":496},{"type":47,"tag":321,"props":9395,"children":9396},{"style":333},[9397],{"type":53,"value":9398},"@novu\u002Fframework\u002Fnest",{"type":47,"tag":321,"props":9400,"children":9401},{"style":349},[9402],{"type":53,"value":505},{"type":47,"tag":321,"props":9404,"children":9405},{"style":349},[9406],{"type":53,"value":510},{"type":47,"tag":321,"props":9408,"children":9409},{"class":323,"line":554},[9410,9414,9418,9422,9426,9430,9434,9438,9442],{"type":47,"tag":321,"props":9411,"children":9412},{"style":468},[9413],{"type":53,"value":471},{"type":47,"tag":321,"props":9415,"children":9416},{"style":349},[9417],{"type":53,"value":476},{"type":47,"tag":321,"props":9419,"children":9420},{"style":433},[9421],{"type":53,"value":8725},{"type":47,"tag":321,"props":9423,"children":9424},{"style":349},[9425],{"type":53,"value":486},{"type":47,"tag":321,"props":9427,"children":9428},{"style":468},[9429],{"type":53,"value":491},{"type":47,"tag":321,"props":9431,"children":9432},{"style":349},[9433],{"type":53,"value":496},{"type":47,"tag":321,"props":9435,"children":9436},{"style":333},[9437],{"type":53,"value":9117},{"type":47,"tag":321,"props":9439,"children":9440},{"style":349},[9441],{"type":53,"value":505},{"type":47,"tag":321,"props":9443,"children":9444},{"style":349},[9445],{"type":53,"value":510},{"type":47,"tag":321,"props":9447,"children":9448},{"class":323,"line":563},[9449],{"type":47,"tag":321,"props":9450,"children":9451},{"emptyLinePlaceholder":41},[9452],{"type":53,"value":560},{"type":47,"tag":321,"props":9454,"children":9455},{"class":323,"line":598},[9456,9461,9466,9470],{"type":47,"tag":321,"props":9457,"children":9458},{"style":349},[9459],{"type":53,"value":9460},"@",{"type":47,"tag":321,"props":9462,"children":9463},{"style":588},[9464],{"type":53,"value":9465},"Module",{"type":47,"tag":321,"props":9467,"children":9468},{"style":433},[9469],{"type":53,"value":700},{"type":47,"tag":321,"props":9471,"children":9472},{"style":349},[9473],{"type":53,"value":926},{"type":47,"tag":321,"props":9475,"children":9476},{"class":323,"line":621},[9477,9482,9486],{"type":47,"tag":321,"props":9478,"children":9479},{"style":697},[9480],{"type":53,"value":9481},"  imports",{"type":47,"tag":321,"props":9483,"children":9484},{"style":349},[9485],{"type":53,"value":772},{"type":47,"tag":321,"props":9487,"children":9488},{"style":433},[9489],{"type":53,"value":4890},{"type":47,"tag":321,"props":9491,"children":9492},{"class":323,"line":675},[9493,9498,9502,9507,9511],{"type":47,"tag":321,"props":9494,"children":9495},{"style":433},[9496],{"type":53,"value":9497},"    NovuModule",{"type":47,"tag":321,"props":9499,"children":9500},{"style":349},[9501],{"type":53,"value":248},{"type":47,"tag":321,"props":9503,"children":9504},{"style":588},[9505],{"type":53,"value":9506},"register",{"type":47,"tag":321,"props":9508,"children":9509},{"style":433},[9510],{"type":53,"value":700},{"type":47,"tag":321,"props":9512,"children":9513},{"style":349},[9514],{"type":53,"value":926},{"type":47,"tag":321,"props":9516,"children":9517},{"class":323,"line":748},[9518,9523,9527,9531,9535,9539],{"type":47,"tag":321,"props":9519,"children":9520},{"style":697},[9521],{"type":53,"value":9522},"      apiPath",{"type":47,"tag":321,"props":9524,"children":9525},{"style":349},[9526],{"type":53,"value":772},{"type":47,"tag":321,"props":9528,"children":9529},{"style":349},[9530],{"type":53,"value":496},{"type":47,"tag":321,"props":9532,"children":9533},{"style":333},[9534],{"type":53,"value":259},{"type":47,"tag":321,"props":9536,"children":9537},{"style":349},[9538],{"type":53,"value":505},{"type":47,"tag":321,"props":9540,"children":9541},{"style":349},[9542],{"type":53,"value":618},{"type":47,"tag":321,"props":9544,"children":9545},{"class":323,"line":761},[9546,9551,9555,9559],{"type":47,"tag":321,"props":9547,"children":9548},{"style":697},[9549],{"type":53,"value":9550},"      workflows",{"type":47,"tag":321,"props":9552,"children":9553},{"style":349},[9554],{"type":53,"value":772},{"type":47,"tag":321,"props":9556,"children":9557},{"style":433},[9558],{"type":53,"value":8832},{"type":47,"tag":321,"props":9560,"children":9561},{"style":349},[9562],{"type":53,"value":618},{"type":47,"tag":321,"props":9564,"children":9565},{"class":323,"line":793},[9566,9570,9574],{"type":47,"tag":321,"props":9567,"children":9568},{"style":349},[9569],{"type":53,"value":1016},{"type":47,"tag":321,"props":9571,"children":9572},{"style":433},[9573],{"type":53,"value":737},{"type":47,"tag":321,"props":9575,"children":9576},{"style":349},[9577],{"type":53,"value":618},{"type":47,"tag":321,"props":9579,"children":9580},{"class":323,"line":872},[9581,9585],{"type":47,"tag":321,"props":9582,"children":9583},{"style":433},[9584],{"type":53,"value":5013},{"type":47,"tag":321,"props":9586,"children":9587},{"style":349},[9588],{"type":53,"value":618},{"type":47,"tag":321,"props":9590,"children":9591},{"class":323,"line":881},[9592,9596],{"type":47,"tag":321,"props":9593,"children":9594},{"style":349},[9595],{"type":53,"value":855},{"type":47,"tag":321,"props":9597,"children":9598},{"style":433},[9599],{"type":53,"value":9600},")\n",{"type":47,"tag":321,"props":9602,"children":9603},{"class":323,"line":894},[9604,9608,9613,9618],{"type":47,"tag":321,"props":9605,"children":9606},{"style":468},[9607],{"type":53,"value":569},{"type":47,"tag":321,"props":9609,"children":9610},{"style":572},[9611],{"type":53,"value":9612}," class",{"type":47,"tag":321,"props":9614,"children":9615},{"style":327},[9616],{"type":53,"value":9617}," AppModule",{"type":47,"tag":321,"props":9619,"children":9620},{"style":349},[9621],{"type":53,"value":9622}," {}\n",{"type":47,"tag":56,"props":9624,"children":9625},{},[9626,9628,9634,9636,9646],{"type":53,"value":9627},"For dependency injection, use ",{"type":47,"tag":62,"props":9629,"children":9631},{"className":9630},[],[9632],{"type":53,"value":9633},"NovuModule.registerAsync",{"type":53,"value":9635}," — see ",{"type":47,"tag":94,"props":9637,"children":9639},{"href":9638},".\u002Freferences\u002Fbridge-endpoint.md",[9640],{"type":47,"tag":62,"props":9641,"children":9643},{"className":9642},[],[9644],{"type":53,"value":9645},"references\u002Fbridge-endpoint.md",{"type":53,"value":248},{"type":47,"tag":305,"props":9648,"children":9650},{"id":9649},"remix",[9651],{"type":53,"value":9652},"Remix",{"type":47,"tag":287,"props":9654,"children":9656},{"className":457,"code":9655,"language":19,"meta":295,"style":295},"import { serve } from \"@novu\u002Fframework\u002Fremix\";\nimport { welcomeWorkflow } from \"..\u002Fnovu\u002Fworkflows\";\n\nconst handler = serve({ workflows: [welcomeWorkflow] });\nexport { handler as action, handler as loader };\n",[9657],{"type":47,"tag":62,"props":9658,"children":9659},{"__ignoreMap":295},[9660,9700,9740,9747,9799],{"type":47,"tag":321,"props":9661,"children":9662},{"class":323,"line":23},[9663,9667,9671,9675,9679,9683,9687,9692,9696],{"type":47,"tag":321,"props":9664,"children":9665},{"style":468},[9666],{"type":53,"value":471},{"type":47,"tag":321,"props":9668,"children":9669},{"style":349},[9670],{"type":53,"value":476},{"type":47,"tag":321,"props":9672,"children":9673},{"style":433},[9674],{"type":53,"value":8684},{"type":47,"tag":321,"props":9676,"children":9677},{"style":349},[9678],{"type":53,"value":486},{"type":47,"tag":321,"props":9680,"children":9681},{"style":468},[9682],{"type":53,"value":491},{"type":47,"tag":321,"props":9684,"children":9685},{"style":349},[9686],{"type":53,"value":496},{"type":47,"tag":321,"props":9688,"children":9689},{"style":333},[9690],{"type":53,"value":9691},"@novu\u002Fframework\u002Fremix",{"type":47,"tag":321,"props":9693,"children":9694},{"style":349},[9695],{"type":53,"value":505},{"type":47,"tag":321,"props":9697,"children":9698},{"style":349},[9699],{"type":53,"value":510},{"type":47,"tag":321,"props":9701,"children":9702},{"class":323,"line":27},[9703,9707,9711,9715,9719,9723,9727,9732,9736],{"type":47,"tag":321,"props":9704,"children":9705},{"style":468},[9706],{"type":53,"value":471},{"type":47,"tag":321,"props":9708,"children":9709},{"style":349},[9710],{"type":53,"value":476},{"type":47,"tag":321,"props":9712,"children":9713},{"style":433},[9714],{"type":53,"value":8725},{"type":47,"tag":321,"props":9716,"children":9717},{"style":349},[9718],{"type":53,"value":486},{"type":47,"tag":321,"props":9720,"children":9721},{"style":468},[9722],{"type":53,"value":491},{"type":47,"tag":321,"props":9724,"children":9725},{"style":349},[9726],{"type":53,"value":496},{"type":47,"tag":321,"props":9728,"children":9729},{"style":333},[9730],{"type":53,"value":9731},"..\u002Fnovu\u002Fworkflows",{"type":47,"tag":321,"props":9733,"children":9734},{"style":349},[9735],{"type":53,"value":505},{"type":47,"tag":321,"props":9737,"children":9738},{"style":349},[9739],{"type":53,"value":510},{"type":47,"tag":321,"props":9741,"children":9742},{"class":323,"line":554},[9743],{"type":47,"tag":321,"props":9744,"children":9745},{"emptyLinePlaceholder":41},[9746],{"type":53,"value":560},{"type":47,"tag":321,"props":9748,"children":9749},{"class":323,"line":563},[9750,9754,9759,9763,9767,9771,9775,9779,9783,9787,9791,9795],{"type":47,"tag":321,"props":9751,"children":9752},{"style":572},[9753],{"type":53,"value":3664},{"type":47,"tag":321,"props":9755,"children":9756},{"style":433},[9757],{"type":53,"value":9758}," handler ",{"type":47,"tag":321,"props":9760,"children":9761},{"style":349},[9762],{"type":53,"value":585},{"type":47,"tag":321,"props":9764,"children":9765},{"style":588},[9766],{"type":53,"value":8684},{"type":47,"tag":321,"props":9768,"children":9769},{"style":433},[9770],{"type":53,"value":700},{"type":47,"tag":321,"props":9772,"children":9773},{"style":349},[9774],{"type":53,"value":2418},{"type":47,"tag":321,"props":9776,"children":9777},{"style":697},[9778],{"type":53,"value":8979},{"type":47,"tag":321,"props":9780,"children":9781},{"style":349},[9782],{"type":53,"value":772},{"type":47,"tag":321,"props":9784,"children":9785},{"style":433},[9786],{"type":53,"value":8988},{"type":47,"tag":321,"props":9788,"children":9789},{"style":349},[9790],{"type":53,"value":855},{"type":47,"tag":321,"props":9792,"children":9793},{"style":433},[9794],{"type":53,"value":737},{"type":47,"tag":321,"props":9796,"children":9797},{"style":349},[9798],{"type":53,"value":510},{"type":47,"tag":321,"props":9800,"children":9801},{"class":323,"line":598},[9802,9806,9810,9814,9818,9823,9827,9831,9835,9840],{"type":47,"tag":321,"props":9803,"children":9804},{"style":468},[9805],{"type":53,"value":569},{"type":47,"tag":321,"props":9807,"children":9808},{"style":349},[9809],{"type":53,"value":476},{"type":47,"tag":321,"props":9811,"children":9812},{"style":433},[9813],{"type":53,"value":1476},{"type":47,"tag":321,"props":9815,"children":9816},{"style":468},[9817],{"type":53,"value":4456},{"type":47,"tag":321,"props":9819,"children":9820},{"style":433},[9821],{"type":53,"value":9822}," action",{"type":47,"tag":321,"props":9824,"children":9825},{"style":349},[9826],{"type":53,"value":643},{"type":47,"tag":321,"props":9828,"children":9829},{"style":433},[9830],{"type":53,"value":1476},{"type":47,"tag":321,"props":9832,"children":9833},{"style":468},[9834],{"type":53,"value":4456},{"type":47,"tag":321,"props":9836,"children":9837},{"style":433},[9838],{"type":53,"value":9839}," loader",{"type":47,"tag":321,"props":9841,"children":9842},{"style":349},[9843],{"type":53,"value":5321},{"type":47,"tag":305,"props":9845,"children":9847},{"id":9846},"sveltekit",[9848],{"type":53,"value":9849},"SvelteKit",{"type":47,"tag":287,"props":9851,"children":9853},{"className":457,"code":9852,"language":19,"meta":295,"style":295},"import { serve } from \"@novu\u002Fframework\u002Fsveltekit\";\nimport { welcomeWorkflow } from \"$lib\u002Fnovu\u002Fworkflows\";\n\nexport const { GET, POST, OPTIONS } = serve({ workflows: [welcomeWorkflow] });\n",[9854],{"type":47,"tag":62,"props":9855,"children":9856},{"__ignoreMap":295},[9857,9897,9937,9944],{"type":47,"tag":321,"props":9858,"children":9859},{"class":323,"line":23},[9860,9864,9868,9872,9876,9880,9884,9889,9893],{"type":47,"tag":321,"props":9861,"children":9862},{"style":468},[9863],{"type":53,"value":471},{"type":47,"tag":321,"props":9865,"children":9866},{"style":349},[9867],{"type":53,"value":476},{"type":47,"tag":321,"props":9869,"children":9870},{"style":433},[9871],{"type":53,"value":8684},{"type":47,"tag":321,"props":9873,"children":9874},{"style":349},[9875],{"type":53,"value":486},{"type":47,"tag":321,"props":9877,"children":9878},{"style":468},[9879],{"type":53,"value":491},{"type":47,"tag":321,"props":9881,"children":9882},{"style":349},[9883],{"type":53,"value":496},{"type":47,"tag":321,"props":9885,"children":9886},{"style":333},[9887],{"type":53,"value":9888},"@novu\u002Fframework\u002Fsveltekit",{"type":47,"tag":321,"props":9890,"children":9891},{"style":349},[9892],{"type":53,"value":505},{"type":47,"tag":321,"props":9894,"children":9895},{"style":349},[9896],{"type":53,"value":510},{"type":47,"tag":321,"props":9898,"children":9899},{"class":323,"line":27},[9900,9904,9908,9912,9916,9920,9924,9929,9933],{"type":47,"tag":321,"props":9901,"children":9902},{"style":468},[9903],{"type":53,"value":471},{"type":47,"tag":321,"props":9905,"children":9906},{"style":349},[9907],{"type":53,"value":476},{"type":47,"tag":321,"props":9909,"children":9910},{"style":433},[9911],{"type":53,"value":8725},{"type":47,"tag":321,"props":9913,"children":9914},{"style":349},[9915],{"type":53,"value":486},{"type":47,"tag":321,"props":9917,"children":9918},{"style":468},[9919],{"type":53,"value":491},{"type":47,"tag":321,"props":9921,"children":9922},{"style":349},[9923],{"type":53,"value":496},{"type":47,"tag":321,"props":9925,"children":9926},{"style":333},[9927],{"type":53,"value":9928},"$lib\u002Fnovu\u002Fworkflows",{"type":47,"tag":321,"props":9930,"children":9931},{"style":349},[9932],{"type":53,"value":505},{"type":47,"tag":321,"props":9934,"children":9935},{"style":349},[9936],{"type":53,"value":510},{"type":47,"tag":321,"props":9938,"children":9939},{"class":323,"line":554},[9940],{"type":47,"tag":321,"props":9941,"children":9942},{"emptyLinePlaceholder":41},[9943],{"type":53,"value":560},{"type":47,"tag":321,"props":9945,"children":9946},{"class":323,"line":563},[9947,9951,9955,9959,9963,9967,9971,9975,9979,9983,9987,9991,9995,9999,10003,10007,10011,10015,10019],{"type":47,"tag":321,"props":9948,"children":9949},{"style":468},[9950],{"type":53,"value":569},{"type":47,"tag":321,"props":9952,"children":9953},{"style":572},[9954],{"type":53,"value":575},{"type":47,"tag":321,"props":9956,"children":9957},{"style":349},[9958],{"type":53,"value":476},{"type":47,"tag":321,"props":9960,"children":9961},{"style":433},[9962],{"type":53,"value":8777},{"type":47,"tag":321,"props":9964,"children":9965},{"style":349},[9966],{"type":53,"value":643},{"type":47,"tag":321,"props":9968,"children":9969},{"style":433},[9970],{"type":53,"value":8786},{"type":47,"tag":321,"props":9972,"children":9973},{"style":349},[9974],{"type":53,"value":643},{"type":47,"tag":321,"props":9976,"children":9977},{"style":433},[9978],{"type":53,"value":8795},{"type":47,"tag":321,"props":9980,"children":9981},{"style":349},[9982],{"type":53,"value":855},{"type":47,"tag":321,"props":9984,"children":9985},{"style":349},[9986],{"type":53,"value":3682},{"type":47,"tag":321,"props":9988,"children":9989},{"style":588},[9990],{"type":53,"value":8684},{"type":47,"tag":321,"props":9992,"children":9993},{"style":433},[9994],{"type":53,"value":700},{"type":47,"tag":321,"props":9996,"children":9997},{"style":349},[9998],{"type":53,"value":2418},{"type":47,"tag":321,"props":10000,"children":10001},{"style":697},[10002],{"type":53,"value":8979},{"type":47,"tag":321,"props":10004,"children":10005},{"style":349},[10006],{"type":53,"value":772},{"type":47,"tag":321,"props":10008,"children":10009},{"style":433},[10010],{"type":53,"value":8988},{"type":47,"tag":321,"props":10012,"children":10013},{"style":349},[10014],{"type":53,"value":855},{"type":47,"tag":321,"props":10016,"children":10017},{"style":433},[10018],{"type":53,"value":737},{"type":47,"tag":321,"props":10020,"children":10021},{"style":349},[10022],{"type":53,"value":510},{"type":47,"tag":305,"props":10024,"children":10026},{"id":10025},"nuxt",[10027],{"type":53,"value":10028},"Nuxt",{"type":47,"tag":287,"props":10030,"children":10032},{"className":457,"code":10031,"language":19,"meta":295,"style":295},"import { serve } from \"@novu\u002Fframework\u002Fnuxt\";\nimport { welcomeWorkflow } from \"~\u002Fnovu\u002Fworkflows\";\n\nexport default defineEventHandler(serve({ workflows: [welcomeWorkflow] }));\n",[10033],{"type":47,"tag":62,"props":10034,"children":10035},{"__ignoreMap":295},[10036,10076,10116,10123],{"type":47,"tag":321,"props":10037,"children":10038},{"class":323,"line":23},[10039,10043,10047,10051,10055,10059,10063,10068,10072],{"type":47,"tag":321,"props":10040,"children":10041},{"style":468},[10042],{"type":53,"value":471},{"type":47,"tag":321,"props":10044,"children":10045},{"style":349},[10046],{"type":53,"value":476},{"type":47,"tag":321,"props":10048,"children":10049},{"style":433},[10050],{"type":53,"value":8684},{"type":47,"tag":321,"props":10052,"children":10053},{"style":349},[10054],{"type":53,"value":486},{"type":47,"tag":321,"props":10056,"children":10057},{"style":468},[10058],{"type":53,"value":491},{"type":47,"tag":321,"props":10060,"children":10061},{"style":349},[10062],{"type":53,"value":496},{"type":47,"tag":321,"props":10064,"children":10065},{"style":333},[10066],{"type":53,"value":10067},"@novu\u002Fframework\u002Fnuxt",{"type":47,"tag":321,"props":10069,"children":10070},{"style":349},[10071],{"type":53,"value":505},{"type":47,"tag":321,"props":10073,"children":10074},{"style":349},[10075],{"type":53,"value":510},{"type":47,"tag":321,"props":10077,"children":10078},{"class":323,"line":27},[10079,10083,10087,10091,10095,10099,10103,10108,10112],{"type":47,"tag":321,"props":10080,"children":10081},{"style":468},[10082],{"type":53,"value":471},{"type":47,"tag":321,"props":10084,"children":10085},{"style":349},[10086],{"type":53,"value":476},{"type":47,"tag":321,"props":10088,"children":10089},{"style":433},[10090],{"type":53,"value":8725},{"type":47,"tag":321,"props":10092,"children":10093},{"style":349},[10094],{"type":53,"value":486},{"type":47,"tag":321,"props":10096,"children":10097},{"style":468},[10098],{"type":53,"value":491},{"type":47,"tag":321,"props":10100,"children":10101},{"style":349},[10102],{"type":53,"value":496},{"type":47,"tag":321,"props":10104,"children":10105},{"style":333},[10106],{"type":53,"value":10107},"~\u002Fnovu\u002Fworkflows",{"type":47,"tag":321,"props":10109,"children":10110},{"style":349},[10111],{"type":53,"value":505},{"type":47,"tag":321,"props":10113,"children":10114},{"style":349},[10115],{"type":53,"value":510},{"type":47,"tag":321,"props":10117,"children":10118},{"class":323,"line":554},[10119],{"type":47,"tag":321,"props":10120,"children":10121},{"emptyLinePlaceholder":41},[10122],{"type":53,"value":560},{"type":47,"tag":321,"props":10124,"children":10125},{"class":323,"line":563},[10126,10130,10134,10139,10143,10147,10151,10155,10159,10163,10167,10171,10175],{"type":47,"tag":321,"props":10127,"children":10128},{"style":468},[10129],{"type":53,"value":569},{"type":47,"tag":321,"props":10131,"children":10132},{"style":468},[10133],{"type":53,"value":8962},{"type":47,"tag":321,"props":10135,"children":10136},{"style":588},[10137],{"type":53,"value":10138}," defineEventHandler",{"type":47,"tag":321,"props":10140,"children":10141},{"style":433},[10142],{"type":53,"value":700},{"type":47,"tag":321,"props":10144,"children":10145},{"style":588},[10146],{"type":53,"value":8653},{"type":47,"tag":321,"props":10148,"children":10149},{"style":433},[10150],{"type":53,"value":700},{"type":47,"tag":321,"props":10152,"children":10153},{"style":349},[10154],{"type":53,"value":2418},{"type":47,"tag":321,"props":10156,"children":10157},{"style":697},[10158],{"type":53,"value":8979},{"type":47,"tag":321,"props":10160,"children":10161},{"style":349},[10162],{"type":53,"value":772},{"type":47,"tag":321,"props":10164,"children":10165},{"style":433},[10166],{"type":53,"value":8988},{"type":47,"tag":321,"props":10168,"children":10169},{"style":349},[10170],{"type":53,"value":855},{"type":47,"tag":321,"props":10172,"children":10173},{"style":433},[10174],{"type":53,"value":2514},{"type":47,"tag":321,"props":10176,"children":10177},{"style":349},[10178],{"type":53,"value":510},{"type":47,"tag":305,"props":10180,"children":10181},{"id":305},[10182],{"type":53,"value":10183},"H3",{"type":47,"tag":287,"props":10185,"children":10187},{"className":457,"code":10186,"language":19,"meta":295,"style":295},"import { createApp, eventHandler, toNodeListener } from \"h3\";\nimport { createServer } from \"node:http\";\nimport { serve } from \"@novu\u002Fframework\u002Fh3\";\nimport { welcomeWorkflow } from \".\u002Fnovu\u002Fworkflows\";\n\nconst app = createApp();\napp.use(\"\u002Fapi\u002Fnovu\", eventHandler(serve({ workflows: [welcomeWorkflow] })));\ncreateServer(toNodeListener(app)).listen(4000);\n",[10188],{"type":47,"tag":62,"props":10189,"children":10190},{"__ignoreMap":295},[10191,10249,10290,10330,10369,10376,10403,10483],{"type":47,"tag":321,"props":10192,"children":10193},{"class":323,"line":23},[10194,10198,10202,10207,10211,10216,10220,10225,10229,10233,10237,10241,10245],{"type":47,"tag":321,"props":10195,"children":10196},{"style":468},[10197],{"type":53,"value":471},{"type":47,"tag":321,"props":10199,"children":10200},{"style":349},[10201],{"type":53,"value":476},{"type":47,"tag":321,"props":10203,"children":10204},{"style":433},[10205],{"type":53,"value":10206}," createApp",{"type":47,"tag":321,"props":10208,"children":10209},{"style":349},[10210],{"type":53,"value":643},{"type":47,"tag":321,"props":10212,"children":10213},{"style":433},[10214],{"type":53,"value":10215}," eventHandler",{"type":47,"tag":321,"props":10217,"children":10218},{"style":349},[10219],{"type":53,"value":643},{"type":47,"tag":321,"props":10221,"children":10222},{"style":433},[10223],{"type":53,"value":10224}," toNodeListener",{"type":47,"tag":321,"props":10226,"children":10227},{"style":349},[10228],{"type":53,"value":486},{"type":47,"tag":321,"props":10230,"children":10231},{"style":468},[10232],{"type":53,"value":491},{"type":47,"tag":321,"props":10234,"children":10235},{"style":349},[10236],{"type":53,"value":496},{"type":47,"tag":321,"props":10238,"children":10239},{"style":333},[10240],{"type":53,"value":305},{"type":47,"tag":321,"props":10242,"children":10243},{"style":349},[10244],{"type":53,"value":505},{"type":47,"tag":321,"props":10246,"children":10247},{"style":349},[10248],{"type":53,"value":510},{"type":47,"tag":321,"props":10250,"children":10251},{"class":323,"line":27},[10252,10256,10260,10265,10269,10273,10277,10282,10286],{"type":47,"tag":321,"props":10253,"children":10254},{"style":468},[10255],{"type":53,"value":471},{"type":47,"tag":321,"props":10257,"children":10258},{"style":349},[10259],{"type":53,"value":476},{"type":47,"tag":321,"props":10261,"children":10262},{"style":433},[10263],{"type":53,"value":10264}," createServer",{"type":47,"tag":321,"props":10266,"children":10267},{"style":349},[10268],{"type":53,"value":486},{"type":47,"tag":321,"props":10270,"children":10271},{"style":468},[10272],{"type":53,"value":491},{"type":47,"tag":321,"props":10274,"children":10275},{"style":349},[10276],{"type":53,"value":496},{"type":47,"tag":321,"props":10278,"children":10279},{"style":333},[10280],{"type":53,"value":10281},"node:http",{"type":47,"tag":321,"props":10283,"children":10284},{"style":349},[10285],{"type":53,"value":505},{"type":47,"tag":321,"props":10287,"children":10288},{"style":349},[10289],{"type":53,"value":510},{"type":47,"tag":321,"props":10291,"children":10292},{"class":323,"line":554},[10293,10297,10301,10305,10309,10313,10317,10322,10326],{"type":47,"tag":321,"props":10294,"children":10295},{"style":468},[10296],{"type":53,"value":471},{"type":47,"tag":321,"props":10298,"children":10299},{"style":349},[10300],{"type":53,"value":476},{"type":47,"tag":321,"props":10302,"children":10303},{"style":433},[10304],{"type":53,"value":8684},{"type":47,"tag":321,"props":10306,"children":10307},{"style":349},[10308],{"type":53,"value":486},{"type":47,"tag":321,"props":10310,"children":10311},{"style":468},[10312],{"type":53,"value":491},{"type":47,"tag":321,"props":10314,"children":10315},{"style":349},[10316],{"type":53,"value":496},{"type":47,"tag":321,"props":10318,"children":10319},{"style":333},[10320],{"type":53,"value":10321},"@novu\u002Fframework\u002Fh3",{"type":47,"tag":321,"props":10323,"children":10324},{"style":349},[10325],{"type":53,"value":505},{"type":47,"tag":321,"props":10327,"children":10328},{"style":349},[10329],{"type":53,"value":510},{"type":47,"tag":321,"props":10331,"children":10332},{"class":323,"line":563},[10333,10337,10341,10345,10349,10353,10357,10361,10365],{"type":47,"tag":321,"props":10334,"children":10335},{"style":468},[10336],{"type":53,"value":471},{"type":47,"tag":321,"props":10338,"children":10339},{"style":349},[10340],{"type":53,"value":476},{"type":47,"tag":321,"props":10342,"children":10343},{"style":433},[10344],{"type":53,"value":8725},{"type":47,"tag":321,"props":10346,"children":10347},{"style":349},[10348],{"type":53,"value":486},{"type":47,"tag":321,"props":10350,"children":10351},{"style":468},[10352],{"type":53,"value":491},{"type":47,"tag":321,"props":10354,"children":10355},{"style":349},[10356],{"type":53,"value":496},{"type":47,"tag":321,"props":10358,"children":10359},{"style":333},[10360],{"type":53,"value":9117},{"type":47,"tag":321,"props":10362,"children":10363},{"style":349},[10364],{"type":53,"value":505},{"type":47,"tag":321,"props":10366,"children":10367},{"style":349},[10368],{"type":53,"value":510},{"type":47,"tag":321,"props":10370,"children":10371},{"class":323,"line":598},[10372],{"type":47,"tag":321,"props":10373,"children":10374},{"emptyLinePlaceholder":41},[10375],{"type":53,"value":560},{"type":47,"tag":321,"props":10377,"children":10378},{"class":323,"line":621},[10379,10383,10387,10391,10395,10399],{"type":47,"tag":321,"props":10380,"children":10381},{"style":572},[10382],{"type":53,"value":3664},{"type":47,"tag":321,"props":10384,"children":10385},{"style":433},[10386],{"type":53,"value":9144},{"type":47,"tag":321,"props":10388,"children":10389},{"style":349},[10390],{"type":53,"value":585},{"type":47,"tag":321,"props":10392,"children":10393},{"style":588},[10394],{"type":53,"value":10206},{"type":47,"tag":321,"props":10396,"children":10397},{"style":433},[10398],{"type":53,"value":956},{"type":47,"tag":321,"props":10400,"children":10401},{"style":349},[10402],{"type":53,"value":510},{"type":47,"tag":321,"props":10404,"children":10405},{"class":323,"line":675},[10406,10410,10414,10418,10422,10426,10430,10434,10438,10442,10446,10450,10454,10458,10462,10466,10470,10474,10479],{"type":47,"tag":321,"props":10407,"children":10408},{"style":433},[10409],{"type":53,"value":9169},{"type":47,"tag":321,"props":10411,"children":10412},{"style":349},[10413],{"type":53,"value":248},{"type":47,"tag":321,"props":10415,"children":10416},{"style":588},[10417],{"type":53,"value":9178},{"type":47,"tag":321,"props":10419,"children":10420},{"style":433},[10421],{"type":53,"value":700},{"type":47,"tag":321,"props":10423,"children":10424},{"style":349},[10425],{"type":53,"value":505},{"type":47,"tag":321,"props":10427,"children":10428},{"style":333},[10429],{"type":53,"value":259},{"type":47,"tag":321,"props":10431,"children":10432},{"style":349},[10433],{"type":53,"value":505},{"type":47,"tag":321,"props":10435,"children":10436},{"style":349},[10437],{"type":53,"value":643},{"type":47,"tag":321,"props":10439,"children":10440},{"style":588},[10441],{"type":53,"value":10215},{"type":47,"tag":321,"props":10443,"children":10444},{"style":433},[10445],{"type":53,"value":700},{"type":47,"tag":321,"props":10447,"children":10448},{"style":588},[10449],{"type":53,"value":8653},{"type":47,"tag":321,"props":10451,"children":10452},{"style":433},[10453],{"type":53,"value":700},{"type":47,"tag":321,"props":10455,"children":10456},{"style":349},[10457],{"type":53,"value":2418},{"type":47,"tag":321,"props":10459,"children":10460},{"style":697},[10461],{"type":53,"value":8979},{"type":47,"tag":321,"props":10463,"children":10464},{"style":349},[10465],{"type":53,"value":772},{"type":47,"tag":321,"props":10467,"children":10468},{"style":433},[10469],{"type":53,"value":8988},{"type":47,"tag":321,"props":10471,"children":10472},{"style":349},[10473],{"type":53,"value":855},{"type":47,"tag":321,"props":10475,"children":10476},{"style":433},[10477],{"type":53,"value":10478},")))",{"type":47,"tag":321,"props":10480,"children":10481},{"style":349},[10482],{"type":53,"value":510},{"type":47,"tag":321,"props":10484,"children":10485},{"class":323,"line":748},[10486,10491,10495,10500,10505,10509,10513,10517,10521,10525],{"type":47,"tag":321,"props":10487,"children":10488},{"style":588},[10489],{"type":53,"value":10490},"createServer",{"type":47,"tag":321,"props":10492,"children":10493},{"style":433},[10494],{"type":53,"value":700},{"type":47,"tag":321,"props":10496,"children":10497},{"style":588},[10498],{"type":53,"value":10499},"toNodeListener",{"type":47,"tag":321,"props":10501,"children":10502},{"style":433},[10503],{"type":53,"value":10504},"(app))",{"type":47,"tag":321,"props":10506,"children":10507},{"style":349},[10508],{"type":53,"value":248},{"type":47,"tag":321,"props":10510,"children":10511},{"style":588},[10512],{"type":53,"value":9294},{"type":47,"tag":321,"props":10514,"children":10515},{"style":433},[10516],{"type":53,"value":700},{"type":47,"tag":321,"props":10518,"children":10519},{"style":3559},[10520],{"type":53,"value":9303},{"type":47,"tag":321,"props":10522,"children":10523},{"style":433},[10524],{"type":53,"value":737},{"type":47,"tag":321,"props":10526,"children":10527},{"style":349},[10528],{"type":53,"value":510},{"type":47,"tag":305,"props":10530,"children":10532},{"id":10531},"aws-lambda",[10533],{"type":53,"value":10534},"AWS Lambda",{"type":47,"tag":287,"props":10536,"children":10538},{"className":457,"code":10537,"language":19,"meta":295,"style":295},"import { serve } from \"@novu\u002Fframework\u002Flambda\";\nimport { welcomeWorkflow } from \".\u002Fnovu\u002Fworkflows\";\n\nexport const novu = serve({ workflows: [welcomeWorkflow] });\n",[10539],{"type":47,"tag":62,"props":10540,"children":10541},{"__ignoreMap":295},[10542,10582,10621,10628],{"type":47,"tag":321,"props":10543,"children":10544},{"class":323,"line":23},[10545,10549,10553,10557,10561,10565,10569,10574,10578],{"type":47,"tag":321,"props":10546,"children":10547},{"style":468},[10548],{"type":53,"value":471},{"type":47,"tag":321,"props":10550,"children":10551},{"style":349},[10552],{"type":53,"value":476},{"type":47,"tag":321,"props":10554,"children":10555},{"style":433},[10556],{"type":53,"value":8684},{"type":47,"tag":321,"props":10558,"children":10559},{"style":349},[10560],{"type":53,"value":486},{"type":47,"tag":321,"props":10562,"children":10563},{"style":468},[10564],{"type":53,"value":491},{"type":47,"tag":321,"props":10566,"children":10567},{"style":349},[10568],{"type":53,"value":496},{"type":47,"tag":321,"props":10570,"children":10571},{"style":333},[10572],{"type":53,"value":10573},"@novu\u002Fframework\u002Flambda",{"type":47,"tag":321,"props":10575,"children":10576},{"style":349},[10577],{"type":53,"value":505},{"type":47,"tag":321,"props":10579,"children":10580},{"style":349},[10581],{"type":53,"value":510},{"type":47,"tag":321,"props":10583,"children":10584},{"class":323,"line":27},[10585,10589,10593,10597,10601,10605,10609,10613,10617],{"type":47,"tag":321,"props":10586,"children":10587},{"style":468},[10588],{"type":53,"value":471},{"type":47,"tag":321,"props":10590,"children":10591},{"style":349},[10592],{"type":53,"value":476},{"type":47,"tag":321,"props":10594,"children":10595},{"style":433},[10596],{"type":53,"value":8725},{"type":47,"tag":321,"props":10598,"children":10599},{"style":349},[10600],{"type":53,"value":486},{"type":47,"tag":321,"props":10602,"children":10603},{"style":468},[10604],{"type":53,"value":491},{"type":47,"tag":321,"props":10606,"children":10607},{"style":349},[10608],{"type":53,"value":496},{"type":47,"tag":321,"props":10610,"children":10611},{"style":333},[10612],{"type":53,"value":9117},{"type":47,"tag":321,"props":10614,"children":10615},{"style":349},[10616],{"type":53,"value":505},{"type":47,"tag":321,"props":10618,"children":10619},{"style":349},[10620],{"type":53,"value":510},{"type":47,"tag":321,"props":10622,"children":10623},{"class":323,"line":554},[10624],{"type":47,"tag":321,"props":10625,"children":10626},{"emptyLinePlaceholder":41},[10627],{"type":53,"value":560},{"type":47,"tag":321,"props":10629,"children":10630},{"class":323,"line":563},[10631,10635,10639,10644,10648,10652,10656,10660,10664,10668,10672,10676,10680],{"type":47,"tag":321,"props":10632,"children":10633},{"style":468},[10634],{"type":53,"value":569},{"type":47,"tag":321,"props":10636,"children":10637},{"style":572},[10638],{"type":53,"value":575},{"type":47,"tag":321,"props":10640,"children":10641},{"style":433},[10642],{"type":53,"value":10643}," novu ",{"type":47,"tag":321,"props":10645,"children":10646},{"style":349},[10647],{"type":53,"value":585},{"type":47,"tag":321,"props":10649,"children":10650},{"style":588},[10651],{"type":53,"value":8684},{"type":47,"tag":321,"props":10653,"children":10654},{"style":433},[10655],{"type":53,"value":700},{"type":47,"tag":321,"props":10657,"children":10658},{"style":349},[10659],{"type":53,"value":2418},{"type":47,"tag":321,"props":10661,"children":10662},{"style":697},[10663],{"type":53,"value":8979},{"type":47,"tag":321,"props":10665,"children":10666},{"style":349},[10667],{"type":53,"value":772},{"type":47,"tag":321,"props":10669,"children":10670},{"style":433},[10671],{"type":53,"value":8988},{"type":47,"tag":321,"props":10673,"children":10674},{"style":349},[10675],{"type":53,"value":855},{"type":47,"tag":321,"props":10677,"children":10678},{"style":433},[10679],{"type":53,"value":737},{"type":47,"tag":321,"props":10681,"children":10682},{"style":349},[10683],{"type":53,"value":510},{"type":47,"tag":305,"props":10685,"children":10687},{"id":10686},"custom-any-framework",[10688],{"type":53,"value":10689},"Custom (any framework)",{"type":47,"tag":287,"props":10691,"children":10693},{"className":457,"code":10692,"language":19,"meta":295,"style":295},"import { NovuRequestHandler, ServeHandlerOptions } from \"@novu\u002Fframework\";\n\nexport const serve = (options: ServeHandlerOptions) =>\n  new NovuRequestHandler({\n    frameworkName: \"my-framework\",\n    ...options,\n    handler: (req, res) => ({ \u002F* method, headers, body, url, transformResponse *\u002F }),\n  }).createHandler();\n",[10694],{"type":47,"tag":62,"props":10695,"children":10696},{"__ignoreMap":295},[10697,10746,10753,10798,10818,10847,10863,10926],{"type":47,"tag":321,"props":10698,"children":10699},{"class":323,"line":23},[10700,10704,10708,10713,10717,10722,10726,10730,10734,10738,10742],{"type":47,"tag":321,"props":10701,"children":10702},{"style":468},[10703],{"type":53,"value":471},{"type":47,"tag":321,"props":10705,"children":10706},{"style":349},[10707],{"type":53,"value":476},{"type":47,"tag":321,"props":10709,"children":10710},{"style":433},[10711],{"type":53,"value":10712}," NovuRequestHandler",{"type":47,"tag":321,"props":10714,"children":10715},{"style":349},[10716],{"type":53,"value":643},{"type":47,"tag":321,"props":10718,"children":10719},{"style":433},[10720],{"type":53,"value":10721}," ServeHandlerOptions",{"type":47,"tag":321,"props":10723,"children":10724},{"style":349},[10725],{"type":53,"value":486},{"type":47,"tag":321,"props":10727,"children":10728},{"style":468},[10729],{"type":53,"value":491},{"type":47,"tag":321,"props":10731,"children":10732},{"style":349},[10733],{"type":53,"value":496},{"type":47,"tag":321,"props":10735,"children":10736},{"style":333},[10737],{"type":53,"value":67},{"type":47,"tag":321,"props":10739,"children":10740},{"style":349},[10741],{"type":53,"value":505},{"type":47,"tag":321,"props":10743,"children":10744},{"style":349},[10745],{"type":53,"value":510},{"type":47,"tag":321,"props":10747,"children":10748},{"class":323,"line":27},[10749],{"type":47,"tag":321,"props":10750,"children":10751},{"emptyLinePlaceholder":41},[10752],{"type":53,"value":560},{"type":47,"tag":321,"props":10754,"children":10755},{"class":323,"line":554},[10756,10760,10764,10769,10773,10777,10781,10785,10789,10793],{"type":47,"tag":321,"props":10757,"children":10758},{"style":468},[10759],{"type":53,"value":569},{"type":47,"tag":321,"props":10761,"children":10762},{"style":572},[10763],{"type":53,"value":575},{"type":47,"tag":321,"props":10765,"children":10766},{"style":433},[10767],{"type":53,"value":10768}," serve ",{"type":47,"tag":321,"props":10770,"children":10771},{"style":349},[10772],{"type":53,"value":585},{"type":47,"tag":321,"props":10774,"children":10775},{"style":349},[10776],{"type":53,"value":727},{"type":47,"tag":321,"props":10778,"children":10779},{"style":635},[10780],{"type":53,"value":1579},{"type":47,"tag":321,"props":10782,"children":10783},{"style":349},[10784],{"type":53,"value":772},{"type":47,"tag":321,"props":10786,"children":10787},{"style":327},[10788],{"type":53,"value":10721},{"type":47,"tag":321,"props":10790,"children":10791},{"style":349},[10792],{"type":53,"value":737},{"type":47,"tag":321,"props":10794,"children":10795},{"style":572},[10796],{"type":53,"value":10797}," =>\n",{"type":47,"tag":321,"props":10799,"children":10800},{"class":323,"line":563},[10801,10806,10810,10814],{"type":47,"tag":321,"props":10802,"children":10803},{"style":349},[10804],{"type":53,"value":10805},"  new",{"type":47,"tag":321,"props":10807,"children":10808},{"style":588},[10809],{"type":53,"value":10712},{"type":47,"tag":321,"props":10811,"children":10812},{"style":433},[10813],{"type":53,"value":700},{"type":47,"tag":321,"props":10815,"children":10816},{"style":349},[10817],{"type":53,"value":926},{"type":47,"tag":321,"props":10819,"children":10820},{"class":323,"line":598},[10821,10826,10830,10834,10839,10843],{"type":47,"tag":321,"props":10822,"children":10823},{"style":697},[10824],{"type":53,"value":10825},"    frameworkName",{"type":47,"tag":321,"props":10827,"children":10828},{"style":349},[10829],{"type":53,"value":772},{"type":47,"tag":321,"props":10831,"children":10832},{"style":349},[10833],{"type":53,"value":496},{"type":47,"tag":321,"props":10835,"children":10836},{"style":333},[10837],{"type":53,"value":10838},"my-framework",{"type":47,"tag":321,"props":10840,"children":10841},{"style":349},[10842],{"type":53,"value":505},{"type":47,"tag":321,"props":10844,"children":10845},{"style":349},[10846],{"type":53,"value":618},{"type":47,"tag":321,"props":10848,"children":10849},{"class":323,"line":621},[10850,10855,10859],{"type":47,"tag":321,"props":10851,"children":10852},{"style":349},[10853],{"type":53,"value":10854},"    ...",{"type":47,"tag":321,"props":10856,"children":10857},{"style":433},[10858],{"type":53,"value":1579},{"type":47,"tag":321,"props":10860,"children":10861},{"style":349},[10862],{"type":53,"value":618},{"type":47,"tag":321,"props":10864,"children":10865},{"class":323,"line":675},[10866,10871,10875,10879,10884,10888,10893,10897,10901,10905,10909,10914,10918,10922],{"type":47,"tag":321,"props":10867,"children":10868},{"style":588},[10869],{"type":53,"value":10870},"    handler",{"type":47,"tag":321,"props":10872,"children":10873},{"style":349},[10874],{"type":53,"value":772},{"type":47,"tag":321,"props":10876,"children":10877},{"style":349},[10878],{"type":53,"value":727},{"type":47,"tag":321,"props":10880,"children":10881},{"style":635},[10882],{"type":53,"value":10883},"req",{"type":47,"tag":321,"props":10885,"children":10886},{"style":349},[10887],{"type":53,"value":643},{"type":47,"tag":321,"props":10889,"children":10890},{"style":635},[10891],{"type":53,"value":10892}," res",{"type":47,"tag":321,"props":10894,"children":10895},{"style":349},[10896],{"type":53,"value":737},{"type":47,"tag":321,"props":10898,"children":10899},{"style":572},[10900],{"type":53,"value":667},{"type":47,"tag":321,"props":10902,"children":10903},{"style":433},[10904],{"type":53,"value":727},{"type":47,"tag":321,"props":10906,"children":10907},{"style":349},[10908],{"type":53,"value":2418},{"type":47,"tag":321,"props":10910,"children":10911},{"style":3819},[10912],{"type":53,"value":10913}," \u002F* method, headers, body, url, transformResponse *\u002F",{"type":47,"tag":321,"props":10915,"children":10916},{"style":349},[10917],{"type":53,"value":486},{"type":47,"tag":321,"props":10919,"children":10920},{"style":433},[10921],{"type":53,"value":737},{"type":47,"tag":321,"props":10923,"children":10924},{"style":349},[10925],{"type":53,"value":618},{"type":47,"tag":321,"props":10927,"children":10928},{"class":323,"line":748},[10929,10933,10937,10941,10946,10950],{"type":47,"tag":321,"props":10930,"children":10931},{"style":349},[10932],{"type":53,"value":4451},{"type":47,"tag":321,"props":10934,"children":10935},{"style":433},[10936],{"type":53,"value":737},{"type":47,"tag":321,"props":10938,"children":10939},{"style":349},[10940],{"type":53,"value":248},{"type":47,"tag":321,"props":10942,"children":10943},{"style":588},[10944],{"type":53,"value":10945},"createHandler",{"type":47,"tag":321,"props":10947,"children":10948},{"style":433},[10949],{"type":53,"value":956},{"type":47,"tag":321,"props":10951,"children":10952},{"style":349},[10953],{"type":53,"value":510},{"type":47,"tag":56,"props":10955,"children":10956},{},[10957,10959,10967],{"type":53,"value":10958},"See ",{"type":47,"tag":94,"props":10960,"children":10961},{"href":9638},[10962],{"type":47,"tag":62,"props":10963,"children":10965},{"className":10964},[],[10966],{"type":53,"value":9645},{"type":53,"value":10968}," for the full custom handler signature.",{"type":47,"tag":107,"props":10970,"children":10972},{"id":10971},"local-studio",[10973],{"type":53,"value":10974},"Local Studio",{"type":47,"tag":56,"props":10976,"children":10977},{},[10978],{"type":53,"value":10979},"Live preview of your workflows with a public tunnel for Novu Cloud to reach your machine.",{"type":47,"tag":287,"props":10981,"children":10983},{"className":313,"code":10982,"language":315,"meta":295,"style":295},"npx novu@latest dev\n# Defaults: --port 4000  --route \u002Fapi\u002Fnovu  --studio-port 2022\n",[10984],{"type":47,"tag":62,"props":10985,"children":10986},{"__ignoreMap":295},[10987,11003],{"type":47,"tag":321,"props":10988,"children":10989},{"class":323,"line":23},[10990,10994,10998],{"type":47,"tag":321,"props":10991,"children":10992},{"style":327},[10993],{"type":53,"value":330},{"type":47,"tag":321,"props":10995,"children":10996},{"style":333},[10997],{"type":53,"value":1351},{"type":47,"tag":321,"props":10999,"children":11000},{"style":333},[11001],{"type":53,"value":11002}," dev\n",{"type":47,"tag":321,"props":11004,"children":11005},{"class":323,"line":27},[11006],{"type":47,"tag":321,"props":11007,"children":11008},{"style":3819},[11009],{"type":53,"value":11010},"# Defaults: --port 4000  --route \u002Fapi\u002Fnovu  --studio-port 2022\n",{"type":47,"tag":56,"props":11012,"children":11013},{},[11014,11016,11021],{"type":53,"value":11015},"Then open ",{"type":47,"tag":62,"props":11017,"children":11019},{"className":11018},[],[11020],{"type":53,"value":1391},{"type":53,"value":11022}," (Chrome only).",{"type":47,"tag":305,"props":11024,"children":11026},{"id":11025},"cli-flags",[11027],{"type":53,"value":11028},"CLI Flags",{"type":47,"tag":114,"props":11030,"children":11031},{},[11032,11052],{"type":47,"tag":118,"props":11033,"children":11034},{},[11035],{"type":47,"tag":122,"props":11036,"children":11037},{},[11038,11043,11048],{"type":47,"tag":126,"props":11039,"children":11040},{},[11041],{"type":53,"value":11042},"Flag",{"type":47,"tag":126,"props":11044,"children":11045},{},[11046],{"type":53,"value":11047},"Default",{"type":47,"tag":126,"props":11049,"children":11050},{},[11051],{"type":53,"value":1622},{"type":47,"tag":137,"props":11053,"children":11054},{},[11055,11087,11119,11152,11193,11226,11255],{"type":47,"tag":122,"props":11056,"children":11057},{},[11058,11074,11082],{"type":47,"tag":144,"props":11059,"children":11060},{},[11061,11067,11068],{"type":47,"tag":62,"props":11062,"children":11064},{"className":11063},[],[11065],{"type":53,"value":11066},"-p",{"type":53,"value":1865},{"type":47,"tag":62,"props":11069,"children":11071},{"className":11070},[],[11072],{"type":53,"value":11073},"--port",{"type":47,"tag":144,"props":11075,"children":11076},{},[11077],{"type":47,"tag":62,"props":11078,"children":11080},{"className":11079},[],[11081],{"type":53,"value":9303},{"type":47,"tag":144,"props":11083,"children":11084},{},[11085],{"type":53,"value":11086},"Your app's port",{"type":47,"tag":122,"props":11088,"children":11089},{},[11090,11106,11114],{"type":47,"tag":144,"props":11091,"children":11092},{},[11093,11099,11100],{"type":47,"tag":62,"props":11094,"children":11096},{"className":11095},[],[11097],{"type":53,"value":11098},"-r",{"type":53,"value":1865},{"type":47,"tag":62,"props":11101,"children":11103},{"className":11102},[],[11104],{"type":53,"value":11105},"--route",{"type":47,"tag":144,"props":11107,"children":11108},{},[11109],{"type":47,"tag":62,"props":11110,"children":11112},{"className":11111},[],[11113],{"type":53,"value":259},{"type":47,"tag":144,"props":11115,"children":11116},{},[11117],{"type":53,"value":11118},"Bridge route path",{"type":47,"tag":122,"props":11120,"children":11121},{},[11122,11138,11147],{"type":47,"tag":144,"props":11123,"children":11124},{},[11125,11131,11132],{"type":47,"tag":62,"props":11126,"children":11128},{"className":11127},[],[11129],{"type":53,"value":11130},"-o",{"type":53,"value":1865},{"type":47,"tag":62,"props":11133,"children":11135},{"className":11134},[],[11136],{"type":53,"value":11137},"--origin",{"type":47,"tag":144,"props":11139,"children":11140},{},[11141],{"type":47,"tag":62,"props":11142,"children":11144},{"className":11143},[],[11145],{"type":53,"value":11146},"http:\u002F\u002Flocalhost",{"type":47,"tag":144,"props":11148,"children":11149},{},[11150],{"type":53,"value":11151},"Bridge origin",{"type":47,"tag":122,"props":11153,"children":11154},{},[11155,11171,11180],{"type":47,"tag":144,"props":11156,"children":11157},{},[11158,11164,11165],{"type":47,"tag":62,"props":11159,"children":11161},{"className":11160},[],[11162],{"type":53,"value":11163},"-d",{"type":53,"value":1865},{"type":47,"tag":62,"props":11166,"children":11168},{"className":11167},[],[11169],{"type":53,"value":11170},"--dashboard-url",{"type":47,"tag":144,"props":11172,"children":11173},{},[11174],{"type":47,"tag":62,"props":11175,"children":11177},{"className":11176},[],[11178],{"type":53,"value":11179},"https:\u002F\u002Fdashboard.novu.co",{"type":47,"tag":144,"props":11181,"children":11182},{},[11183,11185,11191],{"type":53,"value":11184},"Dashboard URL — use ",{"type":47,"tag":62,"props":11186,"children":11188},{"className":11187},[],[11189],{"type":53,"value":11190},"https:\u002F\u002Feu.dashboard.novu.co",{"type":53,"value":11192}," for EU",{"type":47,"tag":122,"props":11194,"children":11195},{},[11196,11212,11221],{"type":47,"tag":144,"props":11197,"children":11198},{},[11199,11205,11206],{"type":47,"tag":62,"props":11200,"children":11202},{"className":11201},[],[11203],{"type":53,"value":11204},"-sp",{"type":53,"value":1865},{"type":47,"tag":62,"props":11207,"children":11209},{"className":11208},[],[11210],{"type":53,"value":11211},"--studio-port",{"type":47,"tag":144,"props":11213,"children":11214},{},[11215],{"type":47,"tag":62,"props":11216,"children":11218},{"className":11217},[],[11219],{"type":53,"value":11220},"2022",{"type":47,"tag":144,"props":11222,"children":11223},{},[11224],{"type":53,"value":11225},"Studio UI port",{"type":47,"tag":122,"props":11227,"children":11228},{},[11229,11245,11250],{"type":47,"tag":144,"props":11230,"children":11231},{},[11232,11238,11239],{"type":47,"tag":62,"props":11233,"children":11235},{"className":11234},[],[11236],{"type":53,"value":11237},"-t",{"type":53,"value":1865},{"type":47,"tag":62,"props":11240,"children":11242},{"className":11241},[],[11243],{"type":53,"value":11244},"--tunnel",{"type":47,"tag":144,"props":11246,"children":11247},{},[11248],{"type":53,"value":11249},"auto",{"type":47,"tag":144,"props":11251,"children":11252},{},[11253],{"type":53,"value":11254},"Self-hosted tunnel URL (e.g. ngrok)",{"type":47,"tag":122,"props":11256,"children":11257},{},[11258,11274,11282],{"type":47,"tag":144,"props":11259,"children":11260},{},[11261,11267,11268],{"type":47,"tag":62,"props":11262,"children":11264},{"className":11263},[],[11265],{"type":53,"value":11266},"-H",{"type":53,"value":1865},{"type":47,"tag":62,"props":11269,"children":11271},{"className":11270},[],[11272],{"type":53,"value":11273},"--headless",{"type":47,"tag":144,"props":11275,"children":11276},{},[11277],{"type":47,"tag":62,"props":11278,"children":11280},{"className":11279},[],[11281],{"type":53,"value":7961},{"type":47,"tag":144,"props":11283,"children":11284},{},[11285],{"type":53,"value":11286},"Skip the Studio UI",{"type":47,"tag":287,"props":11288,"children":11290},{"className":313,"code":11289,"language":315,"meta":295,"style":295},"npx novu@latest dev --port 3002 --dashboard-url https:\u002F\u002Feu.dashboard.novu.co\n",[11291],{"type":47,"tag":62,"props":11292,"children":11293},{"__ignoreMap":295},[11294],{"type":47,"tag":321,"props":11295,"children":11296},{"class":323,"line":23},[11297,11301,11305,11309,11313,11318,11323],{"type":47,"tag":321,"props":11298,"children":11299},{"style":327},[11300],{"type":53,"value":330},{"type":47,"tag":321,"props":11302,"children":11303},{"style":333},[11304],{"type":53,"value":1351},{"type":47,"tag":321,"props":11306,"children":11307},{"style":333},[11308],{"type":53,"value":1356},{"type":47,"tag":321,"props":11310,"children":11311},{"style":333},[11312],{"type":53,"value":1361},{"type":47,"tag":321,"props":11314,"children":11315},{"style":3559},[11316],{"type":53,"value":11317}," 3002",{"type":47,"tag":321,"props":11319,"children":11320},{"style":333},[11321],{"type":53,"value":11322}," --dashboard-url",{"type":47,"tag":321,"props":11324,"children":11325},{"style":333},[11326],{"type":53,"value":11327}," https:\u002F\u002Feu.dashboard.novu.co\n",{"type":47,"tag":56,"props":11329,"children":11330},{},[11331],{"type":53,"value":11332},"The Studio:",{"type":47,"tag":1844,"props":11334,"children":11335},{},[11336,11347,11352,11372],{"type":47,"tag":229,"props":11337,"children":11338},{},[11339,11341],{"type":53,"value":11340},"Auto-creates a stable tunnel URL like ",{"type":47,"tag":62,"props":11342,"children":11344},{"className":11343},[],[11345],{"type":53,"value":11346},"https:\u002F\u002F\u003Cid>.novu.sh\u002Fapi\u002Fnovu",{"type":47,"tag":229,"props":11348,"children":11349},{},[11350],{"type":53,"value":11351},"Lets you edit Step Controls and Payload to preview different states",{"type":47,"tag":229,"props":11353,"children":11354},{},[11355,11357,11363,11365,11370],{"type":53,"value":11356},"Runs against ",{"type":47,"tag":62,"props":11358,"children":11360},{"className":11359},[],[11361],{"type":53,"value":11362},"process.env.NODE_ENV=development",{"type":53,"value":11364}," — HMAC verification is ",{"type":47,"tag":71,"props":11366,"children":11367},{},[11368],{"type":53,"value":11369},"off",{"type":53,"value":11371}," to allow Studio access",{"type":47,"tag":229,"props":11373,"children":11374},{},[11375],{"type":53,"value":11376},"Has a \"Sync\" button to push state to Cloud (use CI\u002FCD for real deployments)",{"type":47,"tag":107,"props":11378,"children":11380},{"id":11379},"triggering-workflows",[11381],{"type":53,"value":11382},"Triggering Workflows",{"type":47,"tag":56,"props":11384,"children":11385},{},[11386,11388,11394],{"type":53,"value":11387},"Code-defined workflows are triggered the same way as Dashboard workflows — using ",{"type":47,"tag":62,"props":11389,"children":11391},{"className":11390},[],[11392],{"type":53,"value":11393},"@novu\u002Fapi",{"type":53,"value":11395}," from your trigger surface (server, queue worker, webhook handler):",{"type":47,"tag":287,"props":11397,"children":11399},{"className":457,"code":11398,"language":19,"meta":295,"style":295},"import { Novu } from \"@novu\u002Fapi\";\nconst novu = new Novu({ secretKey: process.env.NOVU_SECRET_KEY });\n\nawait novu.trigger({\n  workflowId: \"welcome-email\",\n  to: { subscriberId: \"user-123\", email: \"jane@acme.com\" },\n  payload: { userName: \"Jane\", appName: \"Acme\" },\n});\n",[11400],{"type":47,"tag":62,"props":11401,"children":11402},{"__ignoreMap":295},[11403,11443,11519,11526,11554,11582,11650,11717],{"type":47,"tag":321,"props":11404,"children":11405},{"class":323,"line":23},[11406,11410,11414,11419,11423,11427,11431,11435,11439],{"type":47,"tag":321,"props":11407,"children":11408},{"style":468},[11409],{"type":53,"value":471},{"type":47,"tag":321,"props":11411,"children":11412},{"style":349},[11413],{"type":53,"value":476},{"type":47,"tag":321,"props":11415,"children":11416},{"style":433},[11417],{"type":53,"value":11418}," Novu",{"type":47,"tag":321,"props":11420,"children":11421},{"style":349},[11422],{"type":53,"value":486},{"type":47,"tag":321,"props":11424,"children":11425},{"style":468},[11426],{"type":53,"value":491},{"type":47,"tag":321,"props":11428,"children":11429},{"style":349},[11430],{"type":53,"value":496},{"type":47,"tag":321,"props":11432,"children":11433},{"style":333},[11434],{"type":53,"value":11393},{"type":47,"tag":321,"props":11436,"children":11437},{"style":349},[11438],{"type":53,"value":505},{"type":47,"tag":321,"props":11440,"children":11441},{"style":349},[11442],{"type":53,"value":510},{"type":47,"tag":321,"props":11444,"children":11445},{"class":323,"line":27},[11446,11450,11454,11458,11463,11467,11471,11475,11480,11484,11489,11493,11498,11502,11507,11511,11515],{"type":47,"tag":321,"props":11447,"children":11448},{"style":572},[11449],{"type":53,"value":3664},{"type":47,"tag":321,"props":11451,"children":11452},{"style":433},[11453],{"type":53,"value":10643},{"type":47,"tag":321,"props":11455,"children":11456},{"style":349},[11457],{"type":53,"value":585},{"type":47,"tag":321,"props":11459,"children":11460},{"style":349},[11461],{"type":53,"value":11462}," new",{"type":47,"tag":321,"props":11464,"children":11465},{"style":588},[11466],{"type":53,"value":11418},{"type":47,"tag":321,"props":11468,"children":11469},{"style":433},[11470],{"type":53,"value":700},{"type":47,"tag":321,"props":11472,"children":11473},{"style":349},[11474],{"type":53,"value":2418},{"type":47,"tag":321,"props":11476,"children":11477},{"style":697},[11478],{"type":53,"value":11479}," secretKey",{"type":47,"tag":321,"props":11481,"children":11482},{"style":349},[11483],{"type":53,"value":772},{"type":47,"tag":321,"props":11485,"children":11486},{"style":433},[11487],{"type":53,"value":11488}," process",{"type":47,"tag":321,"props":11490,"children":11491},{"style":349},[11492],{"type":53,"value":248},{"type":47,"tag":321,"props":11494,"children":11495},{"style":433},[11496],{"type":53,"value":11497},"env",{"type":47,"tag":321,"props":11499,"children":11500},{"style":349},[11501],{"type":53,"value":248},{"type":47,"tag":321,"props":11503,"children":11504},{"style":433},[11505],{"type":53,"value":11506},"NOVU_SECRET_KEY ",{"type":47,"tag":321,"props":11508,"children":11509},{"style":349},[11510],{"type":53,"value":855},{"type":47,"tag":321,"props":11512,"children":11513},{"style":433},[11514],{"type":53,"value":737},{"type":47,"tag":321,"props":11516,"children":11517},{"style":349},[11518],{"type":53,"value":510},{"type":47,"tag":321,"props":11520,"children":11521},{"class":323,"line":554},[11522],{"type":47,"tag":321,"props":11523,"children":11524},{"emptyLinePlaceholder":41},[11525],{"type":53,"value":560},{"type":47,"tag":321,"props":11527,"children":11528},{"class":323,"line":563},[11529,11533,11537,11541,11546,11550],{"type":47,"tag":321,"props":11530,"children":11531},{"style":468},[11532],{"type":53,"value":1939},{"type":47,"tag":321,"props":11534,"children":11535},{"style":433},[11536],{"type":53,"value":336},{"type":47,"tag":321,"props":11538,"children":11539},{"style":349},[11540],{"type":53,"value":248},{"type":47,"tag":321,"props":11542,"children":11543},{"style":588},[11544],{"type":53,"value":11545},"trigger",{"type":47,"tag":321,"props":11547,"children":11548},{"style":433},[11549],{"type":53,"value":700},{"type":47,"tag":321,"props":11551,"children":11552},{"style":349},[11553],{"type":53,"value":926},{"type":47,"tag":321,"props":11555,"children":11556},{"class":323,"line":598},[11557,11562,11566,11570,11574,11578],{"type":47,"tag":321,"props":11558,"children":11559},{"style":697},[11560],{"type":53,"value":11561},"  workflowId",{"type":47,"tag":321,"props":11563,"children":11564},{"style":349},[11565],{"type":53,"value":772},{"type":47,"tag":321,"props":11567,"children":11568},{"style":349},[11569],{"type":53,"value":496},{"type":47,"tag":321,"props":11571,"children":11572},{"style":333},[11573],{"type":53,"value":609},{"type":47,"tag":321,"props":11575,"children":11576},{"style":349},[11577],{"type":53,"value":505},{"type":47,"tag":321,"props":11579,"children":11580},{"style":349},[11581],{"type":53,"value":618},{"type":47,"tag":321,"props":11583,"children":11584},{"class":323,"line":621},[11585,11590,11594,11598,11603,11607,11611,11616,11620,11624,11629,11633,11637,11642,11646],{"type":47,"tag":321,"props":11586,"children":11587},{"style":697},[11588],{"type":53,"value":11589},"  to",{"type":47,"tag":321,"props":11591,"children":11592},{"style":349},[11593],{"type":53,"value":772},{"type":47,"tag":321,"props":11595,"children":11596},{"style":349},[11597],{"type":53,"value":476},{"type":47,"tag":321,"props":11599,"children":11600},{"style":697},[11601],{"type":53,"value":11602}," subscriberId",{"type":47,"tag":321,"props":11604,"children":11605},{"style":349},[11606],{"type":53,"value":772},{"type":47,"tag":321,"props":11608,"children":11609},{"style":349},[11610],{"type":53,"value":496},{"type":47,"tag":321,"props":11612,"children":11613},{"style":333},[11614],{"type":53,"value":11615},"user-123",{"type":47,"tag":321,"props":11617,"children":11618},{"style":349},[11619],{"type":53,"value":505},{"type":47,"tag":321,"props":11621,"children":11622},{"style":349},[11623],{"type":53,"value":643},{"type":47,"tag":321,"props":11625,"children":11626},{"style":697},[11627],{"type":53,"value":11628}," email",{"type":47,"tag":321,"props":11630,"children":11631},{"style":349},[11632],{"type":53,"value":772},{"type":47,"tag":321,"props":11634,"children":11635},{"style":349},[11636],{"type":53,"value":496},{"type":47,"tag":321,"props":11638,"children":11639},{"style":333},[11640],{"type":53,"value":11641},"jane@acme.com",{"type":47,"tag":321,"props":11643,"children":11644},{"style":349},[11645],{"type":53,"value":505},{"type":47,"tag":321,"props":11647,"children":11648},{"style":349},[11649],{"type":53,"value":2747},{"type":47,"tag":321,"props":11651,"children":11652},{"class":323,"line":675},[11653,11658,11662,11666,11671,11675,11679,11684,11688,11692,11697,11701,11705,11709,11713],{"type":47,"tag":321,"props":11654,"children":11655},{"style":697},[11656],{"type":53,"value":11657},"  payload",{"type":47,"tag":321,"props":11659,"children":11660},{"style":349},[11661],{"type":53,"value":772},{"type":47,"tag":321,"props":11663,"children":11664},{"style":349},[11665],{"type":53,"value":476},{"type":47,"tag":321,"props":11667,"children":11668},{"style":697},[11669],{"type":53,"value":11670}," userName",{"type":47,"tag":321,"props":11672,"children":11673},{"style":349},[11674],{"type":53,"value":772},{"type":47,"tag":321,"props":11676,"children":11677},{"style":349},[11678],{"type":53,"value":496},{"type":47,"tag":321,"props":11680,"children":11681},{"style":333},[11682],{"type":53,"value":11683},"Jane",{"type":47,"tag":321,"props":11685,"children":11686},{"style":349},[11687],{"type":53,"value":505},{"type":47,"tag":321,"props":11689,"children":11690},{"style":349},[11691],{"type":53,"value":643},{"type":47,"tag":321,"props":11693,"children":11694},{"style":697},[11695],{"type":53,"value":11696}," appName",{"type":47,"tag":321,"props":11698,"children":11699},{"style":349},[11700],{"type":53,"value":772},{"type":47,"tag":321,"props":11702,"children":11703},{"style":349},[11704],{"type":53,"value":496},{"type":47,"tag":321,"props":11706,"children":11707},{"style":333},[11708],{"type":53,"value":1158},{"type":47,"tag":321,"props":11710,"children":11711},{"style":349},[11712],{"type":53,"value":505},{"type":47,"tag":321,"props":11714,"children":11715},{"style":349},[11716],{"type":53,"value":2747},{"type":47,"tag":321,"props":11718,"children":11719},{"class":323,"line":748},[11720,11724,11728],{"type":47,"tag":321,"props":11721,"children":11722},{"style":349},[11723],{"type":53,"value":855},{"type":47,"tag":321,"props":11725,"children":11726},{"style":433},[11727],{"type":53,"value":737},{"type":47,"tag":321,"props":11729,"children":11730},{"style":349},[11731],{"type":53,"value":510},{"type":47,"tag":56,"props":11733,"children":11734},{},[11735,11737,11742],{"type":53,"value":11736},"You can also trigger a workflow from inside a ",{"type":47,"tag":62,"props":11738,"children":11740},{"className":11739},[],[11741],{"type":53,"value":4067},{"type":53,"value":11743}," of another workflow:",{"type":47,"tag":287,"props":11745,"children":11747},{"className":457,"code":11746,"language":19,"meta":295,"style":295},"await step.custom(\"trigger-summary\", async () => {\n  return await summaryWorkflow.trigger({\n    to: subscriber.subscriberId,\n    payload: { events: events.map(e => e.payload) },\n  });\n});\n",[11748],{"type":47,"tag":62,"props":11749,"children":11750},{"__ignoreMap":295},[11751,11807,11839,11867,11939,11954],{"type":47,"tag":321,"props":11752,"children":11753},{"class":323,"line":23},[11754,11758,11762,11766,11770,11774,11778,11783,11787,11791,11795,11799,11803],{"type":47,"tag":321,"props":11755,"children":11756},{"style":468},[11757],{"type":53,"value":1939},{"type":47,"tag":321,"props":11759,"children":11760},{"style":433},[11761],{"type":53,"value":638},{"type":47,"tag":321,"props":11763,"children":11764},{"style":349},[11765],{"type":53,"value":248},{"type":47,"tag":321,"props":11767,"children":11768},{"style":588},[11769],{"type":53,"value":5135},{"type":47,"tag":321,"props":11771,"children":11772},{"style":433},[11773],{"type":53,"value":700},{"type":47,"tag":321,"props":11775,"children":11776},{"style":349},[11777],{"type":53,"value":505},{"type":47,"tag":321,"props":11779,"children":11780},{"style":333},[11781],{"type":53,"value":11782},"trigger-summary",{"type":47,"tag":321,"props":11784,"children":11785},{"style":349},[11786],{"type":53,"value":505},{"type":47,"tag":321,"props":11788,"children":11789},{"style":349},[11790],{"type":53,"value":643},{"type":47,"tag":321,"props":11792,"children":11793},{"style":572},[11794],{"type":53,"value":722},{"type":47,"tag":321,"props":11796,"children":11797},{"style":349},[11798],{"type":53,"value":2581},{"type":47,"tag":321,"props":11800,"children":11801},{"style":572},[11802],{"type":53,"value":667},{"type":47,"tag":321,"props":11804,"children":11805},{"style":349},[11806],{"type":53,"value":672},{"type":47,"tag":321,"props":11808,"children":11809},{"class":323,"line":27},[11810,11814,11818,11823,11827,11831,11835],{"type":47,"tag":321,"props":11811,"children":11812},{"style":468},[11813],{"type":53,"value":5240},{"type":47,"tag":321,"props":11815,"children":11816},{"style":468},[11817],{"type":53,"value":3687},{"type":47,"tag":321,"props":11819,"children":11820},{"style":433},[11821],{"type":53,"value":11822}," summaryWorkflow",{"type":47,"tag":321,"props":11824,"children":11825},{"style":349},[11826],{"type":53,"value":248},{"type":47,"tag":321,"props":11828,"children":11829},{"style":588},[11830],{"type":53,"value":11545},{"type":47,"tag":321,"props":11832,"children":11833},{"style":697},[11834],{"type":53,"value":700},{"type":47,"tag":321,"props":11836,"children":11837},{"style":349},[11838],{"type":53,"value":926},{"type":47,"tag":321,"props":11840,"children":11841},{"class":323,"line":554},[11842,11847,11851,11855,11859,11863],{"type":47,"tag":321,"props":11843,"children":11844},{"style":697},[11845],{"type":53,"value":11846},"    to",{"type":47,"tag":321,"props":11848,"children":11849},{"style":349},[11850],{"type":53,"value":772},{"type":47,"tag":321,"props":11852,"children":11853},{"style":433},[11854],{"type":53,"value":657},{"type":47,"tag":321,"props":11856,"children":11857},{"style":349},[11858],{"type":53,"value":248},{"type":47,"tag":321,"props":11860,"children":11861},{"style":433},[11862],{"type":53,"value":4972},{"type":47,"tag":321,"props":11864,"children":11865},{"style":349},[11866],{"type":53,"value":618},{"type":47,"tag":321,"props":11868,"children":11869},{"class":323,"line":563},[11870,11875,11879,11883,11887,11891,11895,11899,11904,11908,11913,11917,11922,11926,11930,11935],{"type":47,"tag":321,"props":11871,"children":11872},{"style":697},[11873],{"type":53,"value":11874},"    payload",{"type":47,"tag":321,"props":11876,"children":11877},{"style":349},[11878],{"type":53,"value":772},{"type":47,"tag":321,"props":11880,"children":11881},{"style":349},[11882],{"type":53,"value":476},{"type":47,"tag":321,"props":11884,"children":11885},{"style":697},[11886],{"type":53,"value":3980},{"type":47,"tag":321,"props":11888,"children":11889},{"style":349},[11890],{"type":53,"value":772},{"type":47,"tag":321,"props":11892,"children":11893},{"style":433},[11894],{"type":53,"value":3980},{"type":47,"tag":321,"props":11896,"children":11897},{"style":349},[11898],{"type":53,"value":248},{"type":47,"tag":321,"props":11900,"children":11901},{"style":588},[11902],{"type":53,"value":11903},"map",{"type":47,"tag":321,"props":11905,"children":11906},{"style":697},[11907],{"type":53,"value":700},{"type":47,"tag":321,"props":11909,"children":11910},{"style":635},[11911],{"type":53,"value":11912},"e",{"type":47,"tag":321,"props":11914,"children":11915},{"style":572},[11916],{"type":53,"value":667},{"type":47,"tag":321,"props":11918,"children":11919},{"style":433},[11920],{"type":53,"value":11921}," e",{"type":47,"tag":321,"props":11923,"children":11924},{"style":349},[11925],{"type":53,"value":248},{"type":47,"tag":321,"props":11927,"children":11928},{"style":433},[11929],{"type":53,"value":1657},{"type":47,"tag":321,"props":11931,"children":11932},{"style":697},[11933],{"type":53,"value":11934},") ",{"type":47,"tag":321,"props":11936,"children":11937},{"style":349},[11938],{"type":53,"value":2933},{"type":47,"tag":321,"props":11940,"children":11941},{"class":323,"line":598},[11942,11946,11950],{"type":47,"tag":321,"props":11943,"children":11944},{"style":349},[11945],{"type":53,"value":4451},{"type":47,"tag":321,"props":11947,"children":11948},{"style":697},[11949],{"type":53,"value":737},{"type":47,"tag":321,"props":11951,"children":11952},{"style":349},[11953],{"type":53,"value":510},{"type":47,"tag":321,"props":11955,"children":11956},{"class":323,"line":621},[11957,11961,11965],{"type":47,"tag":321,"props":11958,"children":11959},{"style":349},[11960],{"type":53,"value":855},{"type":47,"tag":321,"props":11962,"children":11963},{"style":433},[11964],{"type":53,"value":737},{"type":47,"tag":321,"props":11966,"children":11967},{"style":349},[11968],{"type":53,"value":510},{"type":47,"tag":56,"props":11970,"children":11971},{},[11972,11973,11981],{"type":53,"value":10958},{"type":47,"tag":94,"props":11974,"children":11975},{"href":96},[11976],{"type":47,"tag":62,"props":11977,"children":11979},{"className":11978},[],[11980],{"type":53,"value":103},{"type":53,"value":11982}," for full trigger options (bulk, broadcast, topics, overrides, transactionId, cancel).",{"type":47,"tag":107,"props":11984,"children":11986},{"id":11985},"react-email-and-friends",[11987],{"type":53,"value":11988},"React Email (and friends)",{"type":47,"tag":56,"props":11990,"children":11991},{},[11992],{"type":53,"value":11993},"Render emails using your existing component library.",{"type":47,"tag":305,"props":11995,"children":11997},{"id":11996},"react-email",[11998],{"type":53,"value":11999},"React Email",{"type":47,"tag":287,"props":12001,"children":12003},{"className":313,"code":12002,"language":315,"meta":295,"style":295},"npm install @react-email\u002Fcomponents react-email\n",[12004],{"type":47,"tag":62,"props":12005,"children":12006},{"__ignoreMap":295},[12007],{"type":47,"tag":321,"props":12008,"children":12009},{"class":323,"line":23},[12010,12014,12018,12022],{"type":47,"tag":321,"props":12011,"children":12012},{"style":327},[12013],{"type":53,"value":395},{"type":47,"tag":321,"props":12015,"children":12016},{"style":333},[12017],{"type":53,"value":400},{"type":47,"tag":321,"props":12019,"children":12020},{"style":333},[12021],{"type":53,"value":415},{"type":47,"tag":321,"props":12023,"children":12024},{"style":333},[12025],{"type":53,"value":420},{"type":47,"tag":287,"props":12027,"children":12031},{"className":12028,"code":12029,"language":12030,"meta":295,"style":295},"language-tsx shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { Body, Container, Head, Html, render } from \"@react-email\u002Fcomponents\";\n\nexport const WelcomeEmail = ({ name }: { name: string }) => (\n  \u003CHtml>\n    \u003CHead \u002F>\n    \u003CBody>\n      \u003CContainer>Hello {name}, welcome!\u003C\u002FContainer>\n    \u003C\u002FBody>\n  \u003C\u002FHtml>\n);\n\nexport const renderWelcome = (name: string) => render(\u003CWelcomeEmail name={name} \u002F>);\n","tsx",[12032],{"type":47,"tag":62,"props":12033,"children":12034},{"__ignoreMap":295},[12035,12111,12118,12180,12197,12215,12231,12283,12299,12315,12326,12333],{"type":47,"tag":321,"props":12036,"children":12037},{"class":323,"line":23},[12038,12042,12046,12051,12055,12060,12064,12069,12073,12078,12082,12086,12090,12094,12098,12103,12107],{"type":47,"tag":321,"props":12039,"children":12040},{"style":468},[12041],{"type":53,"value":471},{"type":47,"tag":321,"props":12043,"children":12044},{"style":349},[12045],{"type":53,"value":476},{"type":47,"tag":321,"props":12047,"children":12048},{"style":433},[12049],{"type":53,"value":12050}," Body",{"type":47,"tag":321,"props":12052,"children":12053},{"style":349},[12054],{"type":53,"value":643},{"type":47,"tag":321,"props":12056,"children":12057},{"style":433},[12058],{"type":53,"value":12059}," Container",{"type":47,"tag":321,"props":12061,"children":12062},{"style":349},[12063],{"type":53,"value":643},{"type":47,"tag":321,"props":12065,"children":12066},{"style":433},[12067],{"type":53,"value":12068}," Head",{"type":47,"tag":321,"props":12070,"children":12071},{"style":349},[12072],{"type":53,"value":643},{"type":47,"tag":321,"props":12074,"children":12075},{"style":433},[12076],{"type":53,"value":12077}," Html",{"type":47,"tag":321,"props":12079,"children":12080},{"style":349},[12081],{"type":53,"value":643},{"type":47,"tag":321,"props":12083,"children":12084},{"style":433},[12085],{"type":53,"value":2394},{"type":47,"tag":321,"props":12087,"children":12088},{"style":349},[12089],{"type":53,"value":486},{"type":47,"tag":321,"props":12091,"children":12092},{"style":468},[12093],{"type":53,"value":491},{"type":47,"tag":321,"props":12095,"children":12096},{"style":349},[12097],{"type":53,"value":496},{"type":47,"tag":321,"props":12099,"children":12100},{"style":333},[12101],{"type":53,"value":12102},"@react-email\u002Fcomponents",{"type":47,"tag":321,"props":12104,"children":12105},{"style":349},[12106],{"type":53,"value":505},{"type":47,"tag":321,"props":12108,"children":12109},{"style":349},[12110],{"type":53,"value":510},{"type":47,"tag":321,"props":12112,"children":12113},{"class":323,"line":27},[12114],{"type":47,"tag":321,"props":12115,"children":12116},{"emptyLinePlaceholder":41},[12117],{"type":53,"value":560},{"type":47,"tag":321,"props":12119,"children":12120},{"class":323,"line":554},[12121,12125,12129,12134,12138,12142,12146,12151,12155,12159,12163,12167,12171,12175],{"type":47,"tag":321,"props":12122,"children":12123},{"style":468},[12124],{"type":53,"value":569},{"type":47,"tag":321,"props":12126,"children":12127},{"style":572},[12128],{"type":53,"value":575},{"type":47,"tag":321,"props":12130,"children":12131},{"style":433},[12132],{"type":53,"value":12133}," WelcomeEmail ",{"type":47,"tag":321,"props":12135,"children":12136},{"style":349},[12137],{"type":53,"value":585},{"type":47,"tag":321,"props":12139,"children":12140},{"style":349},[12141],{"type":53,"value":632},{"type":47,"tag":321,"props":12143,"children":12144},{"style":635},[12145],{"type":53,"value":2409},{"type":47,"tag":321,"props":12147,"children":12148},{"style":349},[12149],{"type":53,"value":12150}," }:",{"type":47,"tag":321,"props":12152,"children":12153},{"style":349},[12154],{"type":53,"value":476},{"type":47,"tag":321,"props":12156,"children":12157},{"style":697},[12158],{"type":53,"value":2409},{"type":47,"tag":321,"props":12160,"children":12161},{"style":349},[12162],{"type":53,"value":772},{"type":47,"tag":321,"props":12164,"children":12165},{"style":327},[12166],{"type":53,"value":7540},{"type":47,"tag":321,"props":12168,"children":12169},{"style":349},[12170],{"type":53,"value":662},{"type":47,"tag":321,"props":12172,"children":12173},{"style":572},[12174],{"type":53,"value":667},{"type":47,"tag":321,"props":12176,"children":12177},{"style":433},[12178],{"type":53,"value":12179}," (\n",{"type":47,"tag":321,"props":12181,"children":12182},{"class":323,"line":563},[12183,12188,12193],{"type":47,"tag":321,"props":12184,"children":12185},{"style":349},[12186],{"type":53,"value":12187},"  \u003C",{"type":47,"tag":321,"props":12189,"children":12190},{"style":327},[12191],{"type":53,"value":12192},"Html",{"type":47,"tag":321,"props":12194,"children":12195},{"style":349},[12196],{"type":53,"value":362},{"type":47,"tag":321,"props":12198,"children":12199},{"class":323,"line":598},[12200,12205,12210],{"type":47,"tag":321,"props":12201,"children":12202},{"style":349},[12203],{"type":53,"value":12204},"    \u003C",{"type":47,"tag":321,"props":12206,"children":12207},{"style":327},[12208],{"type":53,"value":12209},"Head",{"type":47,"tag":321,"props":12211,"children":12212},{"style":349},[12213],{"type":53,"value":12214}," \u002F>\n",{"type":47,"tag":321,"props":12216,"children":12217},{"class":323,"line":621},[12218,12222,12227],{"type":47,"tag":321,"props":12219,"children":12220},{"style":349},[12221],{"type":53,"value":12204},{"type":47,"tag":321,"props":12223,"children":12224},{"style":327},[12225],{"type":53,"value":12226},"Body",{"type":47,"tag":321,"props":12228,"children":12229},{"style":349},[12230],{"type":53,"value":362},{"type":47,"tag":321,"props":12232,"children":12233},{"class":323,"line":675},[12234,12239,12244,12248,12253,12257,12261,12265,12270,12275,12279],{"type":47,"tag":321,"props":12235,"children":12236},{"style":349},[12237],{"type":53,"value":12238},"      \u003C",{"type":47,"tag":321,"props":12240,"children":12241},{"style":327},[12242],{"type":53,"value":12243},"Container",{"type":47,"tag":321,"props":12245,"children":12246},{"style":349},[12247],{"type":53,"value":1958},{"type":47,"tag":321,"props":12249,"children":12250},{"style":433},[12251],{"type":53,"value":12252},"Hello ",{"type":47,"tag":321,"props":12254,"children":12255},{"style":349},[12256],{"type":53,"value":2418},{"type":47,"tag":321,"props":12258,"children":12259},{"style":433},[12260],{"type":53,"value":1669},{"type":47,"tag":321,"props":12262,"children":12263},{"style":349},[12264],{"type":53,"value":855},{"type":47,"tag":321,"props":12266,"children":12267},{"style":433},[12268],{"type":53,"value":12269},", welcome!",{"type":47,"tag":321,"props":12271,"children":12272},{"style":349},[12273],{"type":53,"value":12274},"\u003C\u002F",{"type":47,"tag":321,"props":12276,"children":12277},{"style":327},[12278],{"type":53,"value":12243},{"type":47,"tag":321,"props":12280,"children":12281},{"style":349},[12282],{"type":53,"value":362},{"type":47,"tag":321,"props":12284,"children":12285},{"class":323,"line":748},[12286,12291,12295],{"type":47,"tag":321,"props":12287,"children":12288},{"style":349},[12289],{"type":53,"value":12290},"    \u003C\u002F",{"type":47,"tag":321,"props":12292,"children":12293},{"style":327},[12294],{"type":53,"value":12226},{"type":47,"tag":321,"props":12296,"children":12297},{"style":349},[12298],{"type":53,"value":362},{"type":47,"tag":321,"props":12300,"children":12301},{"class":323,"line":761},[12302,12307,12311],{"type":47,"tag":321,"props":12303,"children":12304},{"style":349},[12305],{"type":53,"value":12306},"  \u003C\u002F",{"type":47,"tag":321,"props":12308,"children":12309},{"style":327},[12310],{"type":53,"value":12192},{"type":47,"tag":321,"props":12312,"children":12313},{"style":349},[12314],{"type":53,"value":362},{"type":47,"tag":321,"props":12316,"children":12317},{"class":323,"line":793},[12318,12322],{"type":47,"tag":321,"props":12319,"children":12320},{"style":433},[12321],{"type":53,"value":737},{"type":47,"tag":321,"props":12323,"children":12324},{"style":349},[12325],{"type":53,"value":510},{"type":47,"tag":321,"props":12327,"children":12328},{"class":323,"line":872},[12329],{"type":47,"tag":321,"props":12330,"children":12331},{"emptyLinePlaceholder":41},[12332],{"type":53,"value":560},{"type":47,"tag":321,"props":12334,"children":12335},{"class":323,"line":881},[12336,12340,12344,12349,12353,12357,12361,12365,12369,12373,12377,12381,12385,12389,12393,12397,12402,12406,12411,12415],{"type":47,"tag":321,"props":12337,"children":12338},{"style":468},[12339],{"type":53,"value":569},{"type":47,"tag":321,"props":12341,"children":12342},{"style":572},[12343],{"type":53,"value":575},{"type":47,"tag":321,"props":12345,"children":12346},{"style":433},[12347],{"type":53,"value":12348}," renderWelcome ",{"type":47,"tag":321,"props":12350,"children":12351},{"style":349},[12352],{"type":53,"value":585},{"type":47,"tag":321,"props":12354,"children":12355},{"style":349},[12356],{"type":53,"value":727},{"type":47,"tag":321,"props":12358,"children":12359},{"style":635},[12360],{"type":53,"value":1669},{"type":47,"tag":321,"props":12362,"children":12363},{"style":349},[12364],{"type":53,"value":772},{"type":47,"tag":321,"props":12366,"children":12367},{"style":327},[12368],{"type":53,"value":7540},{"type":47,"tag":321,"props":12370,"children":12371},{"style":349},[12372],{"type":53,"value":737},{"type":47,"tag":321,"props":12374,"children":12375},{"style":572},[12376],{"type":53,"value":667},{"type":47,"tag":321,"props":12378,"children":12379},{"style":588},[12380],{"type":53,"value":2394},{"type":47,"tag":321,"props":12382,"children":12383},{"style":433},[12384],{"type":53,"value":700},{"type":47,"tag":321,"props":12386,"children":12387},{"style":349},[12388],{"type":53,"value":352},{"type":47,"tag":321,"props":12390,"children":12391},{"style":327},[12392],{"type":53,"value":2404},{"type":47,"tag":321,"props":12394,"children":12395},{"style":572},[12396],{"type":53,"value":2409},{"type":47,"tag":321,"props":12398,"children":12399},{"style":349},[12400],{"type":53,"value":12401},"={",{"type":47,"tag":321,"props":12403,"children":12404},{"style":433},[12405],{"type":53,"value":1669},{"type":47,"tag":321,"props":12407,"children":12408},{"style":349},[12409],{"type":53,"value":12410},"} \u002F>",{"type":47,"tag":321,"props":12412,"children":12413},{"style":433},[12414],{"type":53,"value":737},{"type":47,"tag":321,"props":12416,"children":12417},{"style":349},[12418],{"type":53,"value":510},{"type":47,"tag":287,"props":12420,"children":12422},{"className":457,"code":12421,"language":19,"meta":295,"style":295},"await step.email(\"welcome\", async () => ({\n  subject: \"Welcome\",\n  body: renderWelcome(payload.userName),\n}));\n",[12423],{"type":47,"tag":62,"props":12424,"children":12425},{"__ignoreMap":295},[12426,12485,12513,12547],{"type":47,"tag":321,"props":12427,"children":12428},{"class":323,"line":23},[12429,12433,12437,12441,12445,12449,12453,12457,12461,12465,12469,12473,12477,12481],{"type":47,"tag":321,"props":12430,"children":12431},{"style":468},[12432],{"type":53,"value":1939},{"type":47,"tag":321,"props":12434,"children":12435},{"style":433},[12436],{"type":53,"value":638},{"type":47,"tag":321,"props":12438,"children":12439},{"style":349},[12440],{"type":53,"value":248},{"type":47,"tag":321,"props":12442,"children":12443},{"style":588},[12444],{"type":53,"value":694},{"type":47,"tag":321,"props":12446,"children":12447},{"style":433},[12448],{"type":53,"value":700},{"type":47,"tag":321,"props":12450,"children":12451},{"style":349},[12452],{"type":53,"value":505},{"type":47,"tag":321,"props":12454,"children":12455},{"style":333},[12456],{"type":53,"value":2313},{"type":47,"tag":321,"props":12458,"children":12459},{"style":349},[12460],{"type":53,"value":505},{"type":47,"tag":321,"props":12462,"children":12463},{"style":349},[12464],{"type":53,"value":643},{"type":47,"tag":321,"props":12466,"children":12467},{"style":572},[12468],{"type":53,"value":722},{"type":47,"tag":321,"props":12470,"children":12471},{"style":349},[12472],{"type":53,"value":2581},{"type":47,"tag":321,"props":12474,"children":12475},{"style":572},[12476],{"type":53,"value":667},{"type":47,"tag":321,"props":12478,"children":12479},{"style":433},[12480],{"type":53,"value":727},{"type":47,"tag":321,"props":12482,"children":12483},{"style":349},[12484],{"type":53,"value":926},{"type":47,"tag":321,"props":12486,"children":12487},{"class":323,"line":27},[12488,12492,12496,12500,12505,12509],{"type":47,"tag":321,"props":12489,"children":12490},{"style":697},[12491],{"type":53,"value":2357},{"type":47,"tag":321,"props":12493,"children":12494},{"style":349},[12495],{"type":53,"value":772},{"type":47,"tag":321,"props":12497,"children":12498},{"style":349},[12499],{"type":53,"value":496},{"type":47,"tag":321,"props":12501,"children":12502},{"style":333},[12503],{"type":53,"value":12504},"Welcome",{"type":47,"tag":321,"props":12506,"children":12507},{"style":349},[12508],{"type":53,"value":505},{"type":47,"tag":321,"props":12510,"children":12511},{"style":349},[12512],{"type":53,"value":618},{"type":47,"tag":321,"props":12514,"children":12515},{"class":323,"line":554},[12516,12520,12524,12529,12534,12538,12543],{"type":47,"tag":321,"props":12517,"children":12518},{"style":697},[12519],{"type":53,"value":2385},{"type":47,"tag":321,"props":12521,"children":12522},{"style":349},[12523],{"type":53,"value":772},{"type":47,"tag":321,"props":12525,"children":12526},{"style":588},[12527],{"type":53,"value":12528}," renderWelcome",{"type":47,"tag":321,"props":12530,"children":12531},{"style":433},[12532],{"type":53,"value":12533},"(payload",{"type":47,"tag":321,"props":12535,"children":12536},{"style":349},[12537],{"type":53,"value":248},{"type":47,"tag":321,"props":12539,"children":12540},{"style":433},[12541],{"type":53,"value":12542},"userName)",{"type":47,"tag":321,"props":12544,"children":12545},{"style":349},[12546],{"type":53,"value":618},{"type":47,"tag":321,"props":12548,"children":12549},{"class":323,"line":563},[12550,12554,12558],{"type":47,"tag":321,"props":12551,"children":12552},{"style":349},[12553],{"type":53,"value":855},{"type":47,"tag":321,"props":12555,"children":12556},{"style":433},[12557],{"type":53,"value":2514},{"type":47,"tag":321,"props":12559,"children":12560},{"style":349},[12561],{"type":53,"value":510},{"type":47,"tag":56,"props":12563,"children":12564},{},[12565,12567,12577],{"type":53,"value":12566},"Vue Email, Svelte Email, and Remix + React Email are also supported. See ",{"type":47,"tag":94,"props":12568,"children":12570},{"href":12569},".\u002Freferences\u002Femail-templates.md",[12571],{"type":47,"tag":62,"props":12572,"children":12574},{"className":12573},[],[12575],{"type":53,"value":12576},"references\u002Femail-templates.md",{"type":53,"value":248},{"type":47,"tag":107,"props":12579,"children":12581},{"id":12580},"translations-i18n",[12582],{"type":53,"value":12583},"Translations (i18n)",{"type":47,"tag":56,"props":12585,"children":12586},{},[12587,12589,12595],{"type":53,"value":12588},"For Framework-based workflows, translation lives in your code (not in the Novu Translation system, which targets Dashboard workflows). Use any i18n library (e.g. i18next) and resolve content from ",{"type":47,"tag":62,"props":12590,"children":12592},{"className":12591},[],[12593],{"type":53,"value":12594},"subscriber.locale",{"type":53,"value":12596}," inside the resolver.",{"type":47,"tag":287,"props":12598,"children":12600},{"className":457,"code":12599,"language":19,"meta":295,"style":295},"import { workflow } from \"@novu\u002Fframework\";\nimport i18n from \".\u002Fi18n\";\n\nexport const localizedWorkflow = workflow(\n  \"welcome-localized\",\n  async ({ step, subscriber }) => {\n    await step.email(\"email\", async (controls) => {\n      const t = i18n.getFixedT([subscriber.locale ?? controls.defaultLocale]);\n      return {\n        subject: t(\"welcomeEmailSubject\", { username: subscriber.firstName }),\n        body: render(\u003CWelcome subject={t(\"subject\")} body={t(\"body\")} \u002F>),\n      };\n    }, {\n      controlSchema: z.object({\n        defaultLocale: z.string().default(\"en_US\"),\n      }),\n    });\n  },\n);\n",[12601],{"type":47,"tag":62,"props":12602,"children":12603},{"__ignoreMap":295},[12604,12643,12676,12683,12711,12731,12766,12829,12904,12915,12988,13095,13102,13113,13144,13205,13220,13235,13242],{"type":47,"tag":321,"props":12605,"children":12606},{"class":323,"line":23},[12607,12611,12615,12619,12623,12627,12631,12635,12639],{"type":47,"tag":321,"props":12608,"children":12609},{"style":468},[12610],{"type":53,"value":471},{"type":47,"tag":321,"props":12612,"children":12613},{"style":349},[12614],{"type":53,"value":476},{"type":47,"tag":321,"props":12616,"children":12617},{"style":433},[12618],{"type":53,"value":481},{"type":47,"tag":321,"props":12620,"children":12621},{"style":349},[12622],{"type":53,"value":486},{"type":47,"tag":321,"props":12624,"children":12625},{"style":468},[12626],{"type":53,"value":491},{"type":47,"tag":321,"props":12628,"children":12629},{"style":349},[12630],{"type":53,"value":496},{"type":47,"tag":321,"props":12632,"children":12633},{"style":333},[12634],{"type":53,"value":67},{"type":47,"tag":321,"props":12636,"children":12637},{"style":349},[12638],{"type":53,"value":505},{"type":47,"tag":321,"props":12640,"children":12641},{"style":349},[12642],{"type":53,"value":510},{"type":47,"tag":321,"props":12644,"children":12645},{"class":323,"line":27},[12646,12650,12655,12659,12663,12668,12672],{"type":47,"tag":321,"props":12647,"children":12648},{"style":468},[12649],{"type":53,"value":471},{"type":47,"tag":321,"props":12651,"children":12652},{"style":433},[12653],{"type":53,"value":12654}," i18n ",{"type":47,"tag":321,"props":12656,"children":12657},{"style":468},[12658],{"type":53,"value":2065},{"type":47,"tag":321,"props":12660,"children":12661},{"style":349},[12662],{"type":53,"value":496},{"type":47,"tag":321,"props":12664,"children":12665},{"style":333},[12666],{"type":53,"value":12667},".\u002Fi18n",{"type":47,"tag":321,"props":12669,"children":12670},{"style":349},[12671],{"type":53,"value":505},{"type":47,"tag":321,"props":12673,"children":12674},{"style":349},[12675],{"type":53,"value":510},{"type":47,"tag":321,"props":12677,"children":12678},{"class":323,"line":554},[12679],{"type":47,"tag":321,"props":12680,"children":12681},{"emptyLinePlaceholder":41},[12682],{"type":53,"value":560},{"type":47,"tag":321,"props":12684,"children":12685},{"class":323,"line":563},[12686,12690,12694,12699,12703,12707],{"type":47,"tag":321,"props":12687,"children":12688},{"style":468},[12689],{"type":53,"value":569},{"type":47,"tag":321,"props":12691,"children":12692},{"style":572},[12693],{"type":53,"value":575},{"type":47,"tag":321,"props":12695,"children":12696},{"style":433},[12697],{"type":53,"value":12698}," localizedWorkflow ",{"type":47,"tag":321,"props":12700,"children":12701},{"style":349},[12702],{"type":53,"value":585},{"type":47,"tag":321,"props":12704,"children":12705},{"style":588},[12706],{"type":53,"value":481},{"type":47,"tag":321,"props":12708,"children":12709},{"style":433},[12710],{"type":53,"value":595},{"type":47,"tag":321,"props":12712,"children":12713},{"class":323,"line":598},[12714,12718,12723,12727],{"type":47,"tag":321,"props":12715,"children":12716},{"style":349},[12717],{"type":53,"value":604},{"type":47,"tag":321,"props":12719,"children":12720},{"style":333},[12721],{"type":53,"value":12722},"welcome-localized",{"type":47,"tag":321,"props":12724,"children":12725},{"style":349},[12726],{"type":53,"value":505},{"type":47,"tag":321,"props":12728,"children":12729},{"style":349},[12730],{"type":53,"value":618},{"type":47,"tag":321,"props":12732,"children":12733},{"class":323,"line":621},[12734,12738,12742,12746,12750,12754,12758,12762],{"type":47,"tag":321,"props":12735,"children":12736},{"style":572},[12737],{"type":53,"value":627},{"type":47,"tag":321,"props":12739,"children":12740},{"style":349},[12741],{"type":53,"value":632},{"type":47,"tag":321,"props":12743,"children":12744},{"style":635},[12745],{"type":53,"value":638},{"type":47,"tag":321,"props":12747,"children":12748},{"style":349},[12749],{"type":53,"value":643},{"type":47,"tag":321,"props":12751,"children":12752},{"style":635},[12753],{"type":53,"value":657},{"type":47,"tag":321,"props":12755,"children":12756},{"style":349},[12757],{"type":53,"value":662},{"type":47,"tag":321,"props":12759,"children":12760},{"style":572},[12761],{"type":53,"value":667},{"type":47,"tag":321,"props":12763,"children":12764},{"style":349},[12765],{"type":53,"value":672},{"type":47,"tag":321,"props":12767,"children":12768},{"class":323,"line":675},[12769,12773,12777,12781,12785,12789,12793,12797,12801,12805,12809,12813,12817,12821,12825],{"type":47,"tag":321,"props":12770,"children":12771},{"style":468},[12772],{"type":53,"value":681},{"type":47,"tag":321,"props":12774,"children":12775},{"style":433},[12776],{"type":53,"value":638},{"type":47,"tag":321,"props":12778,"children":12779},{"style":349},[12780],{"type":53,"value":248},{"type":47,"tag":321,"props":12782,"children":12783},{"style":588},[12784],{"type":53,"value":694},{"type":47,"tag":321,"props":12786,"children":12787},{"style":697},[12788],{"type":53,"value":700},{"type":47,"tag":321,"props":12790,"children":12791},{"style":349},[12792],{"type":53,"value":505},{"type":47,"tag":321,"props":12794,"children":12795},{"style":333},[12796],{"type":53,"value":694},{"type":47,"tag":321,"props":12798,"children":12799},{"style":349},[12800],{"type":53,"value":505},{"type":47,"tag":321,"props":12802,"children":12803},{"style":349},[12804],{"type":53,"value":643},{"type":47,"tag":321,"props":12806,"children":12807},{"style":572},[12808],{"type":53,"value":722},{"type":47,"tag":321,"props":12810,"children":12811},{"style":349},[12812],{"type":53,"value":727},{"type":47,"tag":321,"props":12814,"children":12815},{"style":635},[12816],{"type":53,"value":732},{"type":47,"tag":321,"props":12818,"children":12819},{"style":349},[12820],{"type":53,"value":737},{"type":47,"tag":321,"props":12822,"children":12823},{"style":572},[12824],{"type":53,"value":667},{"type":47,"tag":321,"props":12826,"children":12827},{"style":349},[12828],{"type":53,"value":672},{"type":47,"tag":321,"props":12830,"children":12831},{"class":323,"line":748},[12832,12837,12841,12845,12850,12854,12859,12864,12868,12872,12877,12882,12886,12890,12895,12900],{"type":47,"tag":321,"props":12833,"children":12834},{"style":572},[12835],{"type":53,"value":12836},"      const",{"type":47,"tag":321,"props":12838,"children":12839},{"style":433},[12840],{"type":53,"value":5185},{"type":47,"tag":321,"props":12842,"children":12843},{"style":349},[12844],{"type":53,"value":3682},{"type":47,"tag":321,"props":12846,"children":12847},{"style":433},[12848],{"type":53,"value":12849}," i18n",{"type":47,"tag":321,"props":12851,"children":12852},{"style":349},[12853],{"type":53,"value":248},{"type":47,"tag":321,"props":12855,"children":12856},{"style":588},[12857],{"type":53,"value":12858},"getFixedT",{"type":47,"tag":321,"props":12860,"children":12861},{"style":697},[12862],{"type":53,"value":12863},"([",{"type":47,"tag":321,"props":12865,"children":12866},{"style":433},[12867],{"type":53,"value":823},{"type":47,"tag":321,"props":12869,"children":12870},{"style":349},[12871],{"type":53,"value":248},{"type":47,"tag":321,"props":12873,"children":12874},{"style":433},[12875],{"type":53,"value":12876},"locale",{"type":47,"tag":321,"props":12878,"children":12879},{"style":349},[12880],{"type":53,"value":12881}," ??",{"type":47,"tag":321,"props":12883,"children":12884},{"style":433},[12885],{"type":53,"value":777},{"type":47,"tag":321,"props":12887,"children":12888},{"style":349},[12889],{"type":53,"value":248},{"type":47,"tag":321,"props":12891,"children":12892},{"style":433},[12893],{"type":53,"value":12894},"defaultLocale",{"type":47,"tag":321,"props":12896,"children":12897},{"style":697},[12898],{"type":53,"value":12899},"])",{"type":47,"tag":321,"props":12901,"children":12902},{"style":349},[12903],{"type":53,"value":510},{"type":47,"tag":321,"props":12905,"children":12906},{"class":323,"line":761},[12907,12911],{"type":47,"tag":321,"props":12908,"children":12909},{"style":468},[12910],{"type":53,"value":754},{"type":47,"tag":321,"props":12912,"children":12913},{"style":349},[12914],{"type":53,"value":672},{"type":47,"tag":321,"props":12916,"children":12917},{"class":323,"line":793},[12918,12922,12926,12930,12934,12938,12943,12947,12951,12955,12960,12964,12968,12972,12976,12980,12984],{"type":47,"tag":321,"props":12919,"children":12920},{"style":697},[12921],{"type":53,"value":767},{"type":47,"tag":321,"props":12923,"children":12924},{"style":349},[12925],{"type":53,"value":772},{"type":47,"tag":321,"props":12927,"children":12928},{"style":588},[12929],{"type":53,"value":5185},{"type":47,"tag":321,"props":12931,"children":12932},{"style":697},[12933],{"type":53,"value":700},{"type":47,"tag":321,"props":12935,"children":12936},{"style":349},[12937],{"type":53,"value":505},{"type":47,"tag":321,"props":12939,"children":12940},{"style":333},[12941],{"type":53,"value":12942},"welcomeEmailSubject",{"type":47,"tag":321,"props":12944,"children":12945},{"style":349},[12946],{"type":53,"value":505},{"type":47,"tag":321,"props":12948,"children":12949},{"style":349},[12950],{"type":53,"value":643},{"type":47,"tag":321,"props":12952,"children":12953},{"style":349},[12954],{"type":53,"value":476},{"type":47,"tag":321,"props":12956,"children":12957},{"style":697},[12958],{"type":53,"value":12959}," username",{"type":47,"tag":321,"props":12961,"children":12962},{"style":349},[12963],{"type":53,"value":772},{"type":47,"tag":321,"props":12965,"children":12966},{"style":433},[12967],{"type":53,"value":657},{"type":47,"tag":321,"props":12969,"children":12970},{"style":349},[12971],{"type":53,"value":248},{"type":47,"tag":321,"props":12973,"children":12974},{"style":433},[12975],{"type":53,"value":2431},{"type":47,"tag":321,"props":12977,"children":12978},{"style":349},[12979],{"type":53,"value":486},{"type":47,"tag":321,"props":12981,"children":12982},{"style":697},[12983],{"type":53,"value":737},{"type":47,"tag":321,"props":12985,"children":12986},{"style":349},[12987],{"type":53,"value":618},{"type":47,"tag":321,"props":12989,"children":12990},{"class":323,"line":872},[12991,12995,12999,13003,13007,13011,13016,13020,13024,13029,13033,13037,13041,13045,13050,13055,13059,13063,13067,13071,13075,13079,13083,13087,13091],{"type":47,"tag":321,"props":12992,"children":12993},{"style":697},[12994],{"type":53,"value":799},{"type":47,"tag":321,"props":12996,"children":12997},{"style":349},[12998],{"type":53,"value":772},{"type":47,"tag":321,"props":13000,"children":13001},{"style":588},[13002],{"type":53,"value":2394},{"type":47,"tag":321,"props":13004,"children":13005},{"style":697},[13006],{"type":53,"value":2399},{"type":47,"tag":321,"props":13008,"children":13009},{"style":327},[13010],{"type":53,"value":12504},{"type":47,"tag":321,"props":13012,"children":13013},{"style":327},[13014],{"type":53,"value":13015}," subject",{"type":47,"tag":321,"props":13017,"children":13018},{"style":697},[13019],{"type":53,"value":585},{"type":47,"tag":321,"props":13021,"children":13022},{"style":349},[13023],{"type":53,"value":2418},{"type":47,"tag":321,"props":13025,"children":13026},{"style":697},[13027],{"type":53,"value":13028},"t",{"type":47,"tag":321,"props":13030,"children":13031},{"style":349},[13032],{"type":53,"value":700},{"type":47,"tag":321,"props":13034,"children":13035},{"style":349},[13036],{"type":53,"value":505},{"type":47,"tag":321,"props":13038,"children":13039},{"style":333},[13040],{"type":53,"value":786},{"type":47,"tag":321,"props":13042,"children":13043},{"style":349},[13044],{"type":53,"value":505},{"type":47,"tag":321,"props":13046,"children":13047},{"style":349},[13048],{"type":53,"value":13049},")}",{"type":47,"tag":321,"props":13051,"children":13052},{"style":327},[13053],{"type":53,"value":13054}," body",{"type":47,"tag":321,"props":13056,"children":13057},{"style":697},[13058],{"type":53,"value":585},{"type":47,"tag":321,"props":13060,"children":13061},{"style":349},[13062],{"type":53,"value":2418},{"type":47,"tag":321,"props":13064,"children":13065},{"style":697},[13066],{"type":53,"value":13028},{"type":47,"tag":321,"props":13068,"children":13069},{"style":349},[13070],{"type":53,"value":700},{"type":47,"tag":321,"props":13072,"children":13073},{"style":349},[13074],{"type":53,"value":505},{"type":47,"tag":321,"props":13076,"children":13077},{"style":333},[13078],{"type":53,"value":2049},{"type":47,"tag":321,"props":13080,"children":13081},{"style":349},[13082],{"type":53,"value":505},{"type":47,"tag":321,"props":13084,"children":13085},{"style":349},[13086],{"type":53,"value":13049},{"type":47,"tag":321,"props":13088,"children":13089},{"style":697},[13090],{"type":53,"value":2440},{"type":47,"tag":321,"props":13092,"children":13093},{"style":349},[13094],{"type":53,"value":618},{"type":47,"tag":321,"props":13096,"children":13097},{"class":323,"line":881},[13098],{"type":47,"tag":321,"props":13099,"children":13100},{"style":349},[13101],{"type":53,"value":878},{"type":47,"tag":321,"props":13103,"children":13104},{"class":323,"line":894},[13105,13109],{"type":47,"tag":321,"props":13106,"children":13107},{"style":349},[13108],{"type":53,"value":887},{"type":47,"tag":321,"props":13110,"children":13111},{"style":349},[13112],{"type":53,"value":672},{"type":47,"tag":321,"props":13114,"children":13115},{"class":323,"line":929},[13116,13120,13124,13128,13132,13136,13140],{"type":47,"tag":321,"props":13117,"children":13118},{"style":697},[13119],{"type":53,"value":900},{"type":47,"tag":321,"props":13121,"children":13122},{"style":349},[13123],{"type":53,"value":772},{"type":47,"tag":321,"props":13125,"children":13126},{"style":433},[13127],{"type":53,"value":526},{"type":47,"tag":321,"props":13129,"children":13130},{"style":349},[13131],{"type":53,"value":248},{"type":47,"tag":321,"props":13133,"children":13134},{"style":588},[13135],{"type":53,"value":917},{"type":47,"tag":321,"props":13137,"children":13138},{"style":697},[13139],{"type":53,"value":700},{"type":47,"tag":321,"props":13141,"children":13142},{"style":349},[13143],{"type":53,"value":926},{"type":47,"tag":321,"props":13145,"children":13146},{"class":323,"line":993},[13147,13152,13156,13160,13164,13168,13172,13176,13180,13184,13188,13193,13197,13201],{"type":47,"tag":321,"props":13148,"children":13149},{"style":697},[13150],{"type":53,"value":13151},"        defaultLocale",{"type":47,"tag":321,"props":13153,"children":13154},{"style":349},[13155],{"type":53,"value":772},{"type":47,"tag":321,"props":13157,"children":13158},{"style":433},[13159],{"type":53,"value":526},{"type":47,"tag":321,"props":13161,"children":13162},{"style":349},[13163],{"type":53,"value":248},{"type":47,"tag":321,"props":13165,"children":13166},{"style":588},[13167],{"type":53,"value":951},{"type":47,"tag":321,"props":13169,"children":13170},{"style":697},[13171],{"type":53,"value":956},{"type":47,"tag":321,"props":13173,"children":13174},{"style":349},[13175],{"type":53,"value":248},{"type":47,"tag":321,"props":13177,"children":13178},{"style":588},[13179],{"type":53,"value":965},{"type":47,"tag":321,"props":13181,"children":13182},{"style":697},[13183],{"type":53,"value":700},{"type":47,"tag":321,"props":13185,"children":13186},{"style":349},[13187],{"type":53,"value":505},{"type":47,"tag":321,"props":13189,"children":13190},{"style":333},[13191],{"type":53,"value":13192},"en_US",{"type":47,"tag":321,"props":13194,"children":13195},{"style":349},[13196],{"type":53,"value":505},{"type":47,"tag":321,"props":13198,"children":13199},{"style":697},[13200],{"type":53,"value":737},{"type":47,"tag":321,"props":13202,"children":13203},{"style":349},[13204],{"type":53,"value":618},{"type":47,"tag":321,"props":13206,"children":13207},{"class":323,"line":1010},[13208,13212,13216],{"type":47,"tag":321,"props":13209,"children":13210},{"style":349},[13211],{"type":53,"value":999},{"type":47,"tag":321,"props":13213,"children":13214},{"style":697},[13215],{"type":53,"value":737},{"type":47,"tag":321,"props":13217,"children":13218},{"style":349},[13219],{"type":53,"value":618},{"type":47,"tag":321,"props":13221,"children":13222},{"class":323,"line":1027},[13223,13227,13231],{"type":47,"tag":321,"props":13224,"children":13225},{"style":349},[13226],{"type":53,"value":1016},{"type":47,"tag":321,"props":13228,"children":13229},{"style":697},[13230],{"type":53,"value":737},{"type":47,"tag":321,"props":13232,"children":13233},{"style":349},[13234],{"type":53,"value":510},{"type":47,"tag":321,"props":13236,"children":13237},{"class":323,"line":1036},[13238],{"type":47,"tag":321,"props":13239,"children":13240},{"style":349},[13241],{"type":53,"value":1033},{"type":47,"tag":321,"props":13243,"children":13244},{"class":323,"line":1045},[13245,13249],{"type":47,"tag":321,"props":13246,"children":13247},{"style":433},[13248],{"type":53,"value":737},{"type":47,"tag":321,"props":13250,"children":13251},{"style":349},[13252],{"type":53,"value":510},{"type":47,"tag":56,"props":13254,"children":13255},{},[13256,13257,13267],{"type":53,"value":10958},{"type":47,"tag":94,"props":13258,"children":13260},{"href":13259},".\u002Freferences\u002Ftranslations.md",[13261],{"type":47,"tag":62,"props":13262,"children":13264},{"className":13263},[],[13265],{"type":53,"value":13266},"references\u002Ftranslations.md",{"type":53,"value":13268}," for a complete i18next + React Email example.",{"type":47,"tag":107,"props":13270,"children":13271},{"id":1725},[13272],{"type":53,"value":13273},"Tags",{"type":47,"tag":56,"props":13275,"children":13276},{},[13277],{"type":53,"value":13278},"Tag a workflow to group it with related notifications (used by Inbox tabs and Dashboard filtering):",{"type":47,"tag":287,"props":13280,"children":13282},{"className":457,"code":13281,"language":19,"meta":295,"style":295},"workflow(\"login-alert\", handler, { tags: [\"security\"] });\nworkflow(\"password-change\", handler, { tags: [\"security\"] });\n",[13283],{"type":47,"tag":62,"props":13284,"children":13285},{"__ignoreMap":295},[13286,13369],{"type":47,"tag":321,"props":13287,"children":13288},{"class":323,"line":23},[13289,13293,13297,13301,13306,13310,13314,13318,13322,13326,13331,13335,13339,13343,13348,13352,13357,13361,13365],{"type":47,"tag":321,"props":13290,"children":13291},{"style":588},[13292],{"type":53,"value":1462},{"type":47,"tag":321,"props":13294,"children":13295},{"style":433},[13296],{"type":53,"value":700},{"type":47,"tag":321,"props":13298,"children":13299},{"style":349},[13300],{"type":53,"value":505},{"type":47,"tag":321,"props":13302,"children":13303},{"style":333},[13304],{"type":53,"value":13305},"login-alert",{"type":47,"tag":321,"props":13307,"children":13308},{"style":349},[13309],{"type":53,"value":505},{"type":47,"tag":321,"props":13311,"children":13312},{"style":349},[13313],{"type":53,"value":643},{"type":47,"tag":321,"props":13315,"children":13316},{"style":433},[13317],{"type":53,"value":1476},{"type":47,"tag":321,"props":13319,"children":13320},{"style":349},[13321],{"type":53,"value":643},{"type":47,"tag":321,"props":13323,"children":13324},{"style":349},[13325],{"type":53,"value":476},{"type":47,"tag":321,"props":13327,"children":13328},{"style":697},[13329],{"type":53,"value":13330}," tags",{"type":47,"tag":321,"props":13332,"children":13333},{"style":349},[13334],{"type":53,"value":772},{"type":47,"tag":321,"props":13336,"children":13337},{"style":433},[13338],{"type":53,"value":1264},{"type":47,"tag":321,"props":13340,"children":13341},{"style":349},[13342],{"type":53,"value":505},{"type":47,"tag":321,"props":13344,"children":13345},{"style":333},[13346],{"type":53,"value":13347},"security",{"type":47,"tag":321,"props":13349,"children":13350},{"style":349},[13351],{"type":53,"value":505},{"type":47,"tag":321,"props":13353,"children":13354},{"style":433},[13355],{"type":53,"value":13356},"] ",{"type":47,"tag":321,"props":13358,"children":13359},{"style":349},[13360],{"type":53,"value":855},{"type":47,"tag":321,"props":13362,"children":13363},{"style":433},[13364],{"type":53,"value":737},{"type":47,"tag":321,"props":13366,"children":13367},{"style":349},[13368],{"type":53,"value":510},{"type":47,"tag":321,"props":13370,"children":13371},{"class":323,"line":27},[13372,13376,13380,13384,13389,13393,13397,13401,13405,13409,13413,13417,13421,13425,13429,13433,13437,13441,13445],{"type":47,"tag":321,"props":13373,"children":13374},{"style":588},[13375],{"type":53,"value":1462},{"type":47,"tag":321,"props":13377,"children":13378},{"style":433},[13379],{"type":53,"value":700},{"type":47,"tag":321,"props":13381,"children":13382},{"style":349},[13383],{"type":53,"value":505},{"type":47,"tag":321,"props":13385,"children":13386},{"style":333},[13387],{"type":53,"value":13388},"password-change",{"type":47,"tag":321,"props":13390,"children":13391},{"style":349},[13392],{"type":53,"value":505},{"type":47,"tag":321,"props":13394,"children":13395},{"style":349},[13396],{"type":53,"value":643},{"type":47,"tag":321,"props":13398,"children":13399},{"style":433},[13400],{"type":53,"value":1476},{"type":47,"tag":321,"props":13402,"children":13403},{"style":349},[13404],{"type":53,"value":643},{"type":47,"tag":321,"props":13406,"children":13407},{"style":349},[13408],{"type":53,"value":476},{"type":47,"tag":321,"props":13410,"children":13411},{"style":697},[13412],{"type":53,"value":13330},{"type":47,"tag":321,"props":13414,"children":13415},{"style":349},[13416],{"type":53,"value":772},{"type":47,"tag":321,"props":13418,"children":13419},{"style":433},[13420],{"type":53,"value":1264},{"type":47,"tag":321,"props":13422,"children":13423},{"style":349},[13424],{"type":53,"value":505},{"type":47,"tag":321,"props":13426,"children":13427},{"style":333},[13428],{"type":53,"value":13347},{"type":47,"tag":321,"props":13430,"children":13431},{"style":349},[13432],{"type":53,"value":505},{"type":47,"tag":321,"props":13434,"children":13435},{"style":433},[13436],{"type":53,"value":13356},{"type":47,"tag":321,"props":13438,"children":13439},{"style":349},[13440],{"type":53,"value":855},{"type":47,"tag":321,"props":13442,"children":13443},{"style":433},[13444],{"type":53,"value":737},{"type":47,"tag":321,"props":13446,"children":13447},{"style":349},[13448],{"type":53,"value":510},{"type":47,"tag":56,"props":13450,"children":13451},{},[13452,13454,13460,13462,13472],{"type":53,"value":13453},"In the Inbox, render a \"Security\" tab with ",{"type":47,"tag":62,"props":13455,"children":13457},{"className":13456},[],[13458],{"type":53,"value":13459},"tabs={[{ label: \"Security\", filter: { tags: [\"security\"] } }]}",{"type":53,"value":13461}," (see ",{"type":47,"tag":94,"props":13463,"children":13465},{"href":13464},"..\u002Finbox-integration",[13466],{"type":47,"tag":62,"props":13467,"children":13469},{"className":13468},[],[13470],{"type":53,"value":13471},"inbox-integration",{"type":53,"value":13473},").",{"type":47,"tag":107,"props":13475,"children":13477},{"id":13476},"deployment",[13478],{"type":53,"value":13479},"Deployment",{"type":47,"tag":305,"props":13481,"children":13483},{"id":13482},"sync-via-cli",[13484],{"type":53,"value":13485},"Sync via CLI",{"type":47,"tag":56,"props":13487,"children":13488},{},[13489],{"type":53,"value":13490},"Push your workflows to Novu Cloud:",{"type":47,"tag":287,"props":13492,"children":13494},{"className":313,"code":13493,"language":315,"meta":295,"style":295},"npx novu@latest sync \\\n  --bridge-url https:\u002F\u002Fapi.acme.com\u002Fapi\u002Fnovu \\\n  --secret-key $NOVU_SECRET_KEY \\\n  --api-url https:\u002F\u002Fapi.novu.co  # use https:\u002F\u002Feu.api.novu.co for EU\n",[13495],{"type":47,"tag":62,"props":13496,"children":13497},{"__ignoreMap":295},[13498,13519,13536,13549],{"type":47,"tag":321,"props":13499,"children":13500},{"class":323,"line":23},[13501,13505,13509,13514],{"type":47,"tag":321,"props":13502,"children":13503},{"style":327},[13504],{"type":53,"value":330},{"type":47,"tag":321,"props":13506,"children":13507},{"style":333},[13508],{"type":53,"value":1351},{"type":47,"tag":321,"props":13510,"children":13511},{"style":333},[13512],{"type":53,"value":13513}," sync",{"type":47,"tag":321,"props":13515,"children":13516},{"style":433},[13517],{"type":53,"value":13518}," \\\n",{"type":47,"tag":321,"props":13520,"children":13521},{"class":323,"line":27},[13522,13527,13532],{"type":47,"tag":321,"props":13523,"children":13524},{"style":333},[13525],{"type":53,"value":13526},"  --bridge-url",{"type":47,"tag":321,"props":13528,"children":13529},{"style":333},[13530],{"type":53,"value":13531}," https:\u002F\u002Fapi.acme.com\u002Fapi\u002Fnovu",{"type":47,"tag":321,"props":13533,"children":13534},{"style":433},[13535],{"type":53,"value":13518},{"type":47,"tag":321,"props":13537,"children":13538},{"class":323,"line":554},[13539,13544],{"type":47,"tag":321,"props":13540,"children":13541},{"style":333},[13542],{"type":53,"value":13543},"  --secret-key",{"type":47,"tag":321,"props":13545,"children":13546},{"style":433},[13547],{"type":53,"value":13548}," $NOVU_SECRET_KEY \\\n",{"type":47,"tag":321,"props":13550,"children":13551},{"class":323,"line":563},[13552,13557,13562],{"type":47,"tag":321,"props":13553,"children":13554},{"style":333},[13555],{"type":53,"value":13556},"  --api-url",{"type":47,"tag":321,"props":13558,"children":13559},{"style":333},[13560],{"type":53,"value":13561}," https:\u002F\u002Fapi.novu.co",{"type":47,"tag":321,"props":13563,"children":13564},{"style":3819},[13565],{"type":53,"value":13566},"  # use https:\u002F\u002Feu.api.novu.co for EU\n",{"type":47,"tag":305,"props":13568,"children":13570},{"id":13569},"github-actions",[13571],{"type":53,"value":13572},"GitHub Actions",{"type":47,"tag":287,"props":13574,"children":13578},{"className":13575,"code":13576,"language":13577,"meta":295,"style":295},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","name: Sync Novu Workflows\non:\n  push:\n    branches: [main]\n\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: novuhq\u002Factions-novu-sync@v2\n        with:\n          secret-key: ${{ secrets.NOVU_SECRET_KEY }}\n          bridge-url: ${{ secrets.NOVU_BRIDGE_URL }}\n          api-url: https:\u002F\u002Fapi.novu.co\n","yaml",[13579],{"type":47,"tag":62,"props":13580,"children":13581},{"__ignoreMap":295},[13582,13598,13611,13623,13649,13656,13668,13680,13697,13709,13731,13743,13760,13777],{"type":47,"tag":321,"props":13583,"children":13584},{"class":323,"line":23},[13585,13589,13593],{"type":47,"tag":321,"props":13586,"children":13587},{"style":697},[13588],{"type":53,"value":1669},{"type":47,"tag":321,"props":13590,"children":13591},{"style":349},[13592],{"type":53,"value":772},{"type":47,"tag":321,"props":13594,"children":13595},{"style":333},[13596],{"type":53,"value":13597}," Sync Novu Workflows\n",{"type":47,"tag":321,"props":13599,"children":13600},{"class":323,"line":27},[13601,13606],{"type":47,"tag":321,"props":13602,"children":13603},{"style":5032},[13604],{"type":53,"value":13605},"on",{"type":47,"tag":321,"props":13607,"children":13608},{"style":349},[13609],{"type":53,"value":13610},":\n",{"type":47,"tag":321,"props":13612,"children":13613},{"class":323,"line":554},[13614,13619],{"type":47,"tag":321,"props":13615,"children":13616},{"style":697},[13617],{"type":53,"value":13618},"  push",{"type":47,"tag":321,"props":13620,"children":13621},{"style":349},[13622],{"type":53,"value":13610},{"type":47,"tag":321,"props":13624,"children":13625},{"class":323,"line":563},[13626,13631,13635,13639,13644],{"type":47,"tag":321,"props":13627,"children":13628},{"style":697},[13629],{"type":53,"value":13630},"    branches",{"type":47,"tag":321,"props":13632,"children":13633},{"style":349},[13634],{"type":53,"value":772},{"type":47,"tag":321,"props":13636,"children":13637},{"style":349},[13638],{"type":53,"value":1264},{"type":47,"tag":321,"props":13640,"children":13641},{"style":333},[13642],{"type":53,"value":13643},"main",{"type":47,"tag":321,"props":13645,"children":13646},{"style":349},[13647],{"type":53,"value":13648},"]\n",{"type":47,"tag":321,"props":13650,"children":13651},{"class":323,"line":598},[13652],{"type":47,"tag":321,"props":13653,"children":13654},{"emptyLinePlaceholder":41},[13655],{"type":53,"value":560},{"type":47,"tag":321,"props":13657,"children":13658},{"class":323,"line":621},[13659,13664],{"type":47,"tag":321,"props":13660,"children":13661},{"style":697},[13662],{"type":53,"value":13663},"jobs",{"type":47,"tag":321,"props":13665,"children":13666},{"style":349},[13667],{"type":53,"value":13610},{"type":47,"tag":321,"props":13669,"children":13670},{"class":323,"line":675},[13671,13676],{"type":47,"tag":321,"props":13672,"children":13673},{"style":697},[13674],{"type":53,"value":13675},"  deploy",{"type":47,"tag":321,"props":13677,"children":13678},{"style":349},[13679],{"type":53,"value":13610},{"type":47,"tag":321,"props":13681,"children":13682},{"class":323,"line":748},[13683,13688,13692],{"type":47,"tag":321,"props":13684,"children":13685},{"style":697},[13686],{"type":53,"value":13687},"    runs-on",{"type":47,"tag":321,"props":13689,"children":13690},{"style":349},[13691],{"type":53,"value":772},{"type":47,"tag":321,"props":13693,"children":13694},{"style":333},[13695],{"type":53,"value":13696}," ubuntu-latest\n",{"type":47,"tag":321,"props":13698,"children":13699},{"class":323,"line":761},[13700,13705],{"type":47,"tag":321,"props":13701,"children":13702},{"style":697},[13703],{"type":53,"value":13704},"    steps",{"type":47,"tag":321,"props":13706,"children":13707},{"style":349},[13708],{"type":53,"value":13610},{"type":47,"tag":321,"props":13710,"children":13711},{"class":323,"line":793},[13712,13717,13722,13726],{"type":47,"tag":321,"props":13713,"children":13714},{"style":349},[13715],{"type":53,"value":13716},"      -",{"type":47,"tag":321,"props":13718,"children":13719},{"style":697},[13720],{"type":53,"value":13721}," uses",{"type":47,"tag":321,"props":13723,"children":13724},{"style":349},[13725],{"type":53,"value":772},{"type":47,"tag":321,"props":13727,"children":13728},{"style":333},[13729],{"type":53,"value":13730}," novuhq\u002Factions-novu-sync@v2\n",{"type":47,"tag":321,"props":13732,"children":13733},{"class":323,"line":872},[13734,13739],{"type":47,"tag":321,"props":13735,"children":13736},{"style":697},[13737],{"type":53,"value":13738},"        with",{"type":47,"tag":321,"props":13740,"children":13741},{"style":349},[13742],{"type":53,"value":13610},{"type":47,"tag":321,"props":13744,"children":13745},{"class":323,"line":881},[13746,13751,13755],{"type":47,"tag":321,"props":13747,"children":13748},{"style":697},[13749],{"type":53,"value":13750},"          secret-key",{"type":47,"tag":321,"props":13752,"children":13753},{"style":349},[13754],{"type":53,"value":772},{"type":47,"tag":321,"props":13756,"children":13757},{"style":333},[13758],{"type":53,"value":13759}," ${{ secrets.NOVU_SECRET_KEY }}\n",{"type":47,"tag":321,"props":13761,"children":13762},{"class":323,"line":894},[13763,13768,13772],{"type":47,"tag":321,"props":13764,"children":13765},{"style":697},[13766],{"type":53,"value":13767},"          bridge-url",{"type":47,"tag":321,"props":13769,"children":13770},{"style":349},[13771],{"type":53,"value":772},{"type":47,"tag":321,"props":13773,"children":13774},{"style":333},[13775],{"type":53,"value":13776}," ${{ secrets.NOVU_BRIDGE_URL }}\n",{"type":47,"tag":321,"props":13778,"children":13779},{"class":323,"line":929},[13780,13785,13789],{"type":47,"tag":321,"props":13781,"children":13782},{"style":697},[13783],{"type":53,"value":13784},"          api-url",{"type":47,"tag":321,"props":13786,"children":13787},{"style":349},[13788],{"type":53,"value":772},{"type":47,"tag":321,"props":13790,"children":13791},{"style":333},[13792],{"type":53,"value":13793}," https:\u002F\u002Fapi.novu.co\n",{"type":47,"tag":305,"props":13795,"children":13797},{"id":13796},"gitops-workflow",[13798],{"type":53,"value":13799},"GitOps Workflow",{"type":47,"tag":225,"props":13801,"children":13802},{},[13803,13808,13827],{"type":47,"tag":229,"props":13804,"children":13805},{},[13806],{"type":53,"value":13807},"Develop locally with the Studio against your own machine.",{"type":47,"tag":229,"props":13809,"children":13810},{},[13811,13813,13818,13820,13825],{"type":53,"value":13812},"Open a PR — CI runs ",{"type":47,"tag":62,"props":13814,"children":13816},{"className":13815},[],[13817],{"type":53,"value":278},{"type":53,"value":13819}," against the ",{"type":47,"tag":71,"props":13821,"children":13822},{},[13823],{"type":53,"value":13824},"Development",{"type":53,"value":13826}," environment to test e2e.",{"type":47,"tag":229,"props":13828,"children":13829},{},[13830,13832,13837,13839,13844,13846,13851],{"type":53,"value":13831},"Merge to ",{"type":47,"tag":62,"props":13833,"children":13835},{"className":13834},[],[13836],{"type":53,"value":13643},{"type":53,"value":13838}," — CI runs ",{"type":47,"tag":62,"props":13840,"children":13842},{"className":13841},[],[13843],{"type":53,"value":278},{"type":53,"value":13845}," against ",{"type":47,"tag":71,"props":13847,"children":13848},{},[13849],{"type":53,"value":13850},"Production",{"type":53,"value":248},{"type":47,"tag":56,"props":13853,"children":13854},{},[13855],{"type":53,"value":13856},"GitLab CI, Jenkins, CircleCI, Bitbucket, Azure DevOps, and Travis CI all work via the CLI.",{"type":47,"tag":107,"props":13858,"children":13860},{"id":13859},"production-security",[13861],{"type":53,"value":13862},"Production & Security",{"type":47,"tag":1844,"props":13864,"children":13865},{},[13866,13876,13923,13941],{"type":47,"tag":229,"props":13867,"children":13868},{},[13869,13874],{"type":47,"tag":71,"props":13870,"children":13871},{},[13872],{"type":53,"value":13873},"Bridge URL must be publicly reachable",{"type":53,"value":13875}," over HTTPS. Novu Cloud auto-scales — no IP allowlist is published.",{"type":47,"tag":229,"props":13877,"children":13878},{},[13879,13884,13886,13892,13894,13899,13901,13907,13909,13915,13917,13922],{"type":47,"tag":71,"props":13880,"children":13881},{},[13882],{"type":53,"value":13883},"HMAC verification is on by default",{"type":53,"value":13885}," when ",{"type":47,"tag":62,"props":13887,"children":13889},{"className":13888},[],[13890],{"type":53,"value":13891},"NODE_ENV !== \"development\"",{"type":53,"value":13893},". The ",{"type":47,"tag":62,"props":13895,"children":13897},{"className":13896},[],[13898],{"type":53,"value":8653},{"type":53,"value":13900}," wrapper handles this — you don't need to write any code. Each request includes a ",{"type":47,"tag":62,"props":13902,"children":13904},{"className":13903},[],[13905],{"type":53,"value":13906},"Novu-Signature",{"type":53,"value":13908}," header (",{"type":47,"tag":62,"props":13910,"children":13912},{"className":13911},[],[13913],{"type":53,"value":13914},"t=timestamp,v1=signature",{"type":53,"value":13916},") that's verified against ",{"type":47,"tag":62,"props":13918,"children":13920},{"className":13919},[],[13921],{"type":53,"value":39},{"type":53,"value":248},{"type":47,"tag":229,"props":13924,"children":13925},{},[13926,13931,13933,13939],{"type":47,"tag":71,"props":13927,"children":13928},{},[13929],{"type":53,"value":13930},"Disable HMAC for local dev",{"type":53,"value":13932}," automatically via ",{"type":47,"tag":62,"props":13934,"children":13936},{"className":13935},[],[13937],{"type":53,"value":13938},"NODE_ENV=development",{"type":53,"value":13940},". Don't disable it in production.",{"type":47,"tag":229,"props":13942,"children":13943},{},[13944,13949,13951,13958,13960,13966],{"type":47,"tag":71,"props":13945,"children":13946},{},[13947],{"type":53,"value":13948},"Vercel Preview URLs",{"type":53,"value":13950}," are protected by default — enable ",{"type":47,"tag":94,"props":13952,"children":13955},{"href":13953,"rel":13954},"https:\u002F\u002Fvercel.com\u002Fdocs\u002Fsecurity\u002Fdeployment-protection\u002Fmethods-to-bypass-deployment-protection",[8076],[13956],{"type":53,"value":13957},"Protection Bypass for Automation",{"type":53,"value":13959}," and pass the bypass token as ",{"type":47,"tag":62,"props":13961,"children":13963},{"className":13962},[],[13964],{"type":53,"value":13965},"?x-vercel-protection-bypass=\u003Ctoken>",{"type":53,"value":13967}," in your bridge URL.",{"type":47,"tag":305,"props":13969,"children":13971},{"id":13970},"custom-client",[13972],{"type":53,"value":13973},"Custom Client",{"type":47,"tag":56,"props":13975,"children":13976},{},[13977],{"type":53,"value":13978},"Override defaults globally:",{"type":47,"tag":287,"props":13980,"children":13982},{"className":457,"code":13981,"language":19,"meta":295,"style":295},"import { Client as NovuFrameworkClient } from \"@novu\u002Fframework\";\nimport { serve } from \"@novu\u002Fframework\u002Fnext\";\n\nexport const { GET, POST, OPTIONS } = serve({\n  client: new NovuFrameworkClient({\n    secretKey: process.env.NOVU_SECRET_KEY,\n    strictAuthentication: false, \u002F\u002F disables HMAC — only for local dev\n  }),\n  workflows: [\u002F* … *\u002F],\n});\n",[13983],{"type":47,"tag":62,"props":13984,"children":13985},{"__ignoreMap":295},[13986,14035,14074,14081,14136,14164,14200,14225,14240,14268],{"type":47,"tag":321,"props":13987,"children":13988},{"class":323,"line":23},[13989,13993,13997,14002,14006,14011,14015,14019,14023,14027,14031],{"type":47,"tag":321,"props":13990,"children":13991},{"style":468},[13992],{"type":53,"value":471},{"type":47,"tag":321,"props":13994,"children":13995},{"style":349},[13996],{"type":53,"value":476},{"type":47,"tag":321,"props":13998,"children":13999},{"style":433},[14000],{"type":53,"value":14001}," Client",{"type":47,"tag":321,"props":14003,"children":14004},{"style":468},[14005],{"type":53,"value":4456},{"type":47,"tag":321,"props":14007,"children":14008},{"style":433},[14009],{"type":53,"value":14010}," NovuFrameworkClient",{"type":47,"tag":321,"props":14012,"children":14013},{"style":349},[14014],{"type":53,"value":486},{"type":47,"tag":321,"props":14016,"children":14017},{"style":468},[14018],{"type":53,"value":491},{"type":47,"tag":321,"props":14020,"children":14021},{"style":349},[14022],{"type":53,"value":496},{"type":47,"tag":321,"props":14024,"children":14025},{"style":333},[14026],{"type":53,"value":67},{"type":47,"tag":321,"props":14028,"children":14029},{"style":349},[14030],{"type":53,"value":505},{"type":47,"tag":321,"props":14032,"children":14033},{"style":349},[14034],{"type":53,"value":510},{"type":47,"tag":321,"props":14036,"children":14037},{"class":323,"line":27},[14038,14042,14046,14050,14054,14058,14062,14066,14070],{"type":47,"tag":321,"props":14039,"children":14040},{"style":468},[14041],{"type":53,"value":471},{"type":47,"tag":321,"props":14043,"children":14044},{"style":349},[14045],{"type":53,"value":476},{"type":47,"tag":321,"props":14047,"children":14048},{"style":433},[14049],{"type":53,"value":8684},{"type":47,"tag":321,"props":14051,"children":14052},{"style":349},[14053],{"type":53,"value":486},{"type":47,"tag":321,"props":14055,"children":14056},{"style":468},[14057],{"type":53,"value":491},{"type":47,"tag":321,"props":14059,"children":14060},{"style":349},[14061],{"type":53,"value":496},{"type":47,"tag":321,"props":14063,"children":14064},{"style":333},[14065],{"type":53,"value":8701},{"type":47,"tag":321,"props":14067,"children":14068},{"style":349},[14069],{"type":53,"value":505},{"type":47,"tag":321,"props":14071,"children":14072},{"style":349},[14073],{"type":53,"value":510},{"type":47,"tag":321,"props":14075,"children":14076},{"class":323,"line":554},[14077],{"type":47,"tag":321,"props":14078,"children":14079},{"emptyLinePlaceholder":41},[14080],{"type":53,"value":560},{"type":47,"tag":321,"props":14082,"children":14083},{"class":323,"line":563},[14084,14088,14092,14096,14100,14104,14108,14112,14116,14120,14124,14128,14132],{"type":47,"tag":321,"props":14085,"children":14086},{"style":468},[14087],{"type":53,"value":569},{"type":47,"tag":321,"props":14089,"children":14090},{"style":572},[14091],{"type":53,"value":575},{"type":47,"tag":321,"props":14093,"children":14094},{"style":349},[14095],{"type":53,"value":476},{"type":47,"tag":321,"props":14097,"children":14098},{"style":433},[14099],{"type":53,"value":8777},{"type":47,"tag":321,"props":14101,"children":14102},{"style":349},[14103],{"type":53,"value":643},{"type":47,"tag":321,"props":14105,"children":14106},{"style":433},[14107],{"type":53,"value":8786},{"type":47,"tag":321,"props":14109,"children":14110},{"style":349},[14111],{"type":53,"value":643},{"type":47,"tag":321,"props":14113,"children":14114},{"style":433},[14115],{"type":53,"value":8795},{"type":47,"tag":321,"props":14117,"children":14118},{"style":349},[14119],{"type":53,"value":855},{"type":47,"tag":321,"props":14121,"children":14122},{"style":349},[14123],{"type":53,"value":3682},{"type":47,"tag":321,"props":14125,"children":14126},{"style":588},[14127],{"type":53,"value":8684},{"type":47,"tag":321,"props":14129,"children":14130},{"style":433},[14131],{"type":53,"value":700},{"type":47,"tag":321,"props":14133,"children":14134},{"style":349},[14135],{"type":53,"value":926},{"type":47,"tag":321,"props":14137,"children":14138},{"class":323,"line":598},[14139,14144,14148,14152,14156,14160],{"type":47,"tag":321,"props":14140,"children":14141},{"style":697},[14142],{"type":53,"value":14143},"  client",{"type":47,"tag":321,"props":14145,"children":14146},{"style":349},[14147],{"type":53,"value":772},{"type":47,"tag":321,"props":14149,"children":14150},{"style":349},[14151],{"type":53,"value":11462},{"type":47,"tag":321,"props":14153,"children":14154},{"style":588},[14155],{"type":53,"value":14010},{"type":47,"tag":321,"props":14157,"children":14158},{"style":433},[14159],{"type":53,"value":700},{"type":47,"tag":321,"props":14161,"children":14162},{"style":349},[14163],{"type":53,"value":926},{"type":47,"tag":321,"props":14165,"children":14166},{"class":323,"line":621},[14167,14172,14176,14180,14184,14188,14192,14196],{"type":47,"tag":321,"props":14168,"children":14169},{"style":697},[14170],{"type":53,"value":14171},"    secretKey",{"type":47,"tag":321,"props":14173,"children":14174},{"style":349},[14175],{"type":53,"value":772},{"type":47,"tag":321,"props":14177,"children":14178},{"style":433},[14179],{"type":53,"value":11488},{"type":47,"tag":321,"props":14181,"children":14182},{"style":349},[14183],{"type":53,"value":248},{"type":47,"tag":321,"props":14185,"children":14186},{"style":433},[14187],{"type":53,"value":11497},{"type":47,"tag":321,"props":14189,"children":14190},{"style":349},[14191],{"type":53,"value":248},{"type":47,"tag":321,"props":14193,"children":14194},{"style":433},[14195],{"type":53,"value":39},{"type":47,"tag":321,"props":14197,"children":14198},{"style":349},[14199],{"type":53,"value":618},{"type":47,"tag":321,"props":14201,"children":14202},{"class":323,"line":675},[14203,14208,14212,14216,14220],{"type":47,"tag":321,"props":14204,"children":14205},{"style":697},[14206],{"type":53,"value":14207},"    strictAuthentication",{"type":47,"tag":321,"props":14209,"children":14210},{"style":349},[14211],{"type":53,"value":772},{"type":47,"tag":321,"props":14213,"children":14214},{"style":5032},[14215],{"type":53,"value":7333},{"type":47,"tag":321,"props":14217,"children":14218},{"style":349},[14219],{"type":53,"value":643},{"type":47,"tag":321,"props":14221,"children":14222},{"style":3819},[14223],{"type":53,"value":14224}," \u002F\u002F disables HMAC — only for local dev\n",{"type":47,"tag":321,"props":14226,"children":14227},{"class":323,"line":748},[14228,14232,14236],{"type":47,"tag":321,"props":14229,"children":14230},{"style":349},[14231],{"type":53,"value":4451},{"type":47,"tag":321,"props":14233,"children":14234},{"style":433},[14235],{"type":53,"value":737},{"type":47,"tag":321,"props":14237,"children":14238},{"style":349},[14239],{"type":53,"value":618},{"type":47,"tag":321,"props":14241,"children":14242},{"class":323,"line":761},[14243,14247,14251,14255,14260,14264],{"type":47,"tag":321,"props":14244,"children":14245},{"style":697},[14246],{"type":53,"value":8823},{"type":47,"tag":321,"props":14248,"children":14249},{"style":349},[14250],{"type":53,"value":772},{"type":47,"tag":321,"props":14252,"children":14253},{"style":433},[14254],{"type":53,"value":1264},{"type":47,"tag":321,"props":14256,"children":14257},{"style":3819},[14258],{"type":53,"value":14259},"\u002F* … *\u002F",{"type":47,"tag":321,"props":14261,"children":14262},{"style":433},[14263],{"type":53,"value":1282},{"type":47,"tag":321,"props":14265,"children":14266},{"style":349},[14267],{"type":53,"value":618},{"type":47,"tag":321,"props":14269,"children":14270},{"class":323,"line":793},[14271,14275,14279],{"type":47,"tag":321,"props":14272,"children":14273},{"style":349},[14274],{"type":53,"value":855},{"type":47,"tag":321,"props":14276,"children":14277},{"style":433},[14278],{"type":53,"value":737},{"type":47,"tag":321,"props":14280,"children":14281},{"style":349},[14282],{"type":53,"value":510},{"type":47,"tag":56,"props":14284,"children":14285},{},[14286],{"type":53,"value":14287},"Environment variables read by the Client:",{"type":47,"tag":1844,"props":14289,"children":14290},{},[14291,14301],{"type":47,"tag":229,"props":14292,"children":14293},{},[14294,14299],{"type":47,"tag":62,"props":14295,"children":14297},{"className":14296},[],[14298],{"type":53,"value":39},{"type":53,"value":14300}," — your secret key",{"type":47,"tag":229,"props":14302,"children":14303},{},[14304,14310,14312,14318,14320,14326],{"type":47,"tag":62,"props":14305,"children":14307},{"className":14306},[],[14308],{"type":53,"value":14309},"NOVU_API_URL",{"type":53,"value":14311}," — defaults to ",{"type":47,"tag":62,"props":14313,"children":14315},{"className":14314},[],[14316],{"type":53,"value":14317},"https:\u002F\u002Fapi.novu.co",{"type":53,"value":14319}," (use ",{"type":47,"tag":62,"props":14321,"children":14323},{"className":14322},[],[14324],{"type":53,"value":14325},"https:\u002F\u002Feu.api.novu.co",{"type":53,"value":14327}," for EU)",{"type":47,"tag":107,"props":14329,"children":14331},{"id":14330},"common-pitfalls",[14332],{"type":53,"value":14333},"Common Pitfalls",{"type":47,"tag":225,"props":14335,"children":14336},{},[14337,14353,14376,14393,14429,14451,14461,14491,14508,14538,14564,14581,14591,14608],{"type":47,"tag":229,"props":14338,"children":14339},{},[14340,14344,14345,14351],{"type":47,"tag":71,"props":14341,"children":14342},{},[14343],{"type":53,"value":13873},{"type":53,"value":1905},{"type":47,"tag":62,"props":14346,"children":14348},{"className":14347},[],[14349],{"type":53,"value":14350},"localhost",{"type":53,"value":14352}," won't work for Novu Cloud. Use the Studio tunnel locally; deploy publicly for production.",{"type":47,"tag":229,"props":14354,"children":14355},{},[14356,14366,14368,14374],{"type":47,"tag":71,"props":14357,"children":14358},{},[14359,14364],{"type":47,"tag":62,"props":14360,"children":14362},{"className":14361},[],[14363],{"type":53,"value":1528},{"type":53,"value":14365}," is the trigger identifier",{"type":53,"value":14367}," — same id you'll pass to ",{"type":47,"tag":62,"props":14369,"children":14371},{"className":14370},[],[14372],{"type":53,"value":14373},"novu.trigger({ workflowId })",{"type":53,"value":14375},". Use kebab-case and keep it stable.",{"type":47,"tag":229,"props":14377,"children":14378},{},[14379,14391],{"type":47,"tag":71,"props":14380,"children":14381},{},[14382,14384,14389],{"type":53,"value":14383},"Step ",{"type":47,"tag":62,"props":14385,"children":14387},{"className":14386},[],[14388],{"type":53,"value":3395},{"type":53,"value":14390},"s must be unique within a workflow",{"type":53,"value":14392}," — duplicates throw at registration.",{"type":47,"tag":229,"props":14394,"children":14395},{},[14396,14406,14408,14413,14415,14420,14422,14428],{"type":47,"tag":71,"props":14397,"children":14398},{},[14399,14404],{"type":47,"tag":62,"props":14400,"children":14402},{"className":14401},[],[14403],{"type":53,"value":7385},{"type":53,"value":14405}," on JSON Schema",{"type":53,"value":14407}," — without it, TS infers ",{"type":47,"tag":62,"props":14409,"children":14411},{"className":14410},[],[14412],{"type":53,"value":951},{"type":53,"value":14414}," instead of literal types and ",{"type":47,"tag":62,"props":14416,"children":14418},{"className":14417},[],[14419],{"type":53,"value":1657},{"type":53,"value":14421}," becomes ",{"type":47,"tag":62,"props":14423,"children":14425},{"className":14424},[],[14426],{"type":53,"value":14427},"unknown",{"type":53,"value":248},{"type":47,"tag":229,"props":14430,"children":14431},{},[14432,14443,14444,14449],{"type":47,"tag":71,"props":14433,"children":14434},{},[14435,14437,14442],{"type":53,"value":14436},"Only one ",{"type":47,"tag":62,"props":14438,"children":14440},{"className":14439},[],[14441],{"type":53,"value":1878},{"type":53,"value":8224},{"type":53,"value":4061},{"type":47,"tag":62,"props":14445,"children":14447},{"className":14446},[],[14448],{"type":53,"value":4067},{"type":53,"value":14450}," for two-stage digest patterns.",{"type":47,"tag":229,"props":14452,"children":14453},{},[14454,14459],{"type":47,"tag":71,"props":14455,"children":14456},{},[14457],{"type":53,"value":14458},"Digest \u002F delay results from one trigger don't influence other triggers",{"type":53,"value":14460}," — they're per workflow run.",{"type":47,"tag":229,"props":14462,"children":14463},{},[14464,14469,14471,14476,14477,14482,14484,14489],{"type":47,"tag":71,"props":14465,"children":14466},{},[14467],{"type":53,"value":14468},"Custom step results aren't usable in step controls",{"type":53,"value":14470}," — only in subsequent step ",{"type":47,"tag":62,"props":14472,"children":14474},{"className":14473},[],[14475],{"type":53,"value":5833},{"type":53,"value":1865},{"type":47,"tag":62,"props":14478,"children":14480},{"className":14479},[],[14481],{"type":53,"value":5840},{"type":53,"value":14483},", or ",{"type":47,"tag":62,"props":14485,"children":14487},{"className":14486},[],[14488],{"type":53,"value":2973},{"type":53,"value":14490}," callbacks.",{"type":47,"tag":229,"props":14492,"children":14493},{},[14494,14499,14501,14506],{"type":47,"tag":71,"props":14495,"children":14496},{},[14497],{"type":53,"value":14498},"Sync after every workflow change",{"type":53,"value":14500}," — Novu Cloud needs to know about new\u002Frenamed workflows and updated control schemas. Add ",{"type":47,"tag":62,"props":14502,"children":14504},{"className":14503},[],[14505],{"type":53,"value":278},{"type":53,"value":14507}," to your CI\u002FCD.",{"type":47,"tag":229,"props":14509,"children":14510},{},[14511,14521,14523,14529,14531,14537],{"type":47,"tag":71,"props":14512,"children":14513},{},[14514,14516],{"type":53,"value":14515},"HMAC fails locally if ",{"type":47,"tag":62,"props":14517,"children":14519},{"className":14518},[],[14520],{"type":53,"value":13891},{"type":53,"value":14522}," — set it to ",{"type":47,"tag":62,"props":14524,"children":14526},{"className":14525},[],[14527],{"type":53,"value":14528},"development",{"type":53,"value":14530}," for the Studio to reach your bridge, or disable strict auth in your ",{"type":47,"tag":62,"props":14532,"children":14534},{"className":14533},[],[14535],{"type":53,"value":14536},"Client",{"type":53,"value":248},{"type":47,"tag":229,"props":14539,"children":14540},{},[14541,14554,14556,14562],{"type":47,"tag":71,"props":14542,"children":14543},{},[14544,14546,14552],{"type":53,"value":14545},"Don't store the ",{"type":47,"tag":62,"props":14547,"children":14549},{"className":14548},[],[14550],{"type":53,"value":14551},"secretKey",{"type":53,"value":14553}," in the client bundle",{"type":53,"value":14555}," — it's server-only. Keep workflows + bridge route inside server code, not in any ",{"type":47,"tag":62,"props":14557,"children":14559},{"className":14558},[],[14560],{"type":53,"value":14561},"\"use client\"",{"type":53,"value":14563}," module.",{"type":47,"tag":229,"props":14565,"children":14566},{},[14567,14579],{"type":47,"tag":71,"props":14568,"children":14569},{},[14570,14572,14577],{"type":53,"value":14571},"Provider override ",{"type":47,"tag":62,"props":14573,"children":14575},{"className":14574},[],[14576],{"type":53,"value":6493},{"type":53,"value":14578}," is unvalidated",{"type":53,"value":14580}," — typos won't error at compile time. Use known typed provider keys whenever possible.",{"type":47,"tag":229,"props":14582,"children":14583},{},[14584,14589],{"type":47,"tag":71,"props":14585,"children":14586},{},[14587],{"type":53,"value":14588},"Changing a delay\u002Fdigest step's content does not affect already-scheduled events",{"type":53,"value":14590}," — content is captured at the time of the original trigger.",{"type":47,"tag":229,"props":14592,"children":14593},{},[14594,14599,14601,14606],{"type":47,"tag":71,"props":14595,"children":14596},{},[14597],{"type":53,"value":14598},"Workflow handlers must be deterministic across retries",{"type":53,"value":14600}," — Novu re-invokes the bridge to resolve step content. Avoid side-effects outside ",{"type":47,"tag":62,"props":14602,"children":14604},{"className":14603},[],[14605],{"type":53,"value":4067},{"type":53,"value":14607}," (custom is the only step whose result is durably persisted).",{"type":47,"tag":229,"props":14609,"children":14610},{},[14611,14621],{"type":47,"tag":71,"props":14612,"children":14613},{},[14614,14619],{"type":47,"tag":62,"props":14615,"children":14617},{"className":14616},[],[14618],{"type":53,"value":67},{"type":53,"value":14620}," requires Node.js ≥ 20",{"type":53,"value":248},{"type":47,"tag":107,"props":14623,"children":14625},{"id":14624},"code-style-tips",[14626],{"type":53,"value":14627},"Code Style Tips",{"type":47,"tag":1844,"props":14629,"children":14630},{},[14631,14651,14684,14696,14716],{"type":47,"tag":229,"props":14632,"children":14633},{},[14634,14636,14642,14644,14650],{"type":53,"value":14635},"One file per workflow under ",{"type":47,"tag":62,"props":14637,"children":14639},{"className":14638},[],[14640],{"type":53,"value":14641},"src\u002Fnovu\u002Fworkflows\u002F\u003Cworkflow-id>.ts",{"type":53,"value":14643},", re-exported from a barrel ",{"type":47,"tag":62,"props":14645,"children":14647},{"className":14646},[],[14648],{"type":53,"value":14649},"src\u002Fnovu\u002Fworkflows\u002Findex.ts",{"type":53,"value":248},{"type":47,"tag":229,"props":14652,"children":14653},{},[14654,14656,14661,14663,14669,14670,14676,14677,14683],{"type":53,"value":14655},"Prefer ",{"type":47,"tag":71,"props":14657,"children":14658},{},[14659],{"type":53,"value":14660},"Zod",{"type":53,"value":14662}," schemas — best autocomplete and inference. Use JSON Schema only when you need features Zod doesn't expose (",{"type":47,"tag":62,"props":14664,"children":14666},{"className":14665},[],[14667],{"type":53,"value":14668},"oneOf",{"type":53,"value":1865},{"type":47,"tag":62,"props":14671,"children":14673},{"className":14672},[],[14674],{"type":53,"value":14675},"if\u002Fthen\u002Felse",{"type":53,"value":1865},{"type":47,"tag":62,"props":14678,"children":14680},{"className":14679},[],[14681],{"type":53,"value":14682},"$ref",{"type":53,"value":13473},{"type":47,"tag":229,"props":14685,"children":14686},{},[14687,14689,14695],{"type":53,"value":14688},"Co-locate React Email templates next to the workflow that uses them (",{"type":47,"tag":62,"props":14690,"children":14692},{"className":14691},[],[14693],{"type":53,"value":14694},"src\u002Fnovu\u002Fworkflows\u002Fwelcome\u002Ftemplate.tsx",{"type":53,"value":13473},{"type":47,"tag":229,"props":14697,"children":14698},{},[14699,14701,14706,14708,14714],{"type":53,"value":14700},"Wrap shared ",{"type":47,"tag":62,"props":14702,"children":14704},{"className":14703},[],[14705],{"type":53,"value":4067},{"type":53,"value":14707}," logic into helpers (",{"type":47,"tag":62,"props":14709,"children":14711},{"className":14710},[],[14712],{"type":53,"value":14713},"fetchUser(payload.userId)",{"type":53,"value":14715},") for reuse.",{"type":47,"tag":229,"props":14717,"children":14718},{},[14719,14721,14726,14728,14734],{"type":53,"value":14720},"For NestJS, use ",{"type":47,"tag":62,"props":14722,"children":14724},{"className":14723},[],[14725],{"type":53,"value":9633},{"type":53,"value":14727}," with a ",{"type":47,"tag":62,"props":14729,"children":14731},{"className":14730},[],[14732],{"type":53,"value":14733},"NotificationService",{"type":53,"value":14735}," so workflow definitions can inject services.",{"type":47,"tag":107,"props":14737,"children":14739},{"id":14738},"references",[14740],{"type":53,"value":14741},"References",{"type":47,"tag":1844,"props":14743,"children":14744},{},[14745,14761,14772,14782,14792,14802,14813,14829,14839],{"type":47,"tag":229,"props":14746,"children":14747},{},[14748,14752,14754,14759],{"type":47,"tag":94,"props":14749,"children":14750},{"href":9638},[14751],{"type":53,"value":1324},{"type":53,"value":14753}," — every framework wrapper, custom ",{"type":47,"tag":62,"props":14755,"children":14757},{"className":14756},[],[14758],{"type":53,"value":8653},{"type":53,"value":14760},", NestJS DI",{"type":47,"tag":229,"props":14762,"children":14763},{},[14764,14770],{"type":47,"tag":94,"props":14765,"children":14767},{"href":14766},".\u002Freferences\u002Fworkflow-and-steps.md",[14768],{"type":53,"value":14769},"Workflow & Step API",{"type":53,"value":14771}," — full options, all step types, conditional logic patterns",{"type":47,"tag":229,"props":14773,"children":14774},{},[14775,14780],{"type":47,"tag":94,"props":14776,"children":14777},{"href":7684},[14778],{"type":53,"value":14779},"Schema Validation",{"type":53,"value":14781}," — Zod, JSON Schema, Class Validator deep dive",{"type":47,"tag":229,"props":14783,"children":14784},{},[14785,14790],{"type":47,"tag":94,"props":14786,"children":14787},{"href":12569},[14788],{"type":53,"value":14789},"Email Templates",{"type":53,"value":14791}," — React, Vue, Svelte Email integrations",{"type":47,"tag":229,"props":14793,"children":14794},{},[14795,14800],{"type":47,"tag":94,"props":14796,"children":14797},{"href":13259},[14798],{"type":53,"value":14799},"Translations",{"type":53,"value":14801}," — i18next-based localized workflows",{"type":47,"tag":229,"props":14803,"children":14804},{},[14805,14811],{"type":47,"tag":94,"props":14806,"children":14808},{"href":14807},".\u002Freferences\u002Fstudio-and-cli.md",[14809],{"type":53,"value":14810},"Local Studio & CLI",{"type":53,"value":14812}," — every flag, tunnel modes, headless mode",{"type":47,"tag":229,"props":14814,"children":14815},{},[14816,14821,14822,14827],{"type":47,"tag":94,"props":14817,"children":14819},{"href":14818},".\u002Freferences\u002Fdeployment.md",[14820],{"type":53,"value":13479},{"type":53,"value":1905},{"type":47,"tag":62,"props":14823,"children":14825},{"className":14824},[],[14826],{"type":53,"value":278},{"type":53,"value":14828},", GitHub Action, GitOps recipe, EU region",{"type":47,"tag":229,"props":14830,"children":14831},{},[14832,14837],{"type":47,"tag":94,"props":14833,"children":14835},{"href":14834},".\u002Freferences\u002Fsecurity.md",[14836],{"type":53,"value":13862},{"type":53,"value":14838}," — HMAC, public bridge requirements, Vercel preview bypass",{"type":47,"tag":229,"props":14840,"children":14841},{},[14842,14848],{"type":47,"tag":94,"props":14843,"children":14845},{"href":14844},".\u002Freferences\u002Fexamples.md",[14846],{"type":53,"value":14847},"Examples Cookbook",{"type":53,"value":14849}," — multi-step onboarding, digest, delay-then-skip, LLM-powered digest",{"type":47,"tag":14851,"props":14852,"children":14853},"style",{},[14854],{"type":53,"value":14855},"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":14857,"total":748},[14858,14874,14888,14900,14906,14926,14937,14949],{"slug":14859,"name":14859,"fn":14860,"description":14861,"org":14862,"tags":14863,"stars":14871,"repoUrl":14872,"updatedAt":14873},"env-setup","configure Novu environment variables","Create or update Novu environment variables in the user's project safely (never expose the secret key to the client). Complements the official Novu skills by covering project-level env configuration.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[14864,14867,14870],{"name":14865,"slug":14866,"type":16},"Configuration","configuration",{"name":14868,"slug":14869,"type":16},"Environment Variables","environment-variables",{"name":21,"slug":22,"type":16},39301,"https:\u002F\u002Fgithub.com\u002Fnovuhq\u002Fnovu","2026-07-13T06:21:58.740401",{"slug":14875,"name":14875,"fn":14876,"description":14877,"org":14878,"tags":14879,"stars":23,"repoUrl":24,"updatedAt":14887},"novu-dashboard-workflows","author Novu workflow step content","Author step content for Novu workflows defined in the Dashboard or generated\u002Fedited via the Novu MCP. Use when filling in step controls (subject, body, editorType, headers, body, conditions) for email, in-app, sms, push, chat, delay, digest, throttle, or HTTP Request steps.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[14880,14883,14884],{"name":14881,"slug":14882,"type":16},"MCP","mcp",{"name":21,"slug":22,"type":16},{"name":14885,"slug":14886,"type":16},"Workflow Automation","workflow-automation","2026-07-13T06:21:22.380822",{"slug":14889,"name":14889,"fn":14890,"description":14891,"org":14892,"tags":14893,"stars":23,"repoUrl":24,"updatedAt":14899},"novu-design-workflow","design Novu notification workflows","Design notification workflows the Novu way — choose channels, set severity, decide when a workflow is critical, configure digests, and route based on subscriber state. Applies to BOTH dashboard-authored and code-first (`@novu\u002Fframework`) workflows. Use when planning a new workflow, deciding which channels to include, picking severity, configuring digest behavior, or matching a use case (order confirmation, payment failed, account suspended, comment, trial expiring, password reset, webhook fan-out, fetch-then-notify) to a proven template.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[14894,14897,14898],{"name":14895,"slug":14896,"type":16},"Messaging","messaging",{"name":21,"slug":22,"type":16},{"name":14885,"slug":14886,"type":16},"2026-07-16T06:02:17.656187",{"slug":4,"name":4,"fn":5,"description":6,"org":14901,"tags":14902,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[14903,14904,14905],{"name":14,"slug":15,"type":16},{"name":21,"slug":22,"type":16},{"name":18,"slug":19,"type":16},{"slug":14907,"name":14907,"fn":14908,"description":14909,"org":14910,"tags":14911,"stars":23,"repoUrl":24,"updatedAt":14925},"novu-inbox-integration","integrate Novu in-app notification inbox","Integrate Novu's in-app notification inbox into web applications. Supports React, Next.js, and vanilla JavaScript. Includes the Inbox component (bell icon + notification feed), composable components (Bell, Notifications, InboxContent, Preferences), headless hooks, branded theming, custom render props, multi-tenancy via contexts, tabs, localization, and HMAC security. Use when adding an in-app notification center, bell icon, notification feed, real-time notification updates, or building a personalized and branded notification experience.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[14912,14915,14918,14921,14922],{"name":14913,"slug":14914,"type":16},"Frontend","frontend",{"name":14916,"slug":14917,"type":16},"JavaScript","javascript",{"name":14919,"slug":14920,"type":16},"Next.js","next-js",{"name":21,"slug":22,"type":16},{"name":14923,"slug":14924,"type":16},"React","react","2026-07-13T06:21:11.359078",{"slug":14927,"name":14927,"fn":14928,"description":14929,"org":14930,"tags":14931,"stars":23,"repoUrl":24,"updatedAt":14936},"novu-manage-preferences","configure Novu notification preferences","Configure notification preferences in Novu at the workflow and subscriber level. Set default channel preferences (email, SMS, push, chat, in-app), mark preferences as read-only or subscriber-editable, and manage subscriber-specific overrides. Use when setting up notification opt-in\u002Fopt-out, configuring per-channel delivery preferences, or building a preferences management UI.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[14932,14933],{"name":21,"slug":22,"type":16},{"name":14934,"slug":14935,"type":16},"Operations","operations","2026-07-13T06:21:30.061407",{"slug":14938,"name":14938,"fn":14939,"description":14940,"org":14941,"tags":14942,"stars":23,"repoUrl":24,"updatedAt":14948},"novu-manage-subscribers","manage Novu notification subscribers and topics","Create, update, search, and delete subscribers in Novu. Manage topics for group-based notification targeting. Set subscriber credentials for push and chat channels. Use when managing notification recipients, creating subscriber records, organizing subscribers into topics, or configuring channel-specific credentials.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[14943,14946,14947],{"name":14944,"slug":14945,"type":16},"API Development","api-development",{"name":14895,"slug":14896,"type":16},{"name":21,"slug":22,"type":16},"2026-07-16T06:00:28.792114",{"slug":14950,"name":14950,"fn":14951,"description":14952,"org":14953,"tags":14954,"stars":23,"repoUrl":24,"updatedAt":14959},"novu-trigger-notification","trigger Novu notification workflows","Trigger Novu notification workflows to send messages across email, SMS, push, chat, and in-app channels. Supports single triggers, bulk triggers, broadcast to all subscribers, topic-based targeting, and cancellation. Use when sending transactional notifications, alerts, or any event-driven messages.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[14955,14958],{"name":14956,"slug":14957,"type":16},"Automation","automation",{"name":21,"slug":22,"type":16},"2026-07-13T06:21:23.63132",{"items":14961,"total":675},[14962,14968,14974,14980,14988,14993,14999],{"slug":14875,"name":14875,"fn":14876,"description":14877,"org":14963,"tags":14964,"stars":23,"repoUrl":24,"updatedAt":14887},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[14965,14966,14967],{"name":14881,"slug":14882,"type":16},{"name":21,"slug":22,"type":16},{"name":14885,"slug":14886,"type":16},{"slug":14889,"name":14889,"fn":14890,"description":14891,"org":14969,"tags":14970,"stars":23,"repoUrl":24,"updatedAt":14899},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[14971,14972,14973],{"name":14895,"slug":14896,"type":16},{"name":21,"slug":22,"type":16},{"name":14885,"slug":14886,"type":16},{"slug":4,"name":4,"fn":5,"description":6,"org":14975,"tags":14976,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[14977,14978,14979],{"name":14,"slug":15,"type":16},{"name":21,"slug":22,"type":16},{"name":18,"slug":19,"type":16},{"slug":14907,"name":14907,"fn":14908,"description":14909,"org":14981,"tags":14982,"stars":23,"repoUrl":24,"updatedAt":14925},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[14983,14984,14985,14986,14987],{"name":14913,"slug":14914,"type":16},{"name":14916,"slug":14917,"type":16},{"name":14919,"slug":14920,"type":16},{"name":21,"slug":22,"type":16},{"name":14923,"slug":14924,"type":16},{"slug":14927,"name":14927,"fn":14928,"description":14929,"org":14989,"tags":14990,"stars":23,"repoUrl":24,"updatedAt":14936},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[14991,14992],{"name":21,"slug":22,"type":16},{"name":14934,"slug":14935,"type":16},{"slug":14938,"name":14938,"fn":14939,"description":14940,"org":14994,"tags":14995,"stars":23,"repoUrl":24,"updatedAt":14948},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[14996,14997,14998],{"name":14944,"slug":14945,"type":16},{"name":14895,"slug":14896,"type":16},{"name":21,"slug":22,"type":16},{"slug":14950,"name":14950,"fn":14951,"description":14952,"org":15000,"tags":15001,"stars":23,"repoUrl":24,"updatedAt":14959},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[15002,15003],{"name":14956,"slug":14957,"type":16},{"name":21,"slug":22,"type":16}]