Synthèse automatique
Guide l'intégration du Messenger et de l'API REST d'Intercom dans une application web : initialisation et mise à jour de l'utilisateur, suivi d'événements, composant React et création de contacts et messages côté serveur.
Points forts
- Fournit des extraits prêts à copier pour le démarrage du Messenger, les mises à jour SPA et le suivi d'événements.
- Inclut un provider React qui charge le widget et l'initialise avec l'utilisateur authentifié.
- Montre les appels serveur aux endpoints Contacts et Messages, avec des attributs personnalisés pour la segmentation.
Limites
- Le centre d'aide, les visites guidées, les chatbots et la gestion de tickets ne sont qu'évoqués, sans code d'implémentation.
- La compatibilité annonce iOS et Android, mais tous les exemples ciblent le web/React et TypeScript.
À utiliser pour ajouter le widget de chat Intercom, identifier les utilisateurs ou créer des contacts et envoyer des messages depuis votre backend.
À éviter si vous cherchez une solution de support gratuite ou open source, ou des instructions détaillées sur le centre d'aide, les visites guidées ou les tickets.
Analyse de sécurité
PrudenceThe skill performs legitimate Intercom integration using standard network APIs and a third-party widget. There is no destructive, exfiltrating, or obfuscated behavior, but it handles a server-side secret token and injects a remote script, so a caution rating is appropriate.
- •Injects a third-party Intercom widget script from widget.intercom.io into the page, which expands the client-side attack surface.
- •Server-side examples require INTERCOM_ACCESS_TOKEN; the skill should emphasize that this secret must never be exposed client-side.
- •React example uses script.innerHTML to inject a script block, which is fragile and may conflict with CSP or be mistaken for an XSS pattern.
- •Example code contains placeholder values (admin_id, user_id, user@example.com) that must be replaced and validated.
Exemples
Add the Intercom messenger to my Next.js app and identify logged-in users with their plan and MRR as custom attributes.Write a server-side function that creates or updates an Intercom contact and then sends that user an in-app message.Track a completed-onboarding event in Intercom when a user finishes my onboarding flow, including plan and team size.name: intercom description: >- 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. license: Apache-2.0 compatibility: 'Any web app, iOS, Android' metadata: author: terminal-skills version: 1.0.0 category: business tags: - intercom - chat - support - onboarding - messaging
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: '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).
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/intercom-customer-messaging-mryiqi3a/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/intercom-customer-messaging-mryiqi3a' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/intercom-customer-messaging-mryiqi3a/download' --output '.skill-downloads/intercom-customer-messaging-mryiqi3a/SKILL.md.part' && mv '.skill-downloads/intercom-customer-messaging-mryiqi3a/SKILL.md.part' '.skill-downloads/intercom-customer-messaging-mryiqi3a/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Environnement déclaré par l’auteur : Any web app, iOS, Android
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/intercom-customer-messaging-mryiqi3a/SKILL.md' && test -s '.skill-downloads/intercom-customer-messaging-mryiqi3a/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/intercom' && cp -R '.skill-downloads/intercom-customer-messaging-mryiqi3a' '.claude/skills/intercom'Cursor
test -f '.skill-downloads/intercom-customer-messaging-mryiqi3a/SKILL.md' && test -s '.skill-downloads/intercom-customer-messaging-mryiqi3a/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/intercom' && cp -R '.skill-downloads/intercom-customer-messaging-mryiqi3a' '.cursor/skills/intercom'Codex
test -f '.skill-downloads/intercom-customer-messaging-mryiqi3a/SKILL.md' && test -s '.skill-downloads/intercom-customer-messaging-mryiqi3a/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/intercom' && cp -R '.skill-downloads/intercom-customer-messaging-mryiqi3a' '.agents/skills/intercom'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/intercom-customer-messaging-mryiqi3a'openskills read 'intercom-customer-messaging-mryiqi3a'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/intercom-customer-messaging-mryiqi3a/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Bonnes pratiques React Hook Form
Developpement
Maîtrisez React Hook Form : évitez les anti-patterns, gérez les abonnements, et traitez correctement reset, dirty state et entrées contrôlées.
Migration Emotion vers Mantine
Developpement
Migrer les styled-components Emotion vers des composants Mantine avec style props et modules CSS. Pour convertir .styled.tsx ou supprimer les imports @emotion.
Détecteur de dérive de périmètre
Developpement
Analyse les diffs git par rapport à une intention pour détecter la dérive de périmètre, fichiers non liés et PR trop larges, puis suggère de garder, diviser ou justifier.