Features

Capture, route, suppress, migrate

Capture contacts, decide where they go, and keep their status the same in every tool.

Automation triggers

Start contact workflows on creation, updates, unsubscribes, bounces, spam complaints, or list membership changes.

Connections

Connect email platforms, CRMs, data sources, scheduling tools, payments, and lead forms to one contact-routing layer.

Contact capture

Capture form submissions, product signups, bookings, ad leads, and custom webhook payloads through secure inbound sources.

Contact enrichment

Add name, company, industry, size and country to a contact from its email address.

Contact importing

Pull existing contacts from email providers, CRMs, spreadsheets, scheduling tools, and Stripe into the same routing pipeline.

Contacts and lists

Keep a canonical contact record with status, source, fields, tags, consent, list membership, and a complete event timeline.

Developer API

Build contact routing into your product with project-scoped REST APIs, granular keys, idempotent writes, sandbox behavior, and OpenAPI.

Direct list migration

Copy contact lists between supported providers without manual CSV handoffs or triggering unrelated automations.

Email verification

Check incoming email addresses for disposable, role-based, public-domain, and block-list signals before routing them.

Outbound webhooks

Receive signed, retryable contact events in your own application without polling the OpenContact API.

Reporting and activity

Trace contact capture, status changes, sync operations, and suppression events across projects, rules, and providers.

Suppression synchronization

Propagate unsubscribes, hard bounces, and spam complaints across connected email tools while keeping an auditable event history.

Sync rules

Route contacts with explicit triggers, conditions, destinations, field mappings, and suppression policy—then test before sending.

Workspaces, projects, and roles

Separate brands or clients into projects and give admins, editors, and developers the access their work requires.

Features

Capture contacts, decide where they go, and keep their status the same in every tool.

Start syncing · Browse integrations

FeatureWhat it does
ConnectionsLink your email, CRM, data, scheduling and payment tools.
Contact captureTake in forms, bookings, ad leads and JSON payloads.
Contacts and listsOne profile per contact, with status, source and history.
Sync rulesRoute contacts by condition, with field mapping.
TriggersRun on creation, update, suppression or list join.
Suppression syncCarry unsubscribes, bounces and complaints across tools.
Email verificationFlag risky addresses before they reach a sender.
EnrichmentAdd name and company details from the email address.
Contact importingPull existing audiences from connected tools.
List migrationCopy lists between providers without CSVs.
Developer APIScoped keys, idempotency, sandbox, OpenAPI.
Outbound webhooksSigned, retried events to your systems.
Reporting and activityTrace capture, rules and syncs.
Team and rolesSeparate projects and control access by role.

Capture

Create a secure ingest URL per source. Each source keeps its identity and the first-touch attribution of every contact it creates. Calendly, Google Ads, Stripe, Google Sheets, Airtable and custom webhooks feed the same record. CSV imports and the REST API upsert by email within a project.

Route

A rule has a trigger, conditions and destinations. Send to all runs every matching destination. Route to first picks the first match in order. Dry-run a rule on a real or sample contact before saving: you see the matches and the outgoing fields, and nothing is sent.

Suppress

When a provider reports an unsubscribe, hard bounce or spam complaint, OpenContact updates the contact, logs the event, and passes it to the destinations your rules select. Provider retries are de-duplicated. An unsubscribed contact is not re-subscribed by a later form submission.

Verify and enrich

Verification checks for disposable, role-based, public-domain and block-listed addresses, and the result works as a rule condition. Enrichment adds company details from the domain.

Migrate

Stream a list from one provider into another. A preflight shows what will happen first. Progress separates fetched, pushed and failed contacts, and you can retry only the failures. Migrations skip sync rules and verification, so they do not trigger welcome flows.

Stay current

  • Google Sheets, Airtable and Calendly resources auto-pull every 15 minutes.
  • Stripe customers are polled every five minutes and reconciled daily.
  • Verified Stripe events can create Pipedrive deals or activities.

Build on it

Project-scoped REST API, scoped keys, idempotent writes, incremental reads, sandbox keys, signed webhooks, an OpenAPI spec, a Laravel package and an MCP server.

Control access

Projects keep contacts, connections, rules and keys apart. Members are admins, editors or developers.

Start syncing · Read the docs