Extensions & Marketplace
Extensions add new capabilities to Spun — install from the Marketplace or build your own with the Extension SDK.
What are Extensions?
Extensions are mini-apps that run inside Spun, adding features like:
- Custom contact detail panels
- Third-party integrations (Stripe, Shopify, etc.)
- Specialized automation tools
- Industry-specific workflows
Installing extensions
- Navigate: Sidebar → Extensions (Puzzle icon)
- Browse the Marketplace — categorized catalog
- Click "Install" on any extension
- Grant permissions — review what data the extension can access
- Configure — some extensions need API keys or settings
Extension types
| Type | What it does | Example |
|---|---|---|
| Panel | Adds a sidebar panel or contact detail section | CRM viewer, order lookup |
| Action | Adds actions to the message/chat context menu | "Create invoice", "Add to CRM" |
| Automation | Adds triggers/actions to Chat Flows | "When payment received → label as Paid" |
| Widget | Embeds a UI in the chat composer | Product selector, appointment picker |
Popular extensions
- Contact Notes — Rich notes with formatting on each contact
- Classes & Workshops — Session scheduling and enrollment tracking
- Creator Hub — Content creation tools for social/marketing teams
Building your own
Extension SDK
Spun provides an SDK for building custom extensions:
- Scaffold:
npx create-spun-extension my-extension - Develop: Write your extension using the SDK APIs
- Test: Local dev server with hot reload
- Publish: Submit to the Marketplace (or keep private to your org)
SDK APIs available
spun.contacts— read/write contactsspun.messages— read messages, send messagesspun.labels— read/apply labelsspun.ui— render panels, modals, notificationsspun.storage— key-value storage per orgspun.webhooks— register webhook handlers
Developer Portal
Settings → Developer Portal gives you:
- API key management
- Extension submission
- Usage analytics
- Webhook configuration
Permissions model
Extensions request specific permissions:
contacts:read— view contactscontacts:write— edit contactsmessages:read— read messagesmessages:send— send messageslabels:manage— create/apply labelsstorage:write— save data
You approve these on install. Extensions cannot exceed their granted permissions.
Related
- Developer Portal — API keys and submission
- Webhooks — event-driven integrations
- Chat Flows — automation that extensions can enhance