Skip to content

Zapier

WCP integrates with Zapier via the Webhooks by Zapier and Code by Zapier built-in apps. No custom Zapier app is needed.


Use Webhooks by Zapier → POST as an action step:

FieldValue
URLhttps://workflowcontextprotocol.info/api/sync/run/await
Payload Typejson
Data(leave empty — no body needed)
HeadersContent-Type: application/json

The response JSON contains synced, errors, conflicts, duration_ms — all available as variables in subsequent Zap steps.


1. Sync every time a Notion page is updated

Section titled “1. Sync every time a Notion page is updated”
Trigger: Notion → Page updated
Action: Webhooks → POST /api/sync/run/await
Filter: only continue if errors = 0
Action: Slack → Send message "Notion sync complete: {{synced}} items"
Trigger: Schedule → Every 30 minutes
Action: Webhooks → GET /api/conflicts?status=pending
Filter: only continue if response body is not empty
Action: Gmail → Send email "WCP has {{count}} unresolved conflicts"
Trigger: Schedule → Every hour
Action: Webhooks → GET /api/conflicts?status=pending
Action: Code by Zapier → loop over conflicts array
Action: Webhooks → POST /api/conflicts/{{conflict_id}}/resolve
Body: {"winning_app": "notion"}

Zapier automatically parses JSON responses. After a POST /api/sync/run/await, you can reference:

VariableValue
syncedNumber of entities synced
errorsNumber of errors
conflictsNumber of new conflicts detected
duration_msSync duration in milliseconds

  • Zapier doesn’t support WebSockets, so you can’t receive push events from WCP’s /ws endpoint directly. Use scheduled polling instead (see examples above).
  • For real-time event handling, use n8n which includes a native WCP Trigger node with WebSocket support.

ActionMethodURL
Run sync & waitPOST/api/sync/run/await
Run sync (background)POST/api/sync/run
Get sync statusGET/api/sync/status
List pending conflictsGET/api/conflicts?status=pending
Resolve conflictPOST/api/conflicts/{id}/resolve
List connectionsGET/api/connections
List recent logsGET/api/logs?limit=20