Skip to main content
UnaGo - AI Operations PlatformUnaGo
Back to insights

Mautic + UnaGo: AI-powered sales lead enrichment without writing a single API call

Better Workflows|
Megha Neelamana

Megha Neelamana

Mautic + UnaGo: AI-powered sales lead enrichment without writing a single API call

TL;DR: Mautic has no built-in AI. To enrich contacts with company data, you traditionally need cURL scripts, webhook handlers and third-party API integrations. UnaGo lets you do it all through chat. This guide walks through a real business challenge step by step with exact prompts, screenshots and cURL comparisons.


The challenge

Sales team overwhelmed with manual research

Your sales team gets 50+ new Mautic contacts a day from web forms and imports. Each contact has just a name and email. Before they can prioritise who to call, your team spends hours manually researching companies: What industry are they in? How many employees? Where are they based? What tech stack do they use?

Mautic is a powerful open-source marketing automation/CRM platform, but its core product does not currently provide a native AI service or comprehensive built-in AI capabilities. AI-powered tasks such as contact enrichment, company research and intelligent decision-making generally require third-party plugins, integrations, or external AI services.

The traditional solution: Write custom code. Set up webhook receivers. Call Hunter.io or Clearbit APIs. Handle authentication, rate limits, error states and data mapping. Hours of development, ongoing maintenance.

The UnaGo solution: Describe what you need in plain English. UnaGo handles the rest.


How UnaGo solves it

Mautic to UnaGo flow diagram

Mautic contact created
  └─ signed webhook to UnaGo Events
       └─ trigger rule matches
            └─ AI agent dispatched
                 ├─ Reads contact from Mautic
                 ├─ Calls Hunter.io for company enrichment
                 └─ Writes enriched data back to Mautic

UnaGo Events captures the Mautic webhook, verifies the signature, matches a trigger rule, and dispatches an AI agent. The agent reads the contact, enriches it via Hunter.io, and writes the result back. All observable in the UnaGo UI.


Step-by-step guide

Prerequisites

  • A Mautic 5.x instance
  • Access to UnaGo platform

