OppFlow.ai Docs

Integrations

Company enrichment

Firmographics — domain, employee range, HQ, description, LinkedIn — filled in on accounts from an external data provider. Off unless you turn it on, and administered through the API rather than a settings screen.

Two gates, both closed by default

Enrichment runs only when both are open, and they are independent:

The deployment has a provider key
Without one the endpoints answer 503. This is set by whoever operates OppFlow, not by you.
Your workspace has opted in
Without it the endpoints answer 409. An admin sets it on the organisation.
No settings screen yet
Enrichment is admin-only and driven entirely through the API today — there is no toggle in App Settings and no button on an account. If you want it on, that is a conversation with whoever administers your deployment.

Running it

Two admin endpoints: one enriches a single account, one sweeps the whole workspace. Both are asynchronous — they queue work and return, rather than blocking on a vendor.

Why a repeat run usually does nothing

Every call costs money, and the background tasks are at-least-once, so an account enriched within the last 30 days is skipped. That window is cost control rather than a cache: a month-old headcount bucket is still right. A lookup that finds nothing still stamps the account, so an unenrichable company does not get re-billed on every sweep. Forcing a refresh is a deliberate act — it clears the stamp.

What gets recorded as the source

An enriched account records a fixed, vendor-neutral label. The name of the provider that answered is never written to the record, never returned by the API and never shown to Marvin — it exists only in operational logs. Account documents are readable directly by the tenant, so redacting at the API boundary would not have been enough.

It survives a CRM sync

Enriched fields are carried across when the CRM mirror refreshes. Were they dropped there, the next sync would silently re-bill the entire account list.

OppFlow.ai docs · by Traversal · v0.1.32