Kapso provides two powerful ways to integrate with popular apps like Slack, Google Calendar, Gmail, and thousands more:
  1. Configured Actions - Pre-configure specific actions with templates and variables
  2. Connected Accounts + API Proxy - Direct API access to any endpoint using OAuth credentials

Prerequisites

  • A Kapso project
  • App integrations addon enabled

Enable the App integrations addon

  1. Go to Project Settings → Billing
  2. In the Addons section, toggle on App integrations

Method 1: Configured Actions

Configured actions let you pre-configure specific app actions with templates and reusable variables. Perfect for common operations you’ll use repeatedly.

Example: Slack Message Template

  1. Navigate to Tools → App integrations
  2. Click Configure New Action
  3. Search for “Slack” and select it
  4. Choose “Send Message to Channel”
  5. Connect your Slack account (OAuth)
  6. Configure the action:
    Channel: #general
    Text: New order from {{customerName}}: {{orderDetails}}
    
  7. Name it “New Order Notification”
  8. Click Save

Using Configured Actions

Via API

curl -X POST https://app.kapso.ai/api/v1/integrations/YOUR_INTEGRATION_ID/invoke \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "customerName": "John Doe",
    "orderDetails": "2x Widget Pro"
  }'

In Agents (SubagentNode)

from kapso.builder.nodes.subagent import WebhookTool

subagent.add_tool(WebhookTool(
    name="notify_slack",
    url="https://app.kapso.ai/api/v1/integrations/YOUR_INTEGRATION_ID/invoke",
    http_method="POST",
    headers={"X-API-Key": "#{KAPSO_API_KEY}"},
    description="Send order notification to Slack",
    body_schema={
        "type": "object",
        "properties": {
            "customerName": {"type": "string"},
            "orderDetails": {"type": "string"}
        }
    }
))

Method 2: Connected Accounts + API Proxy

For maximum flexibility, connect app accounts and make direct API calls to any endpoint. The proxy handles OAuth credential injection automatically.

Example: Dynamic Slack Operations

  1. Navigate to Tools → App integrations
  2. Click Connect New Account
  3. Select “Slack” and authorize your workspace
  4. Note the Account ID (e.g., apn_1234567)

Using the API Proxy

Make any Slack API call directly:

List Channels

curl -X GET "https://app.kapso.ai/api/v1/app_accounts/apn_1234567/proxy?url=https://slack.com/api/conversations.list" \
  -H "X-API-Key: YOUR_API_KEY"

Send Custom Message

curl -X POST https://app.kapso.ai/api/v1/app_accounts/apn_1234567/proxy \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://slack.com/api/chat.postMessage",
    "channel": "C1234567890",
    "text": "Hello from Kapso!",
    "blocks": [
      {
        "type": "section",
        "text": {
          "type": "mrkdwn",
          "text": "*Custom formatted message*"
        }
      }
    ]
  }'

Update User Profile

curl -X POST https://app.kapso.ai/api/v1/app_accounts/apn_1234567/proxy \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://slack.com/api/users.profile.set",
    "profile": {
      "status_text": "In a meeting",
      "status_emoji": ":calendar:"
    }
  }'

Supported HTTP Methods

The proxy supports all standard HTTP methods:
  • GET - Retrieve data
  • POST - Create resources
  • PUT - Update resources
  • PATCH - Partial updates
  • DELETE - Remove resources

Using Custom Headers

Add custom headers using the X-PD-Proxy- prefix:
curl -X POST https://app.kapso.ai/api/v1/app_accounts/apn_1234567/proxy \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "X-PD-Proxy-Custom-Header: custom-value" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://api.example.com/endpoint"
  }'

Comparison: Actions vs Proxy

FeatureConfigured ActionsAPI Proxy
SetupConfigure once, use many timesDirect API access
FlexibilityTemplate-based with variablesAny endpoint, any parameters
Use CaseRepeated operationsDynamic/complex operations
VariablesBuilt-in variable substitutionPass any JSON payload
Best ForStandard workflowsAdvanced integrations

Finding Account IDs and Integration IDs

For Configured Actions:

  1. Go to Tools → App integrations
  2. Click on your configured action
  3. Click Get code to see the integration ID

For Connected Accounts:

  1. Go to Tools → App integrations
  2. In the Connected Accounts section, find your account
  3. The Account ID is displayed (e.g., apn_1234567)
  4. Click to copy the ID