How your agent works.
Markdown procedures the agent can read at runtime, written by humans who know the domain.
cms 5
Localize an entry
Configure locales, author entries per language, and switch the org's default locale without breaking already-published entries.
Migrate content in bulk
Move entries from an external CMS (or between Munin collections) idempotently — preserve references, rewrite assets, reconcile schema drift.
Publish a CMS entry
Move a CMS entry through draft → published — immediate, scheduled, or rolled back — without losing work to optimistic-lock conflicts.
Review stale entries
Periodic curator pass — find drafts that have stalled, published entries that haven't been touched in months, and orphaned assets. Reports findings with recommended actions. No persistence layer; the operator reviews the curator-runner's log/reply and acts manually via existing CMS tools.
Upload an asset and embed it
Two-phase asset upload (request presigned URL → PUT binary → complete), embed in entries, and audit unused assets.
conv 5
Escalate a conversation to a human
How an external chat-widget bot detects that a human/agent in Munin has replied and yields the conversation.
Set up a chat widget
Provision a per-channel widget API key, push transcripts via POST /api/v1/widget/messages, and wire the human-handoff webhook.
Set up email and chat-widget channels together
Stand up email + widget conversation channels for a new tenant in one pass — configure, test, hand off.
Set up an email channel
Configure SMTP outbound and optional IMAP inbound for an email channel, then verify the credentials.
Strip the signature from an inbound email message
Cleanup pass that removes the sender's sign-off and contact block from an inbound email body that has already had its quoted reply stripped, then writes the cleaned body back via `conv_strip_message_signature`.
crm 6
Clean up contact data
Periodic curator pass — find duplicate / inconsistent contacts, file high-confidence pairs as structured merge proposals via crm_propose_merge_candidate. Designed to be run on a cadence by an admin agent (weekly is a good default). The operator reviews via crm_list_merge_proposals and resolves with crm_apply_merge_proposal / crm_dismiss_merge_proposal.
Deduplicate contacts
Find duplicate contacts (same person, multiple rows) and consolidate them. There is no merge tool — this skill documents the manual reconcile pattern.
Extract a contact from a message
When a conversation closes, read the thread for identifying info the end-user volunteered (name, email, phone, company, title) and persist it to the CRM as a contact — auto-applied, no proposal queue. Designed to fire on every `conversation.closed` event so visitor-volunteered identity becomes structured CRM data without operator intervention.
Import and score leads
Bulk-import contacts, attach them to companies and a deal pipeline, log the source touchpoint, and seed AI summaries for downstream prioritization.
Onboard a new customer
Recommended sequence for capturing a new customer, attaching them to a company, and seeding the AI summary that drives later prioritization.
Progress a deal through the pipeline
Move a deal through pipeline stages with the right activity log at each gate, then refresh AI summary so prioritization stays fresh.
kb 4
Create the first knowledge-base space
Stand up a fresh org's knowledge base — pick a space taxonomy, create the first space, optionally seed a welcome doc.
Import articles in bulk from CSV or JSON
Generalized bulk import pipeline for KB articles from any structured source. Companion to import-from-google-docs — that one covers chunking; this one covers source handling and idempotency.
Import knowledge from Google Docs (or any text source)
Bulk-load articles into the knowledge base, sized for vector search and FTS to perform well.
Review and curate content
How an admin agent turns resolved-handover conversations into KB documents, so the next end-user with the same question gets a real answer instead of another handover.
outreach 2
Draft an initial outreach email
Periodic curator pass that drafts personalised first-touch outreach emails for every enabled campaign. One pending proposal per (campaign, contact). Drafts go into the operator review queue — never auto-send. Runs weekly by default; the operator approves each draft before it leaves the org.
Draft an outreach reply
Per-message curator pass that drafts a suggested reply when an inbound message lands on an outreach-originated conversation. Drafts go to the operator review queue — never auto-send. Triggered event-driven from `conversation.message.received` whenever the conversation has an `outreachCampaignId` and `agentMode='draft_only'`.
playbooks 3
Customer acquisition (CRM + Conv)
End-to-end flow from a fresh lead list to first conversation — bulk-import contacts, send a welcome email, log the touchpoint, hand off to a human if interest signals fire.
Publish and distribute (CMS + KB + Conv)
Author content in the CMS, mirror the parts that should be searchable to the KB, and announce the publish to a conversation channel.
Support desk launch (Conv + CRM + KB)
Stand up a working support desk for a new tenant — channels, contacts, knowledge base — so the first ticket has tooling around it.