Help article from a solved ticket
Tag a solved ticket kb and your helpdesk posts it to a webhook. Claude Code reads the conversation, searches your help center for an article that already covers it, and writes either a new article or the changes to the existing one, with no customer details. You approve it, and it goes to your help center as a draft.
- Draft article Claude Code · Sonnet
- Approve article You
- Send to help center Shell
What each step does
Draft article
Claude Code · SonnetChecks your help center for an existing article and drafts a new one or an update.
Approve article
YouShows you the article. Reject with a comment and it is rewritten.
Send to help center
ShellSends the draft to your help center through a webhook.
From copy to first run
- Copy the pipeline JSON with the button above.
- In Jimothy, open Pipelines → New pipeline, paste it under “Or import a pipeline JSON” and click Import.
- Fill in the variables below under Pipeline settings → Variables.
- Triggers → Add trigger → Webhook. Have your helpdesk post solved tickets tagged kb with title (subject), description (the full conversation) and key.
What to fill in
The prompts and commands read these as {{vars.<name>}}. The examples are placeholders: replace them with your own.
| Variable | What to put in it | Example |
|---|---|---|
helpCenterUrl | Your help center’s address, searched for existing articles. | https://help.acme.example |
style | How your help articles are written. | Title as the question customers ask. One-line answer first, then numbered steps with exa… |
helpCenterWebhookUrl | Where drafts go, e.g. a Zapier hook that creates a draft in Zendesk Guide, Intercom or HelpScout Docs. | — |
Show the pipeline JSON
{
"jimothyPipeline": 1,
"name": "Help article from a solved ticket",
"description": "Drafts a help article, or an update to an existing one, from a solved support conversation.",
"icon": "sparkles",
"color": "#d97706",
"repo": {
"mode": "scratch"
},
"concurrency": 2,
"variables": {
"helpCenterUrl": "https://help.acme.example",
"style": "Title as the question customers ask. One-line answer first, then numbered steps with exact button and menu names. Second person, present tense. No screenshots referenced.",
"helpCenterWebhookUrl": ""
},
"steps": [
{
"id": "draft",
"name": "Draft article",
"type": "agent",
"description": "Checks your help center for an existing article and drafts a new one or an update.",
"harnessId": "claude-code",
"model": "sonnet",
"timeoutMinutes": 20,
"prompt": "A support ticket was solved and tagged for the knowledge base.\n\nSubject: {{issue.title}}\nConversation:\n{{issue.description | truncate:30000}}\n\nSearch {{vars.helpCenterUrl}} for an article that already covers this. Then write either:\n- \"UPDATE: <article URL>\" on the first line, followed by the full revised article, if one exists; or\n- \"NEW\" on the first line, followed by a new article.\n\nStyle: {{vars.style}}\nUse the agent's working answer from the conversation, not the customer's guesses. Leave out every customer detail: names, emails, company names, account ids. Markdown, starting with a # title after the first line.{{#if steps.approve.output}}\n\nYour previous draft was rejected with this feedback. Rewrite it:\n{{steps.approve.output}}{{/if}}"
},
{
"id": "approve",
"name": "Approve article",
"type": "approval",
"description": "Shows you the article. Reject with a comment and it is rewritten.",
"dependsOn": [
"draft"
],
"loopBackTo": "draft",
"maxLoops": 3,
"approvalMessage": "Send this article to the help center as a draft?\n\n---\n\n{{steps.draft.output}}"
},
{
"id": "publish",
"name": "Send to help center",
"type": "shell",
"description": "Sends the draft to your help center through a webhook.",
"dependsOn": [
"approve"
],
"timeoutMinutes": 2,
"command": "printf '{\"ticket\":%s,\"action\":%s,\"article\":%s}' {{issue.key | json}} {{steps.draft.output | first_line | json}} {{steps.draft.output | json}} | curl -fsS -X POST -H 'Content-Type: application/json' --data @- {{vars.helpCenterWebhookUrl}}"
}
]
}More for support, and beyond
Bug report → engineering ticket
Turns a customer’s bug report into an engineering-ready GitHub issue: reproduction steps, the code likely involved and possible duplicates.
SupportWeekly support trends
Reads the week’s ticket export and reports the top themes, what’s rising, and which docs or bugs would cut volume most.
SupportAt-risk customer alert
Scores every new ticket or bad CSAT rating for churn risk and alerts the account owner, with a suggested save play, only when it’s high.