adk-integrations
guidelines for discovering, adding, configuring, and using Botpress integrations in ADK projects - use when users ask about connecting services, managing dependencies, or using integration actions
What this skill does
# ADK Integration Management
Use this skill when helping users discover, add, configure, and use Botpress integrations in their ADK projects.
## When to Use This Skill
Activate this skill when users:
- Ask about integrations ("How do I add Slack?", "What integrations are available?")
- Want to connect an external service (Slack, WhatsApp, Linear, etc.)
- Mention `adk add`, `adk search`, `adk info`, or `adk list`
- Ask about `agent.config.ts` dependencies or the `dependencies.integrations` block
- Need help configuring an integration (OAuth, API keys, Dev Console)
- Ask about calling integration actions in code (`actions.slack.*`, etc.)
- Mention specific platforms or services they want their agent to interact with
- Get errors related to integration registration or configuration
## Available Documentation
| File | Description |
|------|-------------|
| [references/discovery.md](./references/discovery.md) | Finding integrations: `adk search`, `adk list`, `adk info` with all flags |
| [references/lifecycle.md](./references/lifecycle.md) | End-to-end walkthrough: discover, add, configure, use in code |
| [references/configuration.md](./references/configuration.md) | Configuration types: no-config, optional, OAuth, API key, sandbox |
| [references/common-integrations.md](./references/common-integrations.md) | Quick reference for chat, webchat, browser, slack, whatsapp, linear, webhook |
## How to Answer
1. **Start with CLI commands** — Use `adk search`, `adk info`, `adk list` to get live data before suggesting anything. Run these via the Bash tool.
2. **Confirm before running `adk add`** — Always ask the user before adding an integration to their project.
3. **Always specify version** — Use `adk add <name>@<version>` rather than just `adk add <name>`.
4. **Explain configuration requirements** — After adding, tell the user what configuration is needed (OAuth link, API key, etc.) based on `adk info --format json` output.
5. **Point to Dev Console** — OAuth flows and credential entry happen in the Botpress Dev Console, not in code.
## CLI Quick Reference
| Command | Description | Key Flags |
|---------|-------------|-----------|
| `adk search <query>` | Search integrations by keyword | `--format json`, `--limit <number>` (default: 20) |
| `adk list --available` | Browse all Hub integrations | `--format json`, `--limit <number>` (default: 50) |
| `adk list` | Show installed dependencies | `--format json`, `--limit <number>` (default: 50) |
| `adk info <name>` | Full integration details (integrations only, not plugins) | `--actions`, `--channels`, `--events`, `--full`, `--format json` |
| `adk add <name>@<version>` | Add integration to project | `--alias <name>`, `--format json` |
| `adk add plugin:<name>@<version>` | Add plugin to project | `--alias <name>`, `--format json` |
| `adk remove <name>` | Remove integration, plugin, or interface | `--format json` |
| `adk upgrade [name]` | Upgrade dependency (or all interactively) | `--format json` |
Use `--format json` for CLI inspection.
## Critical Patterns
### Always Use the CLI
```bash
# CORRECT - Use adk add
adk add [email protected]
adk add plugin:[email protected]
adk add interface:[email protected]
# WRONG - Never manually edit agent.config.ts dependencies
# Don't hand-write entries in the dependencies block
```
### Version Pinning
```bash
# CORRECT - Pin to specific version
adk add [email protected]
# RISKY - Resolves to latest, may change unexpectedly
adk add browser
```
### Accessing Integration Actions
```typescript
// CORRECT - Import from @botpress/runtime, use alias from agent.config.ts
import { actions } from '@botpress/runtime'
await actions.slack.sendMessage({ channel: '#general', text: 'Hello' })
// The alias in agent.config.ts determines the accessor name
// { browser: { version: '[email protected]', enabled: true } }
await actions.browser.webSearch({ query: 'search term' })
```
### Inspecting Config Requirements
```bash
# Use --format json to check what configuration an integration needs
adk info slack --format json
# Look at configuration.schema for required fields
# Look at configuration.identifier for OAuth
# Look at configurations for alternative config modes
```
## Examples of Questions This Skill Answers
### Beginner
- "What integrations are available?"
- "How do I add Slack to my agent?"
- "What is the browser integration?"
### Intermediate
- "How do I configure WhatsApp in sandbox mode?"
- "What actions does the webchat integration provide?"
- "How do I call a Linear action from my workflow?"
- "What's the difference between chat and webchat?"
### Advanced
- "How do I use a private workspace integration?"
- "What does `registration_pending` status mean?"
- "How do I alias an integration for cleaner code?"
- "How do I inspect an integration's config schema programmatically?"
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.