Weekday Apollo prospect verify and Instantly campaign load

By General Input

Every weekday morning, fresh Apollo prospects get email-verified and only the deliverable ones go into your Instantly cold outreach campaign.

Integrations

  • Apollo
  • NeverBounce
  • Instantly
  • Slack Bot

Type

Agentic Task

Categories

  • Sales

Build me a weekday-morning agent workflow on a cron trigger (Monday through Friday at 8am Eastern, schedule and timezone configurable) that takes my freshly built Apollo prospect list, verifies it with NeverBounce, and only pushes the deliverable contacts into an Instantly cold outreach campaign so I stop burning sender reputation on dead inboxes.

Before doing anything else, call NeverBounce's Get Account Info to check the credit balance. If the free-plus-paid balance is under a configurable threshold (default 500 credits), bail out, do not kick off a verification job, and post a Slack heads-up to my sales ops channel saying the run was skipped because of low credits. Use slackbot's Send a Message for every Slack post in this workflow.

Next, call Apollo's Search Contacts to pull every contact added or updated in the last 24 hours that matches a configurable filter on stage, label, or owner. Page through results until you have the full batch. If zero contacts come back, short-circuit: do not create a NeverBounce job, do not touch Instantly, and post a single tidy 'nothing new today' line to the Slack channel so I know the workflow ran clean.

If there are contacts to process, hand the batch of emails to NeverBounce via Create Bulk Verification Job with auto_parse and auto_start both enabled. Then poll Get Bulk Job Status with exponential backoff (start around 5 seconds, cap around 60 seconds, with a sensible overall timeout) until job_status reports complete. If the job lands in under_review, surface that in the Slack summary at the end rather than hanging forever.

Once the job is complete, page through Retrieve Bulk Job Results and bucket the contacts by result code: valid, invalid, catchall, disposable, unknown. Keep every contact marked valid. Treat catchall as opt-in via a config flag (default off); if the flag is on, include catchall in the kept set. Drop invalid, disposable, and unknown.

Take the kept contacts and push them into a specified Instantly campaign using Add Leads in Bulk (chunk into batches of up to 1000, with skip_if_in_workspace and skip_if_in_campaign deduplication on, and the global blocklist check on). Map the Apollo email as the lead's email (the primary identifier), plus first name, last name, company name, and title across to Instantly.

Finish with a Slack summary to the sales ops channel showing: total contacts pulled from Apollo, the NeverBounce result breakdown (valid, invalid, catchall, disposable, unknown), how many leads were added to the Instantly campaign, and how many were held back along with the reason. Keep it tidy enough to scan in five seconds.

Configurable inputs I should be able to edit without rebuilding the workflow: the cron schedule and timezone; the Apollo filter (stage value, label name, or owner ID, plus the lookback window); the credit balance threshold; the include_catchall flag; the Instantly campaign ID; and the Slack channel ID for the summary and the low-credit warning.

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 reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them