> ## 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.

# Send Smart Message

> Send intelligent, context-aware messages that adapt based on user behavior and data

<iframe src="https://app.flywheel.cx/doc-comp-previews/workflow-node-preview?type=send_smart_message" title="Workflow Node Preview" width="100%" height="250px" className="border dark:border-[#1C1C20]  rounded-xl" />

## How Send Smart Message Works

Send intelligent, context-aware messages that automatically choose the best communication channel and content based on user behavior and preferences. Smart messages prioritize channels where the user is most likely to respond.

## Configuration

<Columns cols={2}>
  <Card title="Inputs">
    <ParamField path="To" type="string" required>
      The ID of the user who will receive the message.
    </ParamField>

    <ParamField path="From" type="string" required>
      The ID of the team member sending the message.
    </ParamField>

    <ParamField path="Enabled Contact Methods" type="string[]" required>
      Array of contact methods in priority order: `email`, `slack`. The system will try methods in order until one succeeds.
    </ParamField>

    <ParamField path="Contact Selection Strategy" type="enum" required>
      How to select from available contact methods: `oldest`, `newest`, or `random`.
    </ParamField>

    <ParamField path="Email" type="object" required>
      Email message configuration including HTML content, subject, and dynamic variables.
    </ParamField>

    <ParamField path="Slack Message" type="object" required>
      Slack message configuration including content JSON and dynamic variables.
    </ParamField>
  </Card>

  <Card>
    <iframe src="https://app.flywheel.cx/doc-comp-previews/workflow-config-preview?type=send_smart_message" title="Workflow Config Preview" width="100%" height="700px" className="" />
  </Card>
</Columns>

<Card title="Outputs">
  <ParamField path="context" type="object" required>
    Currently returns an empty context object. Future versions will include delivery details, chosen channel, and engagement metrics.
  </ParamField>
</Card>

## Use Cases

**Adaptive Onboarding**

```
Enabled Methods: ["email", "slack"]
Content varies by:
- User role (admin vs. user)
- Company size (startup vs. enterprise)
- Industry vertical
```

**Behavioral Triggers**

```
Selection Strategy: newest
Message adapts based on:
- Previous email engagement
- Product usage patterns
- Support interaction history
```

**Multi-Channel Follow-up**

```
Enabled Methods: ["slack", "email"]
Priority: Try Slack first, fall back to email
Use: Ensure critical messages reach users via their preferred channel
```

**Contextual Support**

```
From: Customer Success Manager
Content varies by:
- Recent product usage
- Support ticket history
- Subscription tier
```

## Best Practices

**Channel Strategy**

* Order contact methods by user preference and engagement rates
* Consider the urgency and nature of the message when choosing channels
* Monitor channel effectiveness and adjust priority accordingly

**Content Personalization**

* Use dynamic variables to personalize both email and Slack content
* Adapt message tone and length to the chosen channel
* Test different content variations for optimal engagement

**Performance Optimization**

* Monitor delivery success rates across different channels
* Track user engagement to refine contact method selection
* Consider time zones and user activity patterns when sending messages
