What you’ll build
Outcome: Marketing automation receives the lead immediately; sales sees the same submission in Notion with source and timestamp.Prerequisites
- project_contributor access
- ActiveCampaign API URL and token
- Notion integration token with target database shared to the integration
- Notion database with properties: Name (title), Email (email), Source (select or text), Status (select, default
New) - Inbound webhook subscription
Connectors to install
| Adapter | Purpose |
|---|---|
| activecampaign | Create CRM contact and subscribe to list |
| notion | Log submission in team database |
Build the workflow
Discover Notion database ID
Run mcp_call →
notion_search and copy the database UUID for your leads table.Create ActiveCampaign contact
mcp_call →
activecampaign_create_contact with optional field_values_json for custom fields.Log in Notion
mcp_call →
notion_create_database_item in parallel (same depends_on as validate) or after AC — both are valid.Subscribe to list (optional)
Add mcp_call →
activecampaign_subscribe_or_unsubscribe_contact_from_list after contact creation.Validate input
ActiveCampaign contact
1 with your ActiveCampaign custom field ID for lead source.
Notion log row
notion_retrieve_database to confirm exact property names and types before publishing.
Subscribe to nurture list (optional)
Full workflow graph (copy-paste)
Replaceyour-database-uuid, ActiveCampaign field ID 1, and list ID 12. Bind activecampaign and notion MCP instances on each mcp_call step.
log-notion and create-contact both depend on validate, so they run in parallel after validation.
Idempotency
Duplicate webhook deliveries may create duplicate Notion rows. Mitigations:- Store
submission_idin Notion and skip ifnotion_find_database_itemfinds a match - Use ActiveCampaign’s duplicate handling — update with
activecampaign_update_contactwhen email exists
Variations
- Add llm_call to score lead intent →
activecampaign_add_tag_to_contactwithhot/warm/cold. - Notify sales on Slack (when messaging tools ship) or Resend email for
hotleads only. - Replace Notion with Google Sheets
insert_rowfor a lighter log.