>
intercom
Add customer messaging and support with Intercom. Use when a user asks to add in-app messaging, build a help center, set up customer onboarding flows, create product tours, or implement a support ticketing system.
#intercom#chat#support#onboarding#messaging
terminal-skillsv1.0.0
Works with:claude-codeopenai-codexgemini-clicursor
Usage
$
✓ Installed intercom v1.0.0
Getting Started
- Install the skill using the command above
- Open your AI coding agent (Claude Code, Codex, Gemini CLI, or Cursor)
- Reference the skill in your prompt
- The AI will use the skill's capabilities automatically
Example Prompts
- "Generate a professional invoice for the consulting work done in January"
- "Draft an NDA for our upcoming partnership with Acme Corp"
Documentation
Overview
Intercom is a customer messaging platform for support, onboarding, and engagement. Includes live chat, help center, product tours, chatbots, and a shared inbox. Industry standard for SaaS customer communication.
Instructions
Step 1: Install Messenger
typescript
// lib/intercom.ts — Initialize Intercom in a web app
export function initIntercom(user?: { id: string; email: string; name: string }) {
window.Intercom('boot', {
app_id: process.env.NEXT_PUBLIC_INTERCOM_APP_ID,
...(user && {
user_id: user.id,
email: user.email,
name: user.name,
created_at: Math.floor(Date.now() / 1000),
}),
})
}
// Update when user navigates (SPA)
window.Intercom('update', { last_request_at: Math.floor(Date.now() / 1000) })
// Track events for targeting
window.Intercom('trackEvent', 'completed-onboarding', {
plan: 'pro',
team_size: 5,
})
Step 2: React Component
tsx
// components/IntercomProvider.tsx — React wrapper
'use client'
import { useEffect } from 'react'
import { useUser } from '@/hooks/useUser'
export function IntercomProvider({ children }) {
const { user } = useUser()
useEffect(() => {
// Load Intercom script
const script = document.createElement('script')
script.innerHTML = `(function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic('reattach_activator');ic('update',w.intercomSettings);}else{var d=document;var i=function(){i.c(arguments);};i.q=[];i.c=function(args){i.q.push(args);};w.Intercom=i;var l=function(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/${process.env.NEXT_PUBLIC_INTERCOM_APP_ID}';var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);};l();}})();`
document.body.appendChild(script)
if (user) {
window.Intercom('boot', {
app_id: process.env.NEXT_PUBLIC_INTERCOM_APP_ID,
user_id: user.id,
email: user.email,
name: user.name,
})
}
}, [user])
return children
}
Step 3: Server-Side API
typescript
// lib/intercom-api.ts — Server-side Intercom operations
const INTERCOM_TOKEN = process.env.INTERCOM_ACCESS_TOKEN!
// Create or update a user
await fetch('https://api.intercom.io/contacts', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${INTERCOM_TOKEN}`,
},
body: JSON.stringify({
role: 'user',
external_id: userId,
email: 'user@example.com',
name: 'John Doe',
custom_attributes: { plan: 'pro', mrr: 49, company_size: 10 },
}),
})
// Send a message
await fetch('https://api.intercom.io/messages', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${INTERCOM_TOKEN}`,
},
body: JSON.stringify({
from: { type: 'admin', id: 'admin_id' },
to: { type: 'user', id: 'user_id' },
message_type: 'inapp',
body: 'Hey! How are you finding the new dashboard?',
}),
})
Guidelines
- Intercom starts at $39/seat/month — expensive but full-featured.
- Use custom attributes to segment users (plan, MRR, feature usage).
- Product tours and onboarding flows reduce support tickets significantly.
- For budget alternative, consider Crisp (free tier) or Chatwoot (open-source).
Information
- Version
- 1.0.0
- Author
- terminal-skills
- Category
- Business
- License
- Apache-2.0