If you plan to use the cURL commands (API approach), you will also need:

  • Mautic admin credentials: username and password with API access (YOUR_MAUTIC_USERNAME, YOUR_MAUTIC_PASSWORD)
  • Your Mautic instance URL: replace YOUR_MAUTIC_URL with your actual Mautic domain (e.g. https://mautic.yourcompany.com)
  • Your UnaGo platform URL: replace YOUR_PLATFORM_URL with your UnaGo platform domain
  • An authentication token or script: replace YOUR_AUTH_SCRIPT with your method of obtaining a platform JWT
  • curl and jq installed: the cURL commands use curl for API calls and jq for JSON parsing
  • kubectl access (if following the full runbook), for retrieving secrets from your Kubernetes cluster

Step 1: create custom contact fields

Mautic needs fields to store enrichment data: company name, domain, industry, size, location and enrichment status.

Prompt for UnaGo Chat:

Create custom contact fields in Mautic for company_name, company_domain, company_industry, company_size, company_location, and enrichment_status

Result:

Custom contact fields created in UnaGo Chat

cURL Equivalent (6 separate calls):

curl -sS -u "YOUR_MAUTIC_USERNAME:YOUR_MAUTIC_PASSWORD" -X POST "YOUR_MAUTIC_URL/api/fields/contact/new" -H "Content-Type: application/json" -d '{"label":"Company Name","alias":"company_name","type":"text","group":"professional","isPublished":true}'
curl -sS -u "YOUR_MAUTIC_USERNAME:YOUR_MAUTIC_PASSWORD" -X POST "YOUR_MAUTIC_URL/api/fields/contact/new" -H "Content-Type: application/json" -d '{"label":"Company Domain","alias":"company_domain","type":"text","group":"professional","isPublished":true}'
# ... repeat for company_industry, company_size, company_location, enrichment_status

Step 2: create a webhook connection

Prompt for UnaGo Chat:

Create a webhook connection for Mautic with the Mautic preset

Result:

Webhook connection created in UnaGo Chat

cURL Equivalent:

YOUR_AUTH_TOKEN=$(YOUR_AUTH_SCRIPT)
curl -sS -X POST "YOUR_PLATFORM_URL/events-api/api/v1/connections" -H "Authorization: Bearer $YOUR_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"name":"Mautic CRM","preset":"mautic"}'

Step 3: configure the webhook in Mautic

Prompt for UnaGo Chat:

Create a Mautic webhook firing on mautic.lead_post_save_new pointing to the connection URL

Result:

Mautic webhook configured in UnaGo Chat

cURL Equivalent:

curl -sS -u "YOUR_MAUTIC_USERNAME:YOUR_MAUTIC_PASSWORD" -X POST "YOUR_MAUTIC_URL/api/hooks/new" -H "Content-Type: application/json" -d '{"name": "Contact Enrichment", "webhookUrl": "YOUR_PLATFORM_URL/events-api/api/v1/webhooks/YOUR_SLUG", "secret": "YOUR_CONNECTION_SECRET", "triggers": ["mautic.lead_post_save_new"], "isPublished": true}'

Step 4: create a trigger rule

Prompt for UnaGo Chat:

When a new Mautic contact is created, dispatch an agent to enrich it with company data from Hunter.io and update the contact record

Result:

Trigger rule created in UnaGo Chat

cURL Equivalent:

curl -sS -X POST "YOUR_PLATFORM_URL/events-api/api/v1/rules" -H "Authorization: Bearer $YOUR_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"connectionId": "YOUR_CONNECTION_ID", "provider": "mautic", "eventType": "mautic.lead_post_save_new", "target": {"type": "agent", "id": "YOUR_AGENT_ID", "name": ""}, "goalTemplate": "A new contact was created in Mautic. Email: {{.contact.fields.core.email.value}}. Enrich it with company data from Hunter.io and update the Mautic record.", "maxCredits": 500}'

Step 5: test the pipeline

Create a contact with a real company domain (test emails and fake companies will not return enrichment data). Use your own email at your company domain.

Prompt for UnaGo Chat:

Create a test contact in Mautic with email YOUR_EMAIL@YOUR_COMPANY.com and company YOUR_COMPANY, then show me the enrichment results

Result:

Test contact and enrichment results

Company enrichment and contact update

cURL Equivalent:

curl -s -u "YOUR_MAUTIC_USERNAME:YOUR_MAUTIC_PASSWORD" -X POST "YOUR_MAUTIC_URL/api/contacts/new" -H "Content-Type: application/json" -d '{"email":"YOUR_EMAIL@YOUR_COMPANY.com","firstname":"Test","lastname":"User","company":"YOUR_COMPANY"}'

Then check the UnaGo UI for the enrichment results.


What you get

After the pipeline runs, a raw contact with just a name and email is automatically enriched with real company data:

FieldBeforeAfter
Company(empty)HyperionWave
Domain(empty)hyperionwave.com
Industry(empty)Technology (GICS 45103010)
Size(empty)1-10 employees
Location(empty)Privately held, founded 2025
LinkedIn(empty)linkedin.com/company/hyperionwave
Tech stack(empty)nginx, HSTS
Email verified(empty)Deliverable (score 88/100)
Enrichment statuspendingcompleted

All of this happens automatically within seconds of the contact being created. No cURL required.


The bottom line

Happy team with UnaGo automation

Mautic handles your CRM. UnaGo handles the AI. The exact same pipeline that takes hours to build with cURL takes 15 minutes through UnaGo Chat.

Want to try it? Tell UnaGo: When a new Mautic contact is created, enrich it with company data and update the record.

Start building for free, or read how teams automate the wider workflow with AI marketing automation.


About the author: Megha Neelamana is an AI Engineer at UnaGo, where she builds the systems that let agents work together at scale. She believes the best AI is the kind you barely notice is there.