The Workflow Library

Library / Data quality / data-quality-047

Advanced multi-step enrichment and normalization via webhook and custom code

Data qualityContactData Hub EnterpriseAdvanced~60 min to buildFull spec

Outcome. A newly created contact gets enriched from an external data provider and has its returned fields normalized to your standard formats in the same pass, landing with a clear success or failure status, instead of enrichment and cleanup running as two disconnected steps someone has to babysit separately.

Workflow map Enrollment, branches and actions at a glance data-quality-047
flowchart TD
    A[Contact created, email known] --> B[Set status: Enrichment called]
    B --> C[Webhook: call enrichment vendor API]
    C --> D{Successful match?}
    D -->|yes| E[Custom code: parse, normalize fields, store raw payload]
    E --> F[Status: Normalized]
    D -->|no| G[Status: Failed, create task]
action or delay branch public on every spec, paid or not

When to use it, when not to

  • UseUse it when you already run several of this category's simpler patterns separately, an enrichment call, a normalization pass, a fallback task, on the same contact, and want them chained into one coordinated sequence with a single status property, rather than three independent workflows each with a partial view of the record's state.
  • UseUse it once your enrichment vendor's API is stable and documented enough to call directly. This fiche assumes a webhook call to an external enrichment API rather than a native pre-built HubSpot integration, since a pre-built app usually already handles its own field writing without needing this level of orchestration.
  • SkipDo not use it as your first attempt at contact enrichment. Build and test the simpler pieces separately first, a single webhook call, a single normalization workflow, so you understand each part's failure modes before chaining them. See data-quality-023 for the simpler fallback-only version and data-quality-004 or data-quality-012 for the plain normalization pattern.
  • SkipDo not use it if a native, pre-built enrichment integration already covers your needs. Building and maintaining a custom webhook-plus-code chain is meaningfully more work than installing an app that already does the equivalent job and keeps up with the vendor's API changes for you.
The preview ends here. Six sections are in the library. counted, not blurred
PrerequisitesEvery property with its label, internal name, type and options, plus the assets the workflow needs before you start.5 items
EnrollmentThe trigger, the criteria exactly as they are ticked in the UI, the re-enrollment rule and the suppression list.4 parts
StepsEach action in order with its parameters, its branches and its delays, written as you tick them.2 numbered actions
Known pitfallsTraps seen in production, each with what breaks and what to do instead.4 pitfalls
Test plan, variants and build specHow to prove it works in a test portal, where to look when it does not, the variants for other objects or tiers, and the YAML build spec.3 variants, 3 sections
FilesThe properties JSON creates the fields in one API call, the workflow JSON documents the build, and the custom coded action ships as a ready-to-paste .js file.PDF, Markdown, JSON, code
Install1 click. The installer creates the properties this spec declares and the workflow itself, switched off, then opens a task for the prerequisites that are assets rather than properties, such as a team, a static list or a marketing email. What it created is listed on the install page.1 click, switched off
Unlock the full library, 149 EUR

or the data quality pack, 39 EUR

One-time, excl. VAT. 30-day refund, no questions asked. Founding prices until 31 October, then 199 and 59 EUR. Includes every spec added later, up to the full 500, and the one-click installer on the full library. Building on client portals? The agency licence at 449 EUR covers unlimited client portals.