CommunicationsAdvanced
Intercom Automation
Automate Intercom customer messaging, support workflows, user engagement, and product tours
#intercom#customer-support#messaging#engagement#automation
CLAUDE.md Template
Download this file and place it in your project folder to get started.
# Intercom Automation
Comprehensive workflow for automating Intercom customer communication and support workflows.
## Core Workflows
### 1. Conversation Flow
```
CUSTOMER CONVERSATION FLOW:
┌─────────────────┐
│ User Message │
│ (Inbound) │
└────────┬────────┘
▼
┌─────────────────┐
│ Bot Triage │
│ - Intent │
│ - Route │
└────────┬────────┘
│
┌────┴────┐
▼ ▼
┌───────┐ ┌───────┐
│ Bot │ │ Human │
│ Reply │ │ Agent │
└───┬───┘ └───┬───┘
│ │
└────┬────┘
▼
┌─────────────────┐
│ Resolution │
│ - Close │
│ - Follow-up │
└─────────────────┘
```
### 2. Automation Rules
```yaml
automations:
- name: welcome_new_users
trigger:
event: user.created
conditions:
- signed_up_at: within_last_hour
action:
send_message:
type: chat
delay: 5_minutes
message: |
Hey {{first_name}}! 👋
Welcome to {{company_name}}! I'm here to help you
get started. What brings you here today?
buttons:
- "Explore features"
- "I have a question"
- "Just looking around"
- name: trial_expiring
trigger:
event: user.attribute_changed
attribute: trial_days_remaining
value: 3
action:
send_message:
type: email
template: trial_expiring
- name: feature_announcement
trigger:
segment: power_users
event: feature_released
action:
send_message:
type: in_app
message: "🎉 New Feature: {{feature_name}}"
```
## User Segmentation
### Segment Definitions
```yaml
segments:
- name: trial_users
filter:
subscription_status: trial
- name: power_users
filter:
sessions_count: "> 50"
last_seen: "< 7 days"
features_used: "> 5"
- name: at_risk_users
filter:
subscription_status: active
last_seen: "> 30 days"
- name: enterprise_prospects
filter:
company_size: "> 100"
plan: free
- name: feature_requesters
filter:
tag: feature_request
conversations_count: "> 0"
```
### Dynamic Attributes
```yaml
custom_attributes:
- name: health_score
type: number
compute: |
(sessions_last_30_days * 2) +
(features_used * 3) +
(team_members_active * 5)
- name: lifecycle_stage
type: string
rules:
- condition: signed_up_at < 7_days
value: "onboarding"
- condition: subscription_status == "trial"
value: "trial"
- condition: subscription_status == "active"
value: "customer"
- condition: subscription_status == "cancelled"
value: "churned"
- name: account_tier
type: string
source: company.plan
```
## Messaging Campaigns
### Onboarding Series
```yaml
onboarding_campaign:
name: "New User Onboarding"
audience:
segment: new_signups
messages:
- day: 0
channel: in_app
content: |
Welcome to {{company}}! 🎉
Let me show you around. Click below to take a
quick 2-minute tour.
cta: "Start Tour"
- day: 1
channel: email
subject: "Quick tip: {{feature_1}}"
content: |
Hi {{first_name}},
Did you know you can {{feature_1_benefit}}?
Here's how: {{feature_1_tutorial_link}}
- day: 3
channel: in_app
trigger:
not_completed: "setup_wizard"
content: |
Hey {{first_name}}, I noticed you haven't
finished setting up. Need any help?
- day: 7
channel: email
subject: "How's it going?"
content: |
Hi {{first_name}},
You've been using {{company}} for a week now.
Any questions or feedback? Just reply to this email!
```
### Product Tours
```yaml
product_tours:
- name: "Welcome Tour"
trigger:
event: first_login
steps:
- element: "#dashboard"
title: "Your Dashboard"
body: "This is where you'll see your key metrics"
position: bottom
- element: "#create-button"
title: "Create New"
body: "Click here to create your first project"
position: left
- element: "#help-menu"
title: "Need Help?"
body: "Find docs and contact support here"
position: bottom
- name: "Feature Tour: Reports"
trigger:
event: page_viewed
url: "/reports"
first_time: true
steps:
- element: "#date-picker"
title: "Date Range"
body: "Select your reporting period"
```
## Support Workflows
### Conversation Routing
```yaml
routing_rules:
- name: vip_priority
conditions:
- company.plan: enterprise
actions:
- set_priority: urgent
- assign_team: enterprise_support
- send_notification: slack_vip
- name: billing_issues
conditions:
- message_contains: ["billing", "charge", "invoice", "refund"]
actions:
- add_tag: billing
- assign_team: billing_support
- name: technical_support
conditions:
- message_contains: ["error", "bug", "not working", "broken"]
actions:
- add_tag: technical
- assign_team: tech_support
- create_ticket: jira
```
### Bot Responses
```yaml
bot_responses:
- intent: greeting
patterns: ["hi", "hello", "hey"]
response: |
Hi there! 👋 How can I help you today?
- intent: pricing
patterns: ["pricing", "cost", "how much", "plans"]
response: |
Great question! Here's our pricing:
• **Starter**: $29/mo
• **Growth**: $79/mo
• **Enterprise**: Custom
Would you like me to connect you with sales?
buttons:
- "Yes, talk to sales"
- "See full comparison"
- intent: password_reset
patterns: ["forgot password", "reset password", "can't login"]
response: |
No problem! You can reset your password here:
{{password_reset_link}}
The link will expire in 24 hours.
auto_close: true
```
## Analytics & Reporting
### Conversation Metrics
```
SUPPORT METRICS - THIS WEEK
═══════════════════════════════════════
Conversations:
New: 234 (+12%)
Closed: 256 (+8%)
Open: 45
Response Times:
First Reply: 2.3 min (target: 5 min) ✓
Median: 8 min
Resolution: 2.4 hours
CSAT Score: 4.7/5 ⭐ (+0.2)
BY CHANNEL:
Chat ████████████░░░░ 156
Email ██████░░░░░░░░░░ 58
In-App ████░░░░░░░░░░░░ 20
TOP TOPICS:
┌────────────────────┬───────┐
│ Topic │ Count │
├────────────────────┼───────┤
│ Billing questions │ 45 │
│ Feature requests │ 38 │
│ Bug reports │ 32 │
│ How-to questions │ 28 │
└────────────────────┴───────┘
```
### Engagement Dashboard
```yaml
engagement_metrics:
- name: message_open_rate
formula: opened / sent * 100
target: 40%
- name: click_through_rate
formula: clicked / opened * 100
target: 10%
- name: tour_completion_rate
formula: completed / started * 100
target: 60%
- name: bot_resolution_rate
formula: resolved_by_bot / total * 100
target: 30%
```
## Integration Workflows
### CRM Sync
```yaml
crm_integration:
salesforce:
sync_fields:
- intercom: company.name
salesforce: Account.Name
- intercom: user.email
salesforce: Contact.Email
- intercom: custom.mrr
salesforce: Account.MRR__c
events:
- trigger: conversation_closed
action: log_activity
type: "Support Interaction"
- trigger: user.tag_added
tag: "sales_qualified"
action: create_lead
```
### Slack Integration
```yaml
slack_integration:
notifications:
- trigger: new_conversation
channel: "#support-inbox"
conditions:
- priority: urgent
message: "🚨 Urgent: {{user.name}} needs help"
- trigger: conversation_assigned
notify: assignee_dm
message: "New conversation assigned to you"
commands:
/intercom:
- lookup_user
- send_message
- add_tag
```
## API Examples
### Create or Update User
```javascript
// Create/Update User
const user = await intercom.users.create({
user_id: "12345",
email: "user@example.com",
name: "John Doe",
signed_up_at: Math.floor(Date.now() / 1000),
custom_attributes: {
plan: "pro",
team_size: 10,
onboarding_complete: true
}
});
// Send Message
await intercom.messages.create({
message_type: "inapp",
body: "Hey! New feature alert 🎉",
from: {
type: "admin",
id: "admin_id"
},
to: {
type: "user",
user_id: "12345"
}
});
// Search Conversations
const conversations = await intercom.conversations.search({
query: {
field: "state",
operator: "=",
value: "open"
}
});
```
## Best Practices
1. **Personalize Messages**: Use user attributes
2. **Time Appropriately**: Consider user timezone
3. **Don't Over-Message**: Respect frequency limits
4. **Bot + Human**: Know when to escalate
5. **Track Everything**: Measure message effectiveness
6. **Segment Thoughtfully**: Target the right users
7. **A/B Test**: Optimize message content
8. **Quick Resolution**: Minimize response timeREADME.md
What This Does
Comprehensive workflow for automating Intercom customer communication and support workflows.
Quick Start
Step 1: Create a Project Folder
mkdir -p ~/Documents/IntercomAutomation
Step 2: Download the Template
Click Download above, then:
mv ~/Downloads/CLAUDE.md ~/Documents/IntercomAutomation/
Step 3: Start Working
cd ~/Documents/IntercomAutomation
claude
Best Practices
- Personalize Messages: Use user attributes
- Time Appropriately: Consider user timezone
- Don't Over-Message: Respect frequency limits
- Bot + Human: Know when to escalate
- Track Everything: Measure message effectiveness
- Segment Thoughtfully: Target the right users
- A/B Test: Optimize message content
- Quick Resolution: Minimize response time