Turn LeadsForge negative replies into safe opt-outs and objection insight

By General Input

When a prospect replies negatively in LeadsForge, an agent suppresses the contact, updates HubSpot, and posts the objection to Slack so leadership sees the pattern.

Integrations

  • LeadsForge
  • Salesforge
  • HubSpot
  • Slack

Type

Agentic Task

Categories

  • Sales
  • Operations

Build an agent-based workflow that safely closes the loop on LeadsForge negative replies and turns each one into GTM feedback for sales leadership.

Trigger: a Salesforge/LeadsForge webhook filtered to the negative_reply event. LeadsForge and Salesforge share the same webhook feed, so either product's webhook works. The webhook payload includes the thread id, contact email, contact name, company, and the sequence the reply came from.

When the webhook fires, run an agent with these instructions:

1. Call LeadsForge Get Thread with the thread id from the webhook to read the full reply text. Do not just use the webhook preview.

2. Classify the reply into exactly one objection category from this taxonomy: not_interested, wrong_role_or_icp, bad_timing, pricing, competitor, opt_out, angry. Also extract a single sentence quote (max ~140 characters) that best captures what the prospect said, and a two sentence summary of the objection.

3. Compliance first. If the category is opt_out, OR the reply text contains any opt-out or 'stop emailing me' / 'unsubscribe' / 'remove me' wording regardless of category, immediately call LeadsForge Bulk Add DNC Entries with the contact's email address AND the domain of that email. This must happen before any HubSpot step so that a downstream CRM failure can never leave a compliance gap. The DNC endpoint accepts up to 1000 entries per call, but here you are sending one contact.

4. Then call HubSpot Search Contacts filtered by the contact's email. If no contact is found, skip the HubSpot updates and go straight to Slack.

5. If a HubSpot contact is found, call HubSpot Update Contact to set their lifecycle stage or lead status to a disqualified value (make the exact property configurable), and stamp the objection category on a custom text property named something like objection_reason. Then call HubSpot Create Note associated with that contact, with note body containing the two sentence summary from step 2.

6. Finally call Slack Send a Message to a designated outbound channel (make the channel id configurable). Keep the message compact so leadership can scan a feed of them. Include: prospect first name, company, sequence name, objection category, and the one line quote. No em dashes anywhere. Format roughly like: 'Negative reply from {name} at {company} on sequence {sequence}. Category: {category}. Quote: "{quote}".' Add whether the contact was suppressed and whether HubSpot was updated as a short second line.

Guardrails: always suppress in LeadsForge before touching HubSpot, so compliance never depends on the CRM step succeeding. If LeadsForge Get Thread fails, log the error and still post a minimal Slack alert with the webhook fields so nothing is dropped silently. Never send any reply back to the prospect. This workflow is read-and-record only from the prospect's point of view.

Make the disqualified value, the objection property name, and the Slack channel id configurable inputs on the workflow so the operator can set them once at install.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentWin back LiveChat visitors whose chats went unansweredTurn Mailjet email clicks into ranked HubSpot follow-upsiMessage campaign console with pre-flight checks and delivery boardChat quality review board for LiveChat support leadsA searchable RFP answer library your bid team drafts fromSee which target accounts just started advertising on LinkedInAccount health board that puts product usage next to your CRMLook up a customer's full chat history mid conversationLusha prospecting workbench with credit-safe reveals