Loading...
Loading...
Access to Plain customer support platform. Read customers, threads, timeline, and help center content. Add notes to threads. Create, update, and publish help center articles.
npx skill4agent add team-plain/plain-support plain-supportPLAIN_API_KEYcurljq# List customers
scripts/plain-api.sh customer list --first 10
# Get customer by ID
scripts/plain-api.sh customer get c_01ABC...
# Get customer by email
scripts/plain-api.sh customer get-by-email user@example.com
# Get customer by external ID
scripts/plain-api.sh customer get-by-external-id your-system-id
# Search customers
scripts/plain-api.sh customer search "john doe"# List threads (TODO status by default)
scripts/plain-api.sh thread list --first 20
# List all threads including done
scripts/plain-api.sh thread list --status all
# List done threads
scripts/plain-api.sh thread list --status DONE
# List threads by priority
scripts/plain-api.sh thread list --priority urgent
scripts/plain-api.sh thread list --priority high
scripts/plain-api.sh thread list --status TODO --priority low
# Get thread details
scripts/plain-api.sh thread get th_01ABC...
# Search threads
scripts/plain-api.sh thread search "billing issue"
# Get thread timeline (all messages, events, status changes)
scripts/plain-api.sh thread timeline th_01ABC... --first 50
# Paginate through timeline
scripts/plain-api.sh thread timeline th_01ABC... --first 20 --after "cursor_from_previous_page"
# Add a note to a thread (internal note, not visible to customer)
scripts/plain-api.sh thread note th_01ABC... --text "This is an internal note"
# Add a note with markdown formatting
scripts/plain-api.sh thread note th_01ABC... --text "Note text" --markdown "**Bold** and *italic*"
# Add a note from a file (for longer notes)
scripts/plain-api.sh thread note th_01ABC... --text-file /path/to/note.txt| Option | Required | Description |
|---|---|---|
| Yes* | Plain text content of the note |
| Yes* | Path to file containing note text |
| No | Markdown formatted version of the note |
--text--text-file| Option | Description |
|---|---|
| Filter by status: |
| Filter by priority: |
| Filter by customer ID |
| Number of results (default: 10) |
urgenthighnormallow# List companies
scripts/plain-api.sh company list --first 10
# Get company by ID
scripts/plain-api.sh company get co_01ABC...# List tenants
scripts/plain-api.sh tenant list --first 10
# Get tenant by ID
scripts/plain-api.sh tenant get ten_01ABC...# List available label types
scripts/plain-api.sh label list --first 20# List help centers
scripts/plain-api.sh helpcenter list
# Get help center details
scripts/plain-api.sh helpcenter get hc_01ABC...
# List articles in help center
scripts/plain-api.sh helpcenter articles hc_01ABC... --first 20
# Get article by ID
scripts/plain-api.sh helpcenter article get hca_01ABC...
# Get article by slug
scripts/plain-api.sh helpcenter article get-by-slug hc_01ABC... my-article-slug
# Create new article (defaults to DRAFT status)
scripts/plain-api.sh helpcenter article upsert hc_01ABC... \
--title "How to reset password" \
--description "Step-by-step guide for resetting your password" \
--content "<h1>Reset Password</h1><p>Follow these steps...</p>"
# Create and publish article directly
scripts/plain-api.sh helpcenter article upsert hc_01ABC... \
--title "Getting Started" \
--description "Quick start guide for new users" \
--content "<p>Welcome!</p>" \
--status PUBLISHED
# Update existing article
scripts/plain-api.sh helpcenter article upsert hc_01ABC... \
--id hca_01ABC... \
--title "Updated Title" \
--description "Updated description" \
--content "<p>New content</p>"
# Use --content-file for large HTML content (recommended)
scripts/plain-api.sh helpcenter article upsert hc_01ABC... \
--title "Detailed Guide" \
--description "Comprehensive documentation" \
--content-file /path/to/article.html \
--status PUBLISHED
# Get article group
scripts/plain-api.sh helpcenter group get hcag_01ABC...
# Create article group
scripts/plain-api.sh helpcenter group create hc_01ABC... --name "Getting Started"
# Create nested article group
scripts/plain-api.sh helpcenter group create hc_01ABC... --name "Advanced Topics" --parent hcag_01PARENT...
# Update article group
scripts/plain-api.sh helpcenter group update hcag_01ABC... --name "New Group Name"
# Delete article group
scripts/plain-api.sh helpcenter group delete hcag_01ABC...| Option | Required | Description |
|---|---|---|
| Yes | Article title |
| Yes | Short description (shown in article lists) |
| Yes* | HTML content (inline) |
| Yes* | Path to file containing HTML content |
| No | Article ID (for updates) |
| No | Article group ID |
| No | DRAFT (default) or PUBLISHED |
--content--content-file--content-filelink{
"data": { ... },
"link": "https://app.plain.com/workspace/w_01.../help-center/hc_01.../articles/hca_01.../"
}# List tiers with SLA configurations
scripts/plain-api.sh tier list
# Get tier details
scripts/plain-api.sh tier get tier_01ABC...# Get current workspace info
scripts/plain-api.sh workspacecustomer get c_...customer get-by-email user@example.comthread list --customer c_... --status allthread get th_...thread timeline th_... --first 100thread get th_...thread timeline th_... --first 50EmailEntryChatEntrySlackMessageEntry--afterpageInfo.endCursorthread search "issue keyword"thread note th_... --text "Investigation notes here"thread timeline th_... --first 5helpcenter list/tmp/article.htmlhelpcenter article upsert hc_... \
--title "Article Title" \
--description "Short description" \
--content-file /tmp/article.html \
--status PUBLISHED| Variable | Required | Description |
|---|---|---|
| Yes | Your Plain API key |
| No | API endpoint (default: |
jq# Get just customer name
scripts/plain-api.sh customer get c_01ABC... | jq '.data.customer.fullName'
# Get thread IDs
scripts/plain-api.sh thread list | jq '.data.threads.edges[].node.id'
# Get timeline message content
scripts/plain-api.sh thread timeline th_01ABC... | jq '.data.thread.timelineEntries.edges[].node.entry'
# Get link from article creation
scripts/plain-api.sh helpcenter article upsert hc_... --title "Test" --content "<p>Test</p>" | jq -r '.link'