From intercom-pack
Installs intercom-client TypeScript SDK and configures Intercom API authentication via access tokens or OAuth. For new integrations or API credential setup.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin intercom-packThis skill is limited to using the following tools:
Set up the official `intercom-client` TypeScript SDK and configure authentication via access tokens (private apps) or OAuth (public apps).
Configures Intercom enterprise OAuth scopes, admin roles, and app-level access control using TypeScript client examples.
Installs HubSpot API client SDK and configures authentication via private app tokens or OAuth 2.0 for Node.js and Python projects.
Configures Instantly.ai API v2 authentication: generates scoped keys, sets .env vars via bash, and creates TypeScript REST client wrapper.
Share bugs, ideas, or general feedback.
Set up the official intercom-client TypeScript SDK and configure authentication via access tokens (private apps) or OAuth (public apps).
npm install intercom-client
The package exports IntercomClient and all TypeScript types under the Intercom namespace.
Access tokens authenticate private apps that access your own Intercom workspace.
import { IntercomClient } from "intercom-client";
const client = new IntercomClient({
token: process.env.INTERCOM_ACCESS_TOKEN!,
});
Store the token securely:
# .env (add to .gitignore)
INTERCOM_ACCESS_TOKEN=dG9rOmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
# Verify .gitignore includes .env
echo '.env' >> .gitignore
async function verifyConnection() {
try {
// List admins to verify the token works
const admins = await client.admins.list();
console.log("Connected! Admins:", admins.admins.length);
for (const admin of admins.admins) {
console.log(` - ${admin.name} (${admin.email})`);
}
} catch (error) {
if (error instanceof Error) {
console.error("Connection failed:", error.message);
}
}
}
verifyConnection();
For apps that access other workspaces, configure OAuth:
// Step 1: Redirect user to Intercom authorization
const authUrl = `https://app.intercom.com/oauth?client_id=${CLIENT_ID}&state=${STATE}`;
// Step 2: Exchange code for token at your callback endpoint
async function handleOAuthCallback(code: string): Promise<string> {
const response = await fetch("https://api.intercom.io/auth/eagle/token", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
client_id: process.env.INTERCOM_CLIENT_ID,
client_secret: process.env.INTERCOM_CLIENT_SECRET,
code,
}),
});
const data = await response.json();
return data.token; // Use this token for API calls
}
// Step 3: Initialize client with OAuth token
const client = new IntercomClient({ token: oauthToken });
Specify the API version header to pin behavior:
const client = new IntercomClient({
token: process.env.INTERCOM_ACCESS_TOKEN!,
});
// All requests use Bearer token in Authorization header:
// Authorization: Bearer <token>
// Intercom-Version: 2.11
The current stable API version is 2.11. The SDK handles this automatically.
| Scope | Access Granted |
|---|---|
| Read admins | List workspace admins |
| Read/write contacts | Create, update, search contacts |
| Read/write conversations | Manage conversations and replies |
| Read/write messages | Send outbound messages |
| Read/write articles | Manage Help Center content |
| Read/write tags | Tag contacts, companies, conversations |
| Read/write events | Submit and read data events |
| Read/write companies | Manage company records |
| Error | HTTP Code | Cause | Solution |
|---|---|---|---|
unauthorized | 401 | Invalid or expired token | Regenerate in Developer Hub |
forbidden | 403 | Missing OAuth scope | Add required scope in app config |
token_revoked | 401 | Token was revoked | Generate new access token |
invalid_grant | 400 | OAuth code expired | Restart OAuth flow |
import { IntercomError } from "intercom-client";
try {
await client.contacts.list();
} catch (error) {
if (error instanceof IntercomError) {
console.error(`Intercom error: ${error.statusCode} - ${error.message}`);
if (error.statusCode === 401) {
console.error("Token invalid. Regenerate at app.intercom.com > Developer Hub");
}
}
}
After successful auth, proceed to intercom-hello-world for your first API call.