> ## Documentation Index
> Fetch the complete documentation index at: https://flywheel.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# One-to-One Email

> Send a builder-defined one-to-one email while letting the agent choose timing and recipient

<iframe src="http://localhost:3000/doc-comp-previews/agent-node-preview?type=send_one_to_one_email" title="Agent Node Preview" width="100%" height="250px" className="border dark:border-[#1C1C20] rounded-xl" />

## How One-to-One Email works

**One-to-One Email** sends a personal email from a configured team member sender using content defaults you define in the builder. Unlike marketing emails, these messages appear as direct communication from a real person on your team, making them ideal for relationship-driven outreach.

The builder controls the sender identity, subject, and body content, while the agent handles timing and recipient selection during the run. This ensures every one-to-one message maintains a consistent, personal tone while still being triggered automatically based on user behavior or lifecycle stage.

## Configuration

<Columns cols={2}>
  <Card title="Inputs">
    <ParamField path="Prompt" type="string" required>
      Instructions for when and how the agent should use this tool.
    </ParamField>

    <ParamField path="Send to" type="string" required>
      Target user (`params.to_id`), with user or agent assignment mode.
    </ParamField>

    <ParamField path="Send from" type="string" required>
      Team member sender (`params.from_id`) used as the one-to-one sender.
    </ParamField>

    <ParamField path="CC" type="string[]">
      Optional CC emails.
    </ParamField>

    <ParamField path="BCC" type="string[]">
      Optional BCC emails.
    </ParamField>

    <ParamField path="Complete on send failure" type="boolean" default="true">
      Controls whether the run continues when send fails.
    </ParamField>
  </Card>

  <Card>
    <iframe src="http://localhost:3000/doc-comp-previews/agent-config-preview?type=send_one_to_one_email" title="Agent Config Preview" width="100%" height="600px" className="" />
  </Card>
</Columns>

<Card title="Outputs">
  <ParamField path="status" type="enum" required>
    The status of the email send operation. Can be `success`, `failure`, or `skipped`.
  </ParamField>

  <ParamField path="to_id" type="string" required>
    The ID of the user that the email was sent to.
  </ParamField>

  <ParamField path="from_id" type="string" required>
    The team member ID used as the sender for this email.
  </ParamField>

  <ParamField path="email_id" type="string">
    The ID of the email that was sent (available on success).
  </ParamField>

  <ParamField path="create_email_options" type="object">
    The options used when creating the email, including subject, body, CC, and BCC settings (available on success).
  </ParamField>

  <ParamField path="create_email_response" type="object">
    The response from the email creation service (available on success).
  </ParamField>

  <ParamField path="code" type="enum">
    The code indicating why the email send operation failed or was skipped. Can be `resend_error`, `duplicate_email`, or `user_marketing_email_opt_out`.
  </ParamField>

  <ParamField path="error_message" type="string">
    The message of the error that occurred (available on failure).
  </ParamField>
</Card>

## Use cases

**Lifecycle Handoff**

```
Condition: User passes qualification criteria and is assigned a CSM
Action: Send one-to-one introduction note from the assigned CSM
Outcome: New qualified user receives a personal welcome from their point of contact
```

**Churn Risk Outreach**

```
Condition: Account risk score crosses a critical threshold
Action: Send curated outreach message from the account owner
Outcome: At-risk user receives direct, personal communication to re-engage
```

**Missed Milestone Check-In**

```
Condition: User has not completed a key onboarding step after 10 days
Action: Send one-to-one reminder from the success lead with guidance
Outcome: Stalled user receives targeted help to get back on track
```

**Renewal Conversation Starter**

```
Condition: User subscription renewal is within 30 days
Action: Send personal note from account manager to open renewal discussion
Outcome: Proactive relationship touch before the renewal window closes
```

## Best practices

**Sender Identity**

* Map the sender to the team member who actually owns the relationship with the recipient.
* Avoid using generic or shared sender identities — one-to-one emails should feel personal.
* Use `from_id` output to verify the correct sender was used in each delivery.

**Delivery and State Tracking**

* Follow successful sends with Set Custom Property to mark that outreach has been completed.
* Enable `complete_on_send_failure` when the agent run should proceed regardless of email delivery status.
* Monitor `code` output values like `duplicate_email` to prevent repeat outreach to the same user.

**Content and Template Quality**

* Keep email content defaults up to date and aligned with your team's current voice and messaging.
* Review templates regularly to ensure they reflect current product state and company positioning.
* Use preview text to reinforce the subject line and improve open rates in recipient inboxes.
