Enrich new ActiveCampaign contacts and alert sales in Slack

Every 30 minutes, research brand-new ActiveCampaign contacts on the open web, write the findings back, and ping sales in Slack when a hot lead shows up.

Agentic Task
ActiveCampaignSlack BotSalesMarketingLead EnrichmentNotifications & Alerts

Build an agent-based workflow that runs every 30 minutes to enrich brand-new ActiveCampaign contacts and route hot leads to sales in Slack.

Trigger: cron, every 30 minutes.

Step 1. Pull new contacts from ActiveCampaign. Use ActiveCampaign 'List Contacts' with a created-after filter set to the timestamp from the previous run and order by id ascending so nothing slips between runs. Page through all results. Before researching, skip any contact that already carries a tier tag starting with 'enriched-' so we never double-process.

Step 2. Research each new contact on the open web. Use the contact's name and the domain of their email address to figure out: company name, industry, headcount band (1-10, 11-50, 51-200, 201-1000, 1001+), role seniority (IC, manager, director, VP, C-level), and any obvious buying signals like recent funding, a hiring spree, a product launch, or expansion news. Then assign a fit score from 0 to 100 with a one-sentence rationale. Keep dollar amounts and any monetary values out of scope; this is fit scoring, not revenue forecasting.

Step 3. Write the enrichment back into ActiveCampaign. Call 'Update Contact' to populate the custom fields for company, title, industry, headcount, lead score, and the enrichment summary. The ActiveCampaign custom field IDs need to be discovered once at setup and stored in the workflow config so the agent uses the right IDs every run. Then call 'Add Tag to Contact' with a tier tag based on the score: 'enriched-hot' if the score is above the hot threshold, 'enriched-warm' for the middle band, and 'enriched-cold' otherwise.

Step 4. Only for hot leads (score above a configurable threshold, default 75), use Slack 'Send a Message' to post a compact card to a sales channel. Include the contact's name, company, title, fit score, the one-sentence rationale, and a link to the ActiveCampaign contact record. Dedupe alerts per contact so a re-run never re-notifies the same person; the 'enriched-' tag check from Step 1 is the primary dedupe signal.

Config knobs the user should be able to edit without rewriting the workflow:

- Cron cadence (default every 30 minutes)

- Hot threshold (default 75) and warm threshold (default 50)

- Slack channel for hot-lead alerts

- ActiveCampaign custom field IDs for company, title, industry, headcount, lead score, and the enrichment summary

- Tag names for the hot, warm, and cold tiers

Additional information

What does this prompt do?
  • Sweeps ActiveCampaign every 30 minutes for contacts created since the last run, in order, so no one slips through the cracks.
  • Researches each new contact on the open web from their name and email domain to figure out company, industry, headcount, role seniority, and recent buying signals.
  • Writes the enrichment back into ActiveCampaign custom fields and stamps each contact with a hot, warm, or cold tier tag.
  • Pings your sales channel in Slack with a compact card the moment a hot lead lands, and skips contacts that have already been enriched.
What do I need to use this?
  • An ActiveCampaign account with custom fields ready for company, title, industry, headcount, lead score, and an enrichment summary.
  • A Slack workspace and the channel where your sales team hangs out.
  • Three tier tags created in ActiveCampaign for hot, warm, and cold leads (for example enriched-hot, enriched-warm, enriched-cold).
How can I customize it?
  • Change how often it runs. Every 15 minutes for a high-velocity inbound funnel, hourly if your volume is lower, or only during business hours.
  • Move the hot-lead threshold up or down. Default fires the Slack alert when the score is above 75 out of 100.
  • Swap the Slack channel, rename the tier tags, or change which custom fields get filled in.

Frequently asked questions

Will it re-enrich contacts I have already processed?
No. Before doing any research, the workflow checks each contact for an existing hot, warm, or cold tier tag and skips anyone who already has one, so re-runs never double-charge or overwrite work.
How do I change the hot-lead threshold?
The score cutoff is a config value on the workflow. Lower it to be more aggressive about flagging hot leads, raise it to keep the Slack alerts rare and high signal.
Can I send the alert to a different channel or a DM?
Yes. The Slack destination is configurable, so you can point it at a sales channel, a regional channel, a specific manager's DM, or anywhere else your bot has access to.
What if I do not have custom fields set up yet in ActiveCampaign?
Create the fields you want enriched (company, title, industry, headcount, lead score, and a free-text summary work well) before turning the workflow on, then paste their IDs into the workflow config once.
Does this overwrite contact data I already have?
It only fills in the enrichment fields you wire up, and only for contacts that have not been tagged before. Existing names, emails, and unrelated fields are left alone.

Stop chasing cold inbound.

Connect ActiveCampaign and Slack once, and Geni enriches every new contact and flags the hot ones for sales automatically.