Skip to main content
AI nodes let you run an LLM prompt as part of a journey. When the journey reaches the node, Courier sends the prompt and available context to the selected model, parses the response into structured output, and adds those fields back into the journey context. Downstream nodes can then use the AI output to make decisions, personalize messages, or update user data. Use AI nodes to generate notification copy, classify users from behavior data, score engagement signals, summarize activity, or enrich profiles with structured insights that shape the rest of the journey.

Configuration

Click the AI node on the canvas to open the summary panel, then click Configure to open the full configuration drawer.

AI Model

Choose the large language model (LLM) that best fits what the AI node needs to do. Courier supports models from OpenAI and Anthropic, so each node can use the right balance of speed, cost, and output quality. Use smaller models for predictable structured tasks, like classifying users, extracting fields, scoring engagement, or returning simple JSON. Use larger models when the prompt requires more context, nuanced reasoning, or higher-quality generated copy. Available models:
ProviderModel
OpenAIGPT-5.5
OpenAIGPT-5.4
OpenAIGPT-5.4 Mini
OpenAIGPT-5.4 Nano
OpenAIGPT-5 Nano
AnthropicClaude Opus 4.7
AnthropicClaude Opus 4.6
AnthropicClaude Sonnet 4.6
AnthropicClaude Haiku 4.5
See Billing for credit costs, token overages, and web search pricing. Toggle web search when the prompt needs current information that is not already available in the journey context. When enabled, the model can query the internet before generating its structured response. Web search is available for Anthropic models only. Each invocation with web search enabled costs an additional 2 credits. Search results also count as input tokens, along with the prompt, output schema, journey context, and resolved variables. If the total input exceeds 2,000 tokens, input token overage applies.

Prompt

