Skip to main content

Magic Enrichment

The magic enrichment node in workflows

Updated this week

Magic Enrichment allows you to automatically enrich and standardize data inside workflows using AI. Instead of relying on disconnected enrichment tools or one-time imports, you can now run enrichment dynamically whenever a trigger or event occurs. This ensures your CRM and MAP data stays clean, structured, and actionable without needing manual cleanup or constant exports.

With Magic Enrichment, you can update any variable in your CRM or MAP, from persona to lead score to industry, using the information you already have about a contact or account. You can also extend enrichment by enabling search, which allows the model to scan domains or websites for relevant data.

The goal is simple: make enrichment an always-on part of your workflows, so your database is never stale and your automation logic can run on the highest-quality inputs.



Step 1: Choose a variable to update

The first step is deciding what you want to enrich.

  • You can pick any existing variable in your contact, account, or lead schema.

  • Or you can create a new variable directly inside the node.

You’ll also be asked if enrichment should overwrite existing values.

  • If you toggle this off, enrichment will only fill in blanks.

  • If you toggle this on, the model will replace whatever value is already stored. This is useful if you want enrichment to always enforce the most standardized value.



Step 2: Write your prompt

Prompts define how enrichment runs. This is where you tell the model what data to look at and how to transform it into the right output.

You can:

  • Insert variables directly into your prompt (e.g. Job Title, Industry, Domain).

  • Use the / command to pull in any available variables for the contact.

⚠️ Important: For enrichment to run, at least one variable in your prompt must have a value. If none of the variables you reference are populated, the enrichment step will simply skip that contact and move on.

If a variable is empty, it will just be omitted from the prompt. Enrichment still runs as long as one other variable has data.

Example prompt:

Based on Job Title, Industry, and Domain, identify the contact’s buyer persona from the standardized list below. Choose the single most relevant persona.

Prompts should be specific and directive. The more structure you give, the more consistent the results.



Step 3: Choose your model

You can run enrichment with two modes:

  • Model only (no search): Uses only the CRM/MAP variables you insert into the prompt. Best when you want fast, deterministic enrichment on existing data.

  • Model with search: Uses the model plus website/domain scraping. If you include a contact’s domain, the model will crawl the associated site and use that context to enrich. Best when you don’t have full information stored in CRM, or when you want external validation.



Step 4: Define your outputs

You can optionally predefine the acceptable outputs for your enrichment. This is highly recommended for almost every use case.

  • When outputs are predefined, the model is forced to return one option from your list.

  • This prevents the model from generating inconsistent freeform text (e.g. “Head of Growth,” “Growth Exec,” “Growth leader-ish”), which can pollute your CRM.

  • Always add “Other” as the last option so edge cases are safely captured.

Example outputs:

  1. Marketing Leader

  2. Sales Leader

  3. Operations Leader

  4. Other



Step 5: Preview and QA

Before going live, you should QA enrichment with Preview.

  • Click Preview in the top-right corner to see a sample of up to 25 matched contacts.

  • Preview will only show contacts where at least one variable referenced in your prompt has a value.

  • The output column shows what enrichment would return for each sample.

If the results look inconsistent, you can adjust:

  • Prompt wording (add more structure or examples).

  • Preview filters (require all fields to be present before showing samples).

  • Outputs (make sure you’ve defined a closed set of standardized options).

This QA step is crucial because it helps you validate that enrichment is producing usable, standardized data before running it at scale.



Prompt Writing Best Practices

To get consistent enrichment:

  • Be very precise about what you want the model to do. Avoid vague instructions like “classify.”

  • Use examples inside your prompt. For instance:

    “If the job title is CMO, VP of Marketing, or Head of Growth, they are usually a Marketing Leader.”

  • Anticipate common variations and include them. Titles and industries vary widely; the more you list, the less guesswork the model has to do.

  • Explicitly tell the model to choose the single most relevant option. Without this, it may return multiple or hybrid answers.



Common Use Cases

Magic Enrichment can be used for a wide range of data enrichment needs:

  1. Persona classification
    Standardize personas across your CRM based on job title, domain, and industry.
    Outputs: Marketing Leader, Sales Leader, Operations Leader, Other

  2. ICP fit scoring
    Enrich contacts with a standardized ICP fit category (High Fit, Medium Fit, Low Fit).

  3. B2B vs B2C detection
    Use domain and industry to classify whether a company is primarily B2B or B2C.

  4. Department/Function tagging
    Normalize contacts into functions (Marketing, Sales, Product, Engineering, Finance).

  5. Lead scoring
    Enrich leads with an AI-predicted score based on a mix of contact and company data.

  6. Custom enrichment
    Anything that requires turning messy, inconsistent CRM data into a structured, repeatable output.



Why use Magic Enrichment?

  • Keeps data clean and consistent without manual effort.

  • Replaces one-off enrichment jobs with always-on automation.

  • Allows you to consolidate enrichment directly inside your workflows instead of layering third-party tools.

  • Ensures your workflows and campaigns run on standardized inputs instead of fragmented free text.

  • Skips gracefully when no input data is available, ensuring no errors or broken steps.

Did this answer your question?