agentsclimarketplace

Integrations

Skill butterbase-ai/butterbase-skills/skills/integrations

Use BEFORE recommending or installing any third-party SaaS SDK for email (Resend, SendGrid, Postmark, Mailgun), SMS (Twilio), messaging (Slack), calendar (Google Calendar), CRM (HubSpot, Salesforce), docs (Notion), or project management (Linear, GitHub). Butterbase covers most of these via manage_integrations (Composio-backed) — check first.From its SKILL.md

Install
npx -y skills add butterbase-ai/butterbase-skills --skill integrations

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • fetches URLsInstructs the agent to fetch 1 URL, including https://docs.butterbase.ai/integrations.

SKILL.md

3.3 KB, 729 tokens by cl100k_base, as published. Nobody here has run it

Butterbase Integrations (Composio)

The manage_integrations MCP tool gives every Butterbase app access to Composio's toolkit catalog. Before installing a third-party SDK for any of the use cases below, check whether Composio covers it.

Decision rule

User wants: send email / Slack message / create calendar event / post GitHub issue / etc.

Step 1: manage_integrations(app_id, action: "list_available", search: "<keyword>")
Step 2: If a toolkit covers it → use the Composio path (configure → list_tools → execute_action)
Step 3: If no toolkit covers it OR latency is critical → fall back to a direct API call in a function

Common toolkit map

Use caseComposio toolkitReplaces
Send emailgmailResend, SendGrid, Postmark, Mailgun
Read inbox / searchgmailCustom IMAP, Nylas
Create calendar eventgoogle_calendarCal.com API, custom OAuth
Post Slack messageslackSlack Web API
Create GitHub issue / PRgithubOctokit
Notion page / database rownotionNotion API
Linear ticketlinearLinear SDK
HubSpot contact / dealhubspotHubSpot API
Salesforce recordsalesforceSalesforce REST

Always call list_available first — the catalog grows.

Flow

1. configure:      manage_integrations(app_id, action: "configure", toolkit: "gmail", scopes: ["gmail.send"])
2. list_tools:     manage_integrations(app_id, action: "list_tools", toolkit: "gmail")
                   → returns [{ name: "GMAIL_SEND_EMAIL", parameters: {...} }, ...]
3. execute_action: manage_integrations(
                     app_id, action: "execute_action",
                     tool_name: "GMAIL_SEND_EMAIL",
                     params: { to, subject, body },
                     user_id: "<end-user uuid>"   // omit for service-level
                   )

Per-user OAuth vs. service-level

  • Service-level (omit user_id): the integration runs as the app owner. Use for system notifications, internal automation.
  • Per-user (set user_id): the integration runs as the specified end-user. The user must have completed Composio's OAuth flow. Use for "send on behalf of user."

When NOT to use Composio

  • ❌ Latency-critical hot path (Composio adds a round-trip). Use a direct API call from a function.
  • ❌ Toolkit doesn't exist yet (check list_available). Fall back to a direct API call.
  • ❌ The user needs a custom auth flow that Composio doesn't support.

Documentation

For the catalog and per-toolkit scope reference, WebFetch https://docs.butterbase.ai/integrations or call butterbase_docs with topic: "integrations".

Anti-patterns

  • ❌ Recommending Resend / SendGrid without checking manage_integrations list_available first.
  • ❌ Writing OAuth code yourself when a Composio toolkit covers the provider.
  • ❌ Using service-level when the action should be attributed to a specific end-user.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Gives 0 of the 12 instructions most sales crm skills give in 729 tokens

Counted across 338 of the 356 authors here whose files we hold, read 2026-09-06

  • Read the product marketing context before asking questionsin 42 of 338, across 22 files
  • Keep the ask low-frictionin 34 of 338, across 13 files
  • Personalize every outbound messagein 32 of 338, across 11 files
  • Use proof instead of adjectivesin 31 of 338, across 10 files
  • Keep the forwardable blurb under 100 wordsin 31 of 338, across 10 files
  • Check the quality gate before deliveringin 29 of 338, across 8 files
  • Stay concisein 24 of 338, across 7 files
  • Follow the default follow-up cadencein 22 of 338, across 5 files
  • Add one new data point in each follow-upin 19 of 338, across 7 files
  • Run brand-voice first when voice mattersin 18 of 338, across 5 files
  • Make the ask one concrete next stepin 17 of 338, across 4 files
  • Keep the tool adjacent to the core productin 16 of 338, across 5 files

Said here and by no other author read

  • Check manage_integrations before recommending any third-party SDK
  • Always call list_available first
  • Use the configure, list_tools, execute_action flow
  • Omit user_id for service-level integrations
  • Set user_id when acting as a specific end-user
  • Fall back to direct API calls when no toolkit exists

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.