Creates an automation on a perspective. Triggers: per_interview (fires on every completed conversation) or scheduled (daily/weekly digest). Channels: webhook, email, slack, hubspot. Execution modes: direct (fast, deterministic) or agent (LLM-powered).
Behavior:
- Each call creates a new automation — even if name/config matches an existing one.
- Once enabled, the automation starts firing on real events: per_interview sends on every completed conversation going forward; scheduled sends a real message on the configured cadence (daily/weekly).
- For HubSpot, the workspace's HubSpot connection is required — errors with "Could not resolve HubSpot portal ID — please reconnect HubSpot" if not connected.
- Webhook channels: do NOT ask the user for the endpoint URL or credentials — neither is accepted through this tool. The automation is created disabled and the response includes configure_url, a web app page where the user sets the URL (and an authentication header if needed). Share that link and ask the user to reply "Done" after saving, then enable the automation via automation_update.
- Errors when the perspective is not found or you do not have access.
When to use this tool:
- The user wants ongoing notifications on every completed conversation (per_interview).
- Building a daily/weekly digest delivered to Slack, email, HubSpot, or a webhook (scheduled).
When NOT to use this tool:
- Trying a one-off send before going live — create the automation, then use automation_test (use override_email on email channels to avoid hitting real recipients).
- Editing or toggling an existing automation — use automation_update.
- Connecting Slack or HubSpot — use integration_manage first; the provider must be connected before slack/hubspot channels work.
Example — per-conversation Slack notify (resolve the channel with slack_channel_resolve first, then pass it as resource_id):
```
{
"perspective_id": "...",
"automation": {
"name": "Notify Slack",
"trigger": { "type": "per_interview" },
"execution_mode": "agent",
"channel": {
"type": "composio",
"delivery_config": {
"provider": "slackbot",
"tool_slug": "SLACKBOT_SEND_MESSAGE",
"resource_id": "C0123ABCD",
"resource_name": "#research"
}
}
}
}
```
resource_id is the Slack channel ID or name. The channel is re-verified live on create; an unresolvable channel is rejected.
Typical flow:
1. integration_manage (operation: "list"/"connect") → ensure Slack / HubSpot is connected (only needed for those channels)
2. For Slack: slack_channel_search / slack_channel_resolve → find/verify the channel to use as resource_id
3. automation_create → create the automation
4. automation_test (with overrides) → verify delivery before relying on it