pp-intercom
Every Intercom resource as a typed CLI with offline sync and EU/AU regions. Trigger phrases: `search intercom conversations`, `tag intercom conversations in bulk`, `intercom contact 360`, `intercom SLA report`, `pull intercom articles`, `use intercom-pp-cli`, `run intercom-pp-cli`.
What this skill does
<!-- GENERATED FILE — DO NOT EDIT.
This file is a verbatim mirror of library/sales-and-crm/intercom/SKILL.md,
regenerated post-merge by tools/generate-skills/. Hand-edits here are
silently overwritten on the next regen. Edit the library/ source instead.
See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->
# Intercom — Printing Press CLI
## Prerequisites: Install the CLI
This skill drives the `intercom-pp-cli` binary. **You must verify the CLI is installed before invoking any command from this skill.** If it is missing, install it first:
1. Install via the Printing Press installer. It defaults binaries to `$HOME/.local/bin` on macOS/Linux and `%LOCALAPPDATA%\Programs\PrintingPress\bin` on Windows:
```bash
npx -y @mvanhorn/printing-press-library install intercom --cli-only
```
2. Verify: `intercom-pp-cli --version`
3. Ensure the reported install directory is on `$PATH` for the agent/runtime that will invoke this skill.
If the `npx` install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.3 or newer):
```bash
go install github.com/mvanhorn/printing-press-library/library/sales-and-crm/intercom/cmd/intercom-pp-cli@latest
```
If `--version` reports "command not found" after install, the runtime cannot see the binary directory on `$PATH`. Do not proceed with skill commands until verification succeeds.
## When to Use This CLI
Use intercom-pp-cli when you need to run the same Intercom operation across many records, when the official MCP doesn't reach your workspace (EU/AU), when you need offline analytics the API doesn't compute (first-response SLA, contact 360 joins), or when you're building an agent that triages, tags, or summarizes conversations and needs every Intercom action as a callable tool.
## When NOT to Use This CLI
- **Fin AI agent runtime.** Fin's `/fin/start` and `/fin/reply` endpoints stream over webhooks; this CLI can't drive an interactive Fin session.
- **Intercom billing or workspace administration.** Subscription tier changes, seat counts, and billing details aren't on the public REST surface and aren't part of this CLI.
- **Messenger SDK install or in-app message rendering.** This is a server-side REST client; for embedding the Messenger in a product, use Intercom's web/mobile SDKs.
- **Conversation rebalancing across teams as a routing engine.** Run the `runAssignmentRules` endpoint instead; this CLI doesn't expose a custom router.
## Unique Capabilities
These capabilities aren't available in any other tool for this API.
### Incident response and bulk ops
- **`conversations incident-tag`** — Tag every conversation mentioning a phrase in a time window with one safe-by-default command.
_When an incident hits, tagging 50 conversations by hand is the bottleneck; this is the single command that closes the loop without spreadsheets._
```bash
intercom-pp-cli conversations incident-tag --mentions "checkout fails" --since 24h --tag incident-2026-05-24 --apply
```
### Help center as code
- **`articles pull`** — Flatten every help-center article into a markdown tree you can edit in git, then push changes back.
_Lets docs teams version-control help-center content alongside product code; multilingual articles land as sibling files._
```bash
intercom-pp-cli articles pull --to ./articles/
```
### Local-only analytics
- **`contact 360`** — One nested payload joining a contact across companies, conversations, tickets, notes, and tags.
_Replaces 4-6 separate API calls and a mental merge; this is the lookup an agent makes before every triage decision._
```bash
intercom-pp-cli contact 360 [email protected] --agent
```
- **`conversations sla`** — First-response and resolution-time metrics grouped by team or admin, computed over the local store.
_Replaces the weekly export-to-spreadsheet ritual; the API alone can't compute this in one call._
```bash
intercom-pp-cli conversations sla --group-by team --metric first-response,resolution --since 7d --agent
```
## Command Reference
**admins** — Everything about your Admins
- `intercom-pp-cli admins list` — You can fetch a list of admins for a given workspace.
- `intercom-pp-cli admins list-activity-logs` — You can get a log of activities by all admins in an app.
- `intercom-pp-cli admins retrieve` — You can retrieve the details of a single admin.
**ai** — Manage ai
- `intercom-pp-cli ai create-content-import-source` — You can create a new content import source by sending a POST request to this endpoint.
- `intercom-pp-cli ai create-external-page` — You can create a new external page by sending a POST request to this endpoint.
- `intercom-pp-cli ai delete-content-import-source` — You can delete a content import source by making a DELETE request this endpoint.
- `intercom-pp-cli ai delete-external-page` — Sending a DELETE request for an external page will remove it from the content library UI and from being used for AI
- `intercom-pp-cli ai get-content-import-source` — Retrieve a content import source
- `intercom-pp-cli ai get-external-page` — You can retrieve an external page.
- `intercom-pp-cli ai list-content-import-sources` — You can retrieve a list of all content import sources for a workspace.
- `intercom-pp-cli ai list-external-pages` — You can retrieve a list of all external pages for a workspace.
- `intercom-pp-cli ai update-content-import-source` — You can update an existing content import source.
- `intercom-pp-cli ai update-external-page` — You can update an existing external page (if it was created via the API).
**articles** — Everything about your Articles
- `intercom-pp-cli articles create` — You can create a new article by making a POST request to `https://api.intercom.io/articles`.
- `intercom-pp-cli articles delete` — You can delete a single article by making a DELETE request to `https://api.intercom.io/articles/<id>`.
- `intercom-pp-cli articles list` — You can fetch a list of all articles by making a GET request to `https://api.intercom.io/articles`.
- `intercom-pp-cli articles retrieve` — You can fetch the details of a single article by making a GET request to `https://api.intercom.io/articles/<id>`.
- `intercom-pp-cli articles search` — You can search for articles by making a GET request to `https://api.intercom.io/articles/search`.
- `intercom-pp-cli articles update` — You can update the details of a single article by making a PUT request to `https://api.intercom.io/articles/<id>`.
**companies** — Everything about your Companies
- `intercom-pp-cli companies create-or-update-company` — You can create or update a company.
- `intercom-pp-cli companies delete-company` — Delete a single company. This endpoint does not permanently remove the company.
- `intercom-pp-cli companies list-all` — You can list companies.
- `intercom-pp-cli companies retrieve-acompany-by-id` — You can fetch a single company.
- `intercom-pp-cli companies retrieve-company` — You can fetch a single company by passing in `company_id` or `name`. `https://api.intercom.io/companies?
- `intercom-pp-cli companies scroll-over-all` — The `list all companies` functionality does not work well for huge datasets
- `intercom-pp-cli companies update-company` — You can update a single company using the Intercom provisioned `id`.
**contacts** — Everything about your contacts
- `intercom-pp-cli contacts create` — You can create a new contact (ie. user or lead).
- `intercom-pp-cli contacts delete` — You can delete a single contact.
- `intercom-pp-cli contacts list` — You can fetch a list of all contacts (ie. users or leads) in your workspace.
- `intercom-pp-cli contacts merge` — You can merge a contact with a `role` of `lead` into a contact with a `role` of `user`.
- `intercom-pp-cli contacts search` — You can search for multiple contacts by the value of their attributes in order to fetch exactly who you want.
- `intercom-pp-cli contacts show` — You can fetch the details of a Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.