Write a natural-language prompt describing what you want the model to do. The prompt field supports {{variable}} interpolation; type {{ to see available fields from the trigger schema, profile, or upstream fetch responses. For the onboarding nudge example below, the prompt might be:
You are a product growth assistant. Based on this user's profile and activity, write a personalized onboarding nudge that encourages them to try the next feature most relevant to their use case.

Rules:
- subject_line should be under 60 characters, personalized, and action-oriented
- body_copy should be 1-2 sentences, friendly, and reference what they've already done
- recommended_feature must be exactly one of: templates, automations, integrations, analytics
- tone must be exactly one of: encouraging, celebratory, urgent

User: {{data.user_name}}
Plan: {{data.plan_name}}
Features used so far: {{data.features_used}}
Days since signup: {{data.days_since_signup}}
A token counter in the top-right of the drawer shows prompt + schema size in real time. Most AI node runs stay within the included token limit. Input token overage usually only applies when variables, fetch responses, or web search results add large amounts of text.

Output Schema

The output schema defines the structure of the model’s response. You can define it in two modes: Form mode (default) — Add fields with a name and type (string, number, or boolean). Optionally add a description to guide the model on what each field should contain. JSON mode — Write a JSON Schema directly. Use this for more complex schemas or when pasting from an existing definition. For the onboarding nudge example, the form-mode schema would be:
FieldTypeDescription
subject_linestringPersonalized email subject under 60 characters
body_copystring1-2 sentence nudge referencing the user’s activity
recommended_featurestringOne of: templates, automations, integrations, analytics
tonestringOne of: encouraging, celebratory, urgent
The model’s response is parsed as JSON and merged into the journey context. Downstream nodes reference the fields the same way they reference trigger or fetch data:

Conditions

Like other nodes, AI nodes support optional conditions. If the conditions are not met when the run reaches the node, it’s skipped and no credits are consumed.

Testing

Click Test in the configuration drawer to open the test panel. The test panel lets you run the prompt against the selected model with sample variable values and see the structured response before publishing the journey.
The test result shows the parsed JSON output on the right, or an error message if the request failed.

Example: Personalized Onboarding Nudge

A journey that uses the AI node to generate tailored onboarding messages based on each user’s activity:
  1. Trigger — Fires on day 3 after signup. The trigger schema includes user_name, plan_name, features_used, and days_since_signup.
  2. Fetch Data — Pulls the user’s recent activity summary from your application API.
  3. AI node — Given the user’s profile and activity, generates a personalized nudge with subject_line, body_copy, recommended_feature, and tone. Model: Claude Sonnet 4.6 (3 credits per run).
  4. Branch — Routes based on data.tone:
    • Path “Celebratory”: user has been active → sends a congratulatory email with {{subject_line}} and {{body_copy}}.
    • Path “Urgent”: user hasn’t engaged → sends a push notification to re-engage.
    • Default: sends a standard onboarding email with the AI-generated copy.
The AI node eliminates the need for dozens of template variants. Instead of maintaining separate templates for each user segment, a single journey produces personalized content for every recipient.

Common Patterns

Score and classify users: Feed product usage, behavior, and profile data into the LLM. Route the journey based on risk level, intent, engagement, or any structured category the model returns. Generate personalized notifications: Give the model your journey context and get back tailored subject lines, body copy, and recommended actions. Personalized content for every recipient without dozens of template variants. Enrich user profiles: Classify users into personas, derive lifecycle stage, or generate account summaries. Persist outputs to the profile so every future journey starts with richer context. Structured output for downstream logic: Define an output schema with field names, types, and enums. The LLM returns structured JSON that branch conditions, send nodes, and downstream integrations can act on directly.

Debugging AI Nodes

Open Run Inspection and click the AI node step to see:
  • The model used and whether web search was enabled
  • The resolved prompt (with variables substituted)
  • The output schema that was sent to the model
  • The structured JSON response
  • Token usage (input and output token counts)
If the AI node fails (model error or timeout), the step context shows the error. The journey continues but no output is merged into the context. Use a branch condition downstream to handle cases where expected AI output fields may be missing.

Billing

Each AI node invocation consumes credits based on the selected model. Credits are billed at a rate of 100 credits per $1.
ProviderModelCredits per invocation
OpenAIGPT-5.56
OpenAIGPT-5.43
OpenAIGPT-5.4 Mini1
OpenAIGPT-5.4 Nano0.25
OpenAIGPT-5 Nano0.1
AnthropicClaude Opus 4.75
AnthropicClaude Opus 4.65
AnthropicClaude Sonnet 4.63
AnthropicClaude Haiku 4.51
The values above are base costs per invocation. Each invocation includes up to 2,000 input tokens and 1,000 output tokens. Most AI node runs stay within these included limits. Input tokens include everything sent to the model, including the prompt, output schema, journey context, resolved variables, upstream fetch responses, and web search results. Input token overage usually only applies when the node sends a large amount of text to the model, such as long variables, large fetch responses, or web search results. Output tokens are generated by the model response. Output token overage applies only when the model response exceeds 1,000 tokens. You can control output length through the prompt and output schema.
ProviderModelInput token overage
credits / 1K tokens
Output token overage
credits / 1K tokens
OpenAIGPT-5.50.6253.750
OpenAIGPT-5.40.3131.875
OpenAIGPT-5.4 Mini0.0940.563
OpenAIGPT-5.4 Nano0.0250.156
OpenAIGPT-5 Nano0.0060.050
AnthropicClaude Opus 4.70.6253.125
AnthropicClaude Opus 4.60.6253.125
AnthropicClaude Sonnet 4.60.3751.875
AnthropicClaude Haiku 4.50.1250.625
Web search is available for Anthropic models only. When enabled, each invocation costs an additional 2 credits. Search results are also included in input token usage, so web search can contribute to input token overage when the total input exceeds 2,000 tokens.

What’s Next

Branch

Route based on AI output fields

Fetch Data

Enrich context before the AI node processes it

Journey Templates

Use AI output as template variables

Run Inspection

Debug AI node prompts and responses