Internal

Connect your AI agents to Slack

MARABOT lets you send Slack messages and files from any AI agent you build — n8n, Zapier, Python, or anything else — using your own Slack identity and permissions.

Connect to Slack

How it works

Usage examples

curl -X POST https://marabot.yourcompany.com/api/v1/send-message \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "general",
    "text": "Daily summary from my AI agent: ..."
  }'
import httpx

MARABOT_URL = "https://marabot.yourcompany.com"
API_KEY = "YOUR_API_KEY"

def send_slack_message(channel: str, text: str) -> dict:
    resp = httpx.post(
        f"{MARABOT_URL}/api/v1/send-message",
        headers={"Authorization": f"Bearer {API_KEY}"},
        json={"channel": channel, "text": text},
    )
    resp.raise_for_status()
    return resp.json()

send_slack_message("general", "Here is your end-of-day summary...")
// Use an HTTP Request node in n8n
Method:  POST
URL:     https://marabot.yourcompany.com/api/v1/send-message

// Authentication → Header Auth
Name:    Authorization
Value:   Bearer YOUR_API_KEY

// Body (JSON)
{
  "channel": "{{ $json.channel }}",
  "text":    "{{ $json.summary }}"
}
// Use a "Webhooks by Zapier" action (POST)
URL:     https://marabot.yourcompany.com/api/v1/send-message
Payload: JSON

Headers:
  Authorization: Bearer YOUR_API_KEY

Data:
  channel: general
  text:    (map from previous step)
Tip: For channel, you can use a channel name (e.g. general), a channel ID (e.g. C1234567890), or a user ID for a DM (e.g. U1234567890). You can only post to channels you're already a member of.