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:| Provider | Model |
|---|---|
| OpenAI | GPT-5.5 |
| OpenAI | GPT-5.4 |
| OpenAI | GPT-5.4 Mini |
| OpenAI | GPT-5.4 Nano |
| OpenAI | GPT-5 Nano |
| Anthropic | Claude Opus 4.7 |
| Anthropic | Claude Opus 4.6 |
| Anthropic | Claude Sonnet 4.6 |
| Anthropic | Claude Haiku 4.5 |
Web Search
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:
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:| Field | Type | Description |
|---|---|---|
subject_line | string | Personalized email subject under 60 characters |
body_copy | string | 1-2 sentence nudge referencing the user’s activity |
recommended_feature | string | One of: templates, automations, integrations, analytics |
tone | string | One of: encouraging, celebratory, urgent |
- In branch conditions: select
data.toneordata.recommended_featureas the field - In journey templates: use
{{subject_line}}or{{body_copy}}
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.
Example: Personalized Onboarding Nudge
A journey that uses the AI node to generate tailored onboarding messages based on each user’s activity:
- Trigger — Fires on day 3 after signup. The trigger schema includes
user_name,plan_name,features_used, anddays_since_signup. - Fetch Data — Pulls the user’s recent activity summary from your application API.
- AI node — Given the user’s profile and activity, generates a personalized nudge with
subject_line,body_copy,recommended_feature, andtone. Model: Claude Sonnet 4.6 (3 credits per run). - 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.
- Path “Celebratory”: user has been active → sends a congratulatory email with
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)
Billing
Each AI node invocation consumes credits based on the selected model. Credits are billed at a rate of 100 credits per $1.| Provider | Model | Credits per invocation |
|---|---|---|
| OpenAI | GPT-5.5 | 6 |
| OpenAI | GPT-5.4 | 3 |
| OpenAI | GPT-5.4 Mini | 1 |
| OpenAI | GPT-5.4 Nano | 0.25 |
| OpenAI | GPT-5 Nano | 0.1 |
| Anthropic | Claude Opus 4.7 | 5 |
| Anthropic | Claude Opus 4.6 | 5 |
| Anthropic | Claude Sonnet 4.6 | 3 |
| Anthropic | Claude Haiku 4.5 | 1 |
| Provider | Model | Input token overage credits / 1K tokens | Output token overage credits / 1K tokens |
|---|---|---|---|
| OpenAI | GPT-5.5 | 0.625 | 3.750 |
| OpenAI | GPT-5.4 | 0.313 | 1.875 |
| OpenAI | GPT-5.4 Mini | 0.094 | 0.563 |
| OpenAI | GPT-5.4 Nano | 0.025 | 0.156 |
| OpenAI | GPT-5 Nano | 0.006 | 0.050 |
| Anthropic | Claude Opus 4.7 | 0.625 | 3.125 |
| Anthropic | Claude Opus 4.6 | 0.625 | 3.125 |
| Anthropic | Claude Sonnet 4.6 | 0.375 | 1.875 |
| Anthropic | Claude Haiku 4.5 | 0.125 | 0.625 |
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