Skip to content

Partner Toolkits

Toolkits enable partners to define and deploy complete meeting experiences in a single declarative JSON document. Instead of making dozens of API calls to create templates, next steps, and action buttons individually, you define everything in one manifest and install it atomically.

New in v1.5

Toolkits are a major v1.5 feature. They dramatically simplify partner onboarding and enable version-controlled meeting configurations that can be tested, reviewed, and deployed like code.

Why Toolkits?

Before (Imperative) After (Declarative)
15+ API calls to set up a workflow 1 manifest, 1 API call
Manual dependency tracking Automatic reference resolution
Error-prone sequential setup Atomic install (all-or-nothing)
Hard to version control JSON file in your repo
Difficult to replicate across workspaces Same manifest, any workspace

Core Concepts

A toolkit manifest bundles four entity types that work together:

┌──────────────────────────────────────────────────────────────────────────┐
│                           TOOLKIT MANIFEST                               │
├──────────────────────────────────────────────────────────────────────────┤
│  ┌─────────────┐    ┌─────────────┐    ┌─────────────────────┐           │
│  │  Templates  │───▶│ Next Steps  │───▶│   Action Buttons    │           │
│  │             │    │             │    │                     │           │
│  │ Meeting     │    │ AI prompts  │    │ Email, clipboard,   │           │
│  │ structures  │    │ or redirects│    │ webhooks, downloads │           │
│  └─────────────┘    └─────────────┘    └─────────────────────┘           │
│         │                  │                      │                      │
│         └──────────────────┴──────────────────────┘                      │
│                    Cross-references via $ref                             │
│                                                                          │
│  ┌─────────────────────┐                                                 │
│  │     Shortcuts       │  Standalone AI prompt shortcuts                 │
│  │                     │  available on meeting surfaces                  │
│  │  Quick AI actions   │                                                 │
│  └─────────────────────┘                                                 │
└──────────────────────────────────────────────────────────────────────────┘

Templates

Meeting templates define the structure users see when creating meetings. Each template can reference next steps that appear after the meeting.

Next Steps

AI-powered prompts or redirect URLs that guide users after a meeting ends. Next steps can trigger action buttons for delivery.

Action Buttons

The final output mechanism — copy to clipboard, send email, download file, call webhook, or redirect to external URL.

Shortcuts

AI prompt shortcuts that appear on meeting surfaces (e.g., the home screen or in-meeting panel). Shortcuts provide quick one-tap access to AI-generated content — such as instant summaries, action item extraction, or custom prompts — without requiring a full next-step workflow.

Each shortcut can optionally declare surface configuration — an array of { surface, position } entries that control where the shortcut appears when the toolkit is installed. Available surfaces: HOME, MEETING_PREPARE, MEETING_RUN, MEETING_REVIEW, CANVAS. Positions range from 1 to 10.

Available Icons

Shortcuts support an optional icon field. The following icon keys are available (based on the Font Awesome icon set). If omitted, the default icon waveform-lines is used.

Icon Key Label Suggested Use
waveform-lines Waveform Audio / transcription (default)
briefcase-arrow-right :material-briefcase-arrow-right: Briefcase Right Handoff / export workflows
folder-arrow-down Folder Down Download / save
user-question User Question Q&A / participant queries
bullseye Bullseye Goals / objectives
folder-arrow-left Folder Left Import / ingest
square-list Square List Checklists / action items
message-question Message Question Discussion / prompts
paperclip Paperclip Attachments
bolt Bolt Quick actions / instant
chart-line-up Chart Up Analytics / trends
money-bill-1-wave Money Bill Finance / billing
clock-rotate-left Clock Rotate History / recap
lightbulb Lightbulb Ideas / insights

The Reference System

Manifests use a JSON Schema-inspired reference system to link entities:

  • $id — Assigns a manifest-local identifier to an entity
  • $ref — References another entity by its $id

This allows you to define entities once and reference them multiple times:

{
  "templates": [
    {
      "spec": {
        "$id": "sales-call",
        "name": "Sales Discovery Call",
        "description": "Initial sales discovery meeting"
      },
      "next_steps": [
        { "next_step": { "$ref": "follow-up-email" }, "sort_order": 1, "autopilot": false }
      ]
    }
  ],
  "next_steps": [
    {
      "spec": {
        "$id": "follow-up-email",
        "name": "Send Follow-up Email",
        "type": "ai",
        "ai_prompt": "Draft a follow-up email based on the meeting discussion."
      },
      "action_buttons": [
        { "action_button": { "$ref": "email-btn" }, "sort_order": 1 }
      ]
    }
  ],
  "action_buttons": [
    {
      "spec": {
        "$id": "email-btn",
        "name": "Send via Email",
        "delivery_mechanism": "email",
        "content_format": "rich_text"
      }
    }
  ]
}

When installed, Contio resolves all $ref pointers, creates the proper database relationships, and returns an entity map — a mapping of every $id in the manifest to the database UUID assigned to the created entity. This entity map is persisted on the installation record, so you can retrieve it at any time via GET /v1/partner/user/workspaces/{id}/toolkits. See Entity Lifecycle & Runtime Usage for details on using the entity map in your integration.

Quick Start

1. Create Your Toolkit

A toolkit is a provenance wrapper (name, slug, version) around a manifest (entity definitions). See Manifest Format for full details.

{
  "name": "My Standup Toolkit",
  "slug": "my-standup-toolkit",
  "version": "1.0.0",
  "manifest": {
    "schema_version": "1",
    "templates": [
      {
        "spec": {
          "$id": "standup",
          "name": "Daily Standup",
          "description": "15-minute team sync"
        }
      }
    ],
    "next_steps": [],
    "action_buttons": [],
    "shortcuts": []
  }
}

2. Install via Partner Admin API

// Create the toolkit
const toolkit = await sdk.admin.createToolkit({
  name: 'My Standup Toolkit',
  slug: 'my-standup-toolkit',
  version: '1.0.0',
  manifest: {
    schema_version: '1',
    templates: [
      {
        spec: {
          $id: 'standup',
          name: 'Daily Standup',
          description: '15-minute team sync'
        }
      }
    ]
  }
});

// Install on a workspace
await sdk.admin.installToolkit(toolkit.id, {
  workspace_id: 'ws_abc123'
});

3. Users See Your Templates

Once installed, workspace users can select your templates when creating meetings.

What's Next

  • Authoring Guide


    Step-by-step guide for building your own custom toolkits—from planning to production.

    Start Building

  • Manifest Format


    Understand the toolkit format: provenance wrapper, manifest schema, and entity referencing.

    Learn Format

  • JSON Schema Reference


    Complete field documentation generated from the API source code.

    View JSON Schema

  • Examples


    Real-world manifest examples including Robert's Rules toolkits.

    Browse Examples

  • Reference Patterns


    Advanced $ref and $id patterns for complex toolkits.

    Learn Patterns

  • Entity Lifecycle & Runtime Usage


    How to use the entity map, call runtime APIs, and manage entities through toolkit versions.

    Learn Lifecycle

  • Ownership & Distribution


    Understand ownership types, provenance vs. governance, and distribution strategies including marketplace models.

    Learn Ownership

API Endpoints

Admin API (API Key Authentication)

Manage toolkits and their components:

Endpoint Method Description
/v1/partner/admin/toolkits POST Create a new toolkit from manifest
/v1/partner/admin/toolkits GET List all toolkits
/v1/partner/admin/toolkits/{toolkitId} GET Retrieve toolkit details
/v1/partner/admin/toolkits/{toolkitId} PUT Update toolkit manifest
/v1/partner/admin/toolkits/{toolkitId} DELETE Delete toolkit
/v1/partner/admin/toolkits/{toolkitId}/export GET Export single toolkit manifest
/v1/partner/admin/toolkits/export POST Bulk export toolkit manifests

User API (OAuth Authentication)

Access installed toolkits and execute meeting actions:

Endpoint Method Description
/v1/partner/user/toolkits GET List available toolkits
/v1/partner/user/toolkits/{toolkitId}/install POST Install toolkit to workspace
/v1/partner/user/workspaces/{workspace_id}/toolkits GET List toolkits installed in workspace
/v1/partner/user/workspaces/{workspace_id}/toolkits/{toolkit_id} DELETE Uninstall toolkit from workspace
/v1/partner/user/meeting-templates GET List available meeting templates
/v1/partner/user/meeting-templates/{id} GET Get template details
/v1/partner/user/meeting-templates/{id}/apply POST Apply template to a meeting
/v1/partner/user/meeting-templates/{id}/next-steps GET List template's next steps
/v1/partner/user/meetings/{id}/next-steps GET Get next steps for a meeting
/v1/partner/user/meetings/{id}/next-steps/{next_step_id}/execute POST Execute a next step
/v1/partner/user/next-step-results/{result_id} GET Get execution result
/v1/partner/user/meetings/{id}/action-buttons GET Get action buttons for a meeting
/v1/partner/user/meetings/{id}/action-buttons/{button_id}/trigger POST Trigger an action button

See the OpenAPI specification for complete endpoint documentation.

SDK Usage

For TypeScript examples of working with Toolkits programmatically, see the SDK Examples Guide.