The big picture
This guide walks through a complete integration: your platform receives a collab pitch, pushes it into the Sight AI Outreach Agent via the REST API, and receives real-time webhook notifications as the agent triages, replies, and tracks the conversation.Step 1: Register an OAuth client + authorize
- Open Integrations → Sight AI API → OAuth apps in the Sight AI app.
-
Create a client with your app’s name and your HTTPS redirect URI (e.g.
https://your-platform.com/oauth/callback). For a server-side platform, check Server-side app (issue a client secret) to register a confidential client and copy theclient_id+client_secret(sai_ocsec_…) shown once. Otherwise copy just theclient_id(public client). -
In your platform, add a “Connect Sight AI” button that redirects the user to Sight AI’s authorize endpoint with the scopes you need (
webhooks:write,webhooks:read,inbox:write) + PKCE: -
The user picks a site and approves the scopes on Sight AI’s consent screen. Your redirect handler exchanges the code for a
sai_oauth_*access token atPOST /oauth/token.
Step 2: Create the webhook subscription via API
After your platform has an access token, create the webhook subscription programmatically (no dashboard form needed):SIGHTAI_WEBHOOK_SECRET. See Outreach Webhooks API for the full reference, and Webhooks for the event catalog.
Step 3: Push a message
When your platform receives a collab pitch (e.g. a prospect emailed your support inbox), POST it to the ingestion endpoint:conversationId and opportunityId Sight AI created. Store these so you can correlate webhook events back to the original pitch.
Always send an
Idempotency-Key header. If the request times out or fails, you can safely retry with the same key without creating a duplicate conversation.Step 4: Verify the signature on incoming webhooks
Your webhook handler must verify theSightAI-Signature header before processing the payload. The header is in the format t=<unix>,v1=<hex> where the hex is HMAC-SHA256 over ${timestamp}.${raw_body} using your signing secret.
Step 5: Handle outreach.reply_sent
When the agent sends a reply, you’ll receive a outreach.reply_sent event:
conversationId to correlate this reply with the original pitch you pushed in Step 3. Update your CRM with the reply details (e.g. “Sight AI agent replied — accepted the collab request”).
Step 6: Handle outreach.conversation_status_changed
When the conversation reaches a terminal state, you’ll receive this event:
resolved→ “Closed — collab accepted”declined→ “Closed — declined”awaiting_human→ “Needs human review”