Provides integration patterns for Intercom customer messaging and support services.

Install

mkdir -p .claude/skills/intercom && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/14543" && unzip -o skill.zip -d .claude/skills/intercom && rm skill.zip

Installs to .claude/skills/intercom

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

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.
213 chars✓ has a “when” trigger
Intermediate

Key capabilities

  • Install Intercom Messenger in web apps
  • Initialize Intercom with user data
  • Track events for user segmentation
  • Create React components for Intercom integration
  • Perform server-side Intercom operations (create/update users, send messages)
  • Use custom attributes to segment users

How it works

The skill provides code examples and guidelines for integrating Intercom into web applications, including client-side messenger installation, React component wrapping, and server-side API interactions for user management and messaging.

Inputs & outputs

You give it
A request to add in-app messaging, build a help center, or set up customer onboarding
You get back
Code snippets for Intercom installation, React integration, and server-side API usage

When to use intercom

  • Adding in-app chat
  • Building help centers
  • Creating product onboarding tours

About this skill

Intercom

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

// 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

// 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

// 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: '[email protected]',
    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).

When not to use it

  • When a budget alternative like Crisp or Chatwoot is preferred
  • When not needing a full-featured customer messaging platform

Limitations

  • Intercom starts at $39/seat/month
  • Requires an Intercom app_id and access token
  • Does not cover budget alternatives like Crisp or Chatwoot

How it compares

This skill offers specific code implementations and guidelines for Intercom, facilitating its integration for customer communication, unlike general messaging platform setup.

Compared to similar skills

intercom side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
intercom (this skill)0ReviewIntermediate
telegram-mini-app626moReviewAdvanced
create-mcp-app35moReviewAdvanced
telegram-dev28moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

telegram-mini-app

davila7

Expert in building Telegram Mini Apps (TWA) - web apps that run inside Telegram with native-like experience. Covers the TON ecosystem, Telegram Web App API, payments, user authentication, and building viral mini apps that monetize. Use when: telegram mini app, TWA, telegram web app, TON app, mini app.

62163

create-mcp-app

modelcontextprotocol

This skill should be used when the user asks to "create an MCP App", "add a UI to an MCP tool", "build an interactive MCP View", "scaffold an MCP App", or needs guidance on MCP Apps SDK patterns, UI-resource registration, MCP App lifecycle, or host integration. Provides comprehensive guidance for building MCP Apps with interactive UIs.

331

telegram-dev

2025Emma

Telegram 生态开发全栈指南 - 涵盖 Bot API、Mini Apps (Web Apps)、MTProto 客户端开发。包括消息处理、支付、内联模式、Webhook、认证、存储、传感器 API 等完整开发资源。

232

templ-htmx

Xe

Build interactive hypermedia-driven applications with templ and HTMX. Use when creating dynamic UIs, real-time updates, AJAX interactions, mentions 'HTMX', 'dynamic content', or 'interactive templ app'.

314

shopify-apps

alinaqi

Shopify app development - Remix, Admin API, checkout extensions

19

ai-model-wechat

TencentCloudBase

Use this skill when developing WeChat Mini Programs (小程序, 企业微信小程序, wx.cloud-based apps) that need AI capabilities. Features text generation (generateText) and streaming (streamText) with callback support (onText, onEvent, onFinish) via wx.cloud.extend.AI. Built-in models include Hunyuan (hunyuan-2.0-instruct-20251111 recommended) and DeepSeek (deepseek-v3.2 recommended). API differs from JS/Node SDK - streamText requires data wrapper, generateText returns raw response. NOT for browser/Web apps (use ai-model-web), Node.js backend (use ai-model-nodejs), or image generation (not supported).

07

Search skills

Search the agent skills registry