Manage third-party integrations for a Butterbase app (e.g., Gmail, Slack, Google Calendar).
Actions:
- "configure": Enable or manage a third-party integration toolkit for an app
- "disable": Disable a configured integration toolkit
- "list_available": List available integrations that can be enabled (curated or full catalog)
- "list_connected": List connected integration accounts for an app
- "list_tools": List available tool actions for connected integrations
- "execute_action": Execute a tool action on a connected integration (e.g., send email, create event)
Parameters by action:
configure: { app_id, action: "configure", toolkit, scopes?, display_name? }
disable: { app_id, action: "disable", toolkit }
list_available: { app_id, action: "list_available", search? }
list_connected: { app_id, action: "list_connected" }
list_tools: { app_id, action: "list_tools", toolkit? }
execute_action: { app_id, action: "execute_action", tool_name, params?, user_id? }
Curated toolkits (first-class support):
gmail, google-calendar, slack, google-sheets, notion, github, hubspot, outlook, google-drive, discord
Example — configure:
Input: { app_id: "app_abc123", action: "configure", toolkit: "gmail", scopes: ["gmail.send"] }
Output: { id: "...", toolkit_slug: "gmail", enabled: true }
Example — list_available:
Input: { app_id: "app_abc123", action: "list_available" }
Output: { integrations: [{ toolkit: "gmail", displayName: "Gmail", curated: true }, ...] }
Example — list_connected:
Input: { app_id: "app_abc123", action: "list_connected" }
Output: { connections: [{ toolkit_slug: "gmail", status: "active", connected_at: "..." }, ...] }
Example — list_tools:
Input: { app_id: "app_abc123", action: "list_tools", toolkit: "gmail" }
Output: { tools: [{ name: "GMAIL_SEND_EMAIL", description: "Send an email", parameters: {...} }, ...] }
Example — execute_action (send email):
Input: { app_id: "app_abc123", action: "execute_action", tool_name: "GMAIL_SEND_EMAIL", params: { to: "user@example.com", subject: "Hello", body: "World" } }
Output: { successful: true, data: { messageId: "..." } }
Common errors:
- INTEGRATIONS_NOT_CONFIGURED: Integration API key not set
- INTEGRATIONS_NOT_CONNECTED: User hasn't connected this integration
- INTEGRATIONS_EXECUTION_FAILED: Integration tool execution failed
- RESOURCE_NOT_FOUND: App doesn't exist