Score new Cognito Forms leads into HubSpot and Slack

By General Input

Every 30 minutes, new Cognito Forms submissions get researched, scored against your ICP, deduped into HubSpot, and routed to your sales channel in Slack.

Integrations

  • Cognito Forms
  • HubSpot
  • Slack Bot

Type

Agentic Task

Categories

  • Sales
  • Operations

Build me an agent workflow that runs every 30 minutes and turns new Cognito Forms lead submissions into scored, deduped HubSpot contacts plus a routing alert in our sales Slack channel.

Trigger: cron, every 30 minutes. Cognito Forms is not in pollProviders, so use cron plus the Cognito Forms List Entries operation as the polling fallback. Persist a high-water mark between runs (last seen entry Id or DateSubmitted timestamp) and only process entries that arrived after it. Use skip/top pagination if the first page is full.

Inputs the user should configure when they install this:

1) The Cognito Forms form name or numeric Id for the lead capture form. 2) The HubSpot contact owner or routing list. 3) The target Slack channel for routing alerts. 4) An ICP description in plain English: target industries, headcount range, geography, and any disqualifiers. 5) A block list of email domains to skip, defaulting to common free providers (gmail.com, yahoo.com, outlook.com, hotmail.com, icloud.com, aol.com, proton.me) plus any competitor domains the user adds.

For each new entry from Cognito Forms:

Step 1: Parse the entry into name, work email, company (if present), role/title (if present), and any free-text question fields. If the email domain is on the skip list, drop the lead and move on; do not write it to HubSpot or Slack.

Step 2: Do light web research on the person and the company. Use the email domain to infer the company website, then summarize what the company does in one or two sentences, estimate headcount range and primary industry, and confirm the person's role if their title was not provided. Keep research scoped and brief; this is a quick triage, not a deep dossier.

Step 3: Score fit against the ICP. Output a band (hot, warm, cold) and a one-sentence reason. Hot = clear ICP match on industry, size, and geography. Warm = partial match or unclear on one axis. Cold = clear mismatch but not blocked. Also produce a recommended next step (e.g. book a demo, send a tailored intro email, nurture sequence, disqualify).

Step 4: Upsert the contact in HubSpot using Batch Upsert Contacts with email as the idProperty so duplicates merge cleanly. Set firstname, lastname, email, company, jobtitle, and a custom property for lead source = 'Cognito Forms' if it exists; do not invent custom properties that aren't already on the contact schema.

Step 5: Attach a HubSpot note via Create Note, associated to the contact id returned from the upsert. The note body should include: the original form responses (or a link/summary), the research summary, the fit score band, the one-sentence reason, and the recommended next step. Use plain HTML in hs_note_body.

Step 6: Post a short, routing-ready message in the configured Slack channel via the Slack Bot Send a Message operation. Format the message in Slack mrkdwn with: the lead's name and email, company and role, the fit score band as a visible badge (use an emoji like :fire: hot, :sun_with_face: warm, :snowflake: cold), the one-sentence reason, the recommended next step, and a link to the HubSpot contact record. Keep it to about five short lines so reps can scan and claim it.

Operations to use: cognito-forms List Entries; hubspot Batch Upsert Contacts and Create Note; slackbot Send a Message. Do not invent operations.

Reliability: if HubSpot or Slack fails for a specific lead, log the failure and continue with the next lead so one bad record does not block the batch. Only advance the high-water mark for leads that were successfully processed end to end (or intentionally skipped by the block list).

Why an agent and not a fixed pipeline: the company research, ICP scoring, and recommended next step are open-ended judgement calls that change per lead. The deterministic parts (poll the form, upsert in HubSpot, post in Slack) are tools the agent calls, not a hard-coded sequence.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery boardLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsA searchable RFP answer library your bid team drafts fromLinkedIn Ads budget pacing dashboard for every client account