Skip to main content
ManticScore integrates with Slack and Notion so your research and build output reaches your team automatically. You can post a research summary to a Slack channel the moment analysis completes, export a build plan as a structured Notion page, or configure per-channel routing for different types of ManticScore events. Both integrations support one-tap export and event-driven automations.

Connecting

Connect Slack through the Composio OAuth flow:
curl -X POST https://api.manticscore.com/profile/integrations/slack/connect \
  -H "Authorization: Bearer <token>"
{
  "url": "https://composio.dev/oauth/slack/...",
  "toolkit": "slack"
}
Open the URL in a browser and authorize ManticScore. Slack auto-discovers your workspace channels.

Configure defaults

Slack supports routing different ManticScore events to different channels. Set them once and every export goes to the right place automatically.
curl -X PATCH https://api.manticscore.com/profile/integrations/slack/defaults \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "channel_id": "C1234",
    "channel_name": "product",
    "research_channel": "C5678",
    "builds_channel": "C9012",
    "signals_channel": "C3456",
    "format": "summary",
    "notify_on_research": true,
    "notify_on_build": true,
    "notify_on_signal": true
  }'
FieldDescription
channel_id / channel_nameDefault channel for all exports
research_channelOverride channel for research shares
builds_channelOverride channel for build plan exports
signals_channelOverride channel for competitive signal alerts
formatMessage format: summary (brief) or detailed (full breakdown)
notify_on_researchAuto-post when research completes
notify_on_buildAuto-post when a build graph is ready
notify_on_signalAuto-post when a new signal is detected

List channels

curl https://api.manticscore.com/integrations/slack/channels \
  -H "Authorization: Bearer <token>"

Post a message

curl -X POST https://api.manticscore.com/integrations/slack/messages \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "C1234",
    "text": "Research for *Acme payments app* is ready."
  }'

Sharing research

Use POST /research/{job_id}/share to export completed research to Slack, Notion, or email in one call.
curl -X POST https://api.manticscore.com/research/job-uuid/share \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "target": "slack",
    "channel": "C1234",
    "format": "summary"
  }'
{
  "sent": true,
  "channel": "C1234"
}
Omit channel to use your configured default. Set format to detailed for the full research breakdown.

Shipping a build plan

Use POST /build-graphs/{graph_id}/ship to export an entire build graph to Slack or Notion.
curl -X POST https://api.manticscore.com/build-graphs/graph-uuid/ship \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{ "target": "slack" }'
{
  "target": "slack",
  "sent": true,
  "channel": "C9012",
  "format": "summary"
}
ManticScore uses your configured builds_channel and format defaults. Pass channel and format in the request body to override them.

Exporting a single build node to Notion

You can export one build node as a structured Notion page with its objective, acceptance criteria, and test checklist.
curl -X POST https://api.manticscore.com/build-nodes/node-uuid/doc \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "target": "notion",
    "parent_id": "page-uuid"
  }'
{
  "node_id": "node-uuid",
  "target": "notion",
  "page": {
    "id": "notion-page-uuid",
    "url": "https://www.notion.so/notion-page-uuid"
  }
}
Omit parent_id to use your configured Notion default page. ManticScore structures the exported page with sections for the node’s objective, constraints, acceptance criteria, and test checklist.
Both /research/{id}/share and /build-graphs/{id}/ship return 400 if the target integration is not connected, or if a required field (such as a channel or parent page) is missing from both the request and your saved defaults.