Automate Intercom customer messaging, support workflows, user engagement, and product tours
npx skills add https://github.com/claude-office-skills/skills --skill Intercom Automation
Comprehensive skill for automating Intercom customer communication and support workflows.
CUSTOMER CONVERSATION FLOW:
┌─────────────────┐
│ User Message │
│ (Inbound) │
└────────┬────────┘
▼
┌─────────────────┐
│ Bot Triage │
│ - Intent │
│ - Route │
└────────┬────────┘
│
┌────┴────┐
▼ ▼
┌───────┐ ┌───────┐
│ Bot │ │ Human │
│ Reply │ │ Agent │
└───┬───┘ └───┬───┘
│ │
└────┬────┘
▼
┌─────────────────┐
│ Resolution │
│ - Close │
│ - Follow-up │
└─────────────────┘
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}}"
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"
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
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:
- 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"
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:
- 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
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_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%
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:
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
// Create/Update User
const user = await intercom.users.create({
user_id: "12345",
email: "[email protected]",
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"
}
});
Analyzes meeting transcripts and recordings to uncover behavioral patterns, communication insights, and actionable feedback. Identifies when you avoid conflict, use filler words, dominate conversations, or miss opportunities to listen. Perfect for professionals seeking to improve their communication and leadership skills.
Toolkit for creating animated GIFs optimized for Slack, with validators for size constraints and composable animation primitives. This skill applies when users request animated GIFs or emoji animations for Slack from descriptions like "make me a GIF for Slack of X doing Y".
Analyzes your recent Claude Code chat history to identify coding patterns, development gaps, and areas for improvement, curates relevant learning resources from HackerNews, and automatically sends a personalized growth report to your Slack DMs.
Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like "make me a GIF of X doing Y for Slack.
A skill that creates new Claude skills and automatically shares them on Slack using Rube for seamless team collaboration and skill discovery.
Automate Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify, etc.) using agent-browser via Chrome DevTools Protocol. Use when the user needs to interact with an Electron app, automate a desktop app, connect to a running app, control a native app, or test an Electron application. Triggers include "automate Slack app", "control VS Code", "interact with Discord app", "test this Electron app", "connect to desktop app", or any task requiring automation of a native Electron application.
Prepare meeting materials with Notion context and Codex research; use when gathering context, drafting agendas/pre-reads, and tailoring materials to attendees.
Interactive daily standup/meeting update generator. Use when user says 'daily', 'standup', 'scrum update', 'status update', 'what did I do yesterday', 'prepare for meeting', 'morning update', or 'team sync'. Pulls activity from GitHub, Jira, and Claude Code session history. Conducts 4-question interview (yesterday, today, blockers, discussion topics) and generates formatted Markdown update.
Take claude-office-skills/intercom automation from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.