Weekday Clay signal alerts into Instantly outbound at 7am

Every weekday at 7am, pull fresh funding, hiring, and job-post signals from your Clay table, draft a personalized opener, and load hot leads into Instantly with a Slack recap.

Agentic Task
ClayInstantlySlack BotSalesEmail AutomationLead EnrichmentResearch & Monitoring
PromptCreate

Every weekday at 7am in my local timezone, turn fresh account signals from my Clay signal-monitoring table into personalized outbound in Instantly, and post a summary to Slack. Trigger is a cron schedule.

Step 1. Read fresh signals from Clay. Use Clay's Query Tables operation against my signal-monitoring table. I already track target accounts in that table with rows for funding rounds, exec hires, and new job posts, and each row has a champion email column, a signal-type column (funding | exec_hire | job_post or similar), a signal-summary column, and a created-at column. The Clay table ID is not discoverable via the API, so accept it as a required workflow input at build time and store it in the workflow settings. Pull only rows added in the last 24 hours (based on the created-at column) that have a non-empty, syntactically valid champion email. Cursor-paginate through Query Tables until there are no more rows.

Step 2. Dedupe against my Instantly campaign. Accept the target Instantly campaign as a required workflow input (campaign UUID). For each Clay row's champion email, either call Instantly's Search Campaigns by Lead Email operation or List Leads filtered by that campaign and email, and drop any email that already exists in that campaign. Skip silently, do not treat as an error.

Step 3. Draft a personalized opener. For each remaining hot row, draft a two-sentence intro line that references the specific signal from that row. Example voice: "Saw the Series B and the new VP Eng last week. Figured the timing was right to reach out about how we help post-Series-B eng teams onboard faster." Keep it tight (1 to 2 sentences, roughly 200 to 320 characters) so it slots cleanly into an email template's personalization variable. Do not repeat the recipient's name or company inside the opener since the surrounding template already handles that.

Step 4. Push the batch into Instantly. Use Instantly's Add Leads in Bulk operation to add the deduped leads into the campaign in a single call (batch up to 1000 per request, page if needed). Map the drafted opener into a custom personalization variable on the lead (default name: personalization; make the variable name a workflow setting so users can match their existing email template). Also map first name, last name, company, and title from the Clay row when present.

Step 5. Post a Slack digest. Use the Slack Bot Send a Message operation to post to a channel that the user configures (workflow setting: slack_channel_id). The message should list how many leads were added in total this morning and a breakdown grouped by signal type, plus how many were skipped because they were already in the campaign. Keep it terse and scannable, mrkdwn formatting, one line per signal group. If zero leads were added, still post a short "no fresh signals this morning" note so the team knows the run happened.

Required workflow inputs to expose in settings: clay_table_id (string, required), instantly_campaign_id (UUID, required), instantly_personalization_variable_name (string, default "personalization"), slack_channel_id (string, required), run_timezone (string, default the user's timezone). Credentials required: Clay API key, Instantly API v2 key, Slack Bot workspace connection.

Behavior notes for the agent: honor Clay and Instantly Retry-After headers on 429s with exponential backoff. Treat any single lead that fails to add as a soft error, log it, and continue the batch rather than aborting the run. The Slack digest is the run's success signal for the operator, so always post it (including a note if the workflow errored partway).

Additional information

What does this prompt do?
  • Pulls the accounts your Clay signal table added in the last 24 hours, keeping only rows with a valid champion email.
  • Writes a short, two-sentence personalized opener for each lead that references the exact signal that fired (a new funding round, a key hire, or a new job post).
  • Loads the batch into your chosen Instantly cadence and drops the opener into a custom personalization field so your first email uses it word for word.
  • Skips anyone already sitting in the campaign, so you never double-send to the same prospect.
  • Posts a morning digest to Slack with how many leads were added, grouped by which signal triggered them.
What do I need to use this?
  • A Clay account with a signal-monitoring table that tracks target accounts with fields for the champion email, the signal type, and the date the row was added.
  • The Clay table ID for that signal table, which you can copy from the Clay workspace URL when you open the table.
  • An Instantly account on the Growth plan or higher with the campaign you want new leads added to.
  • A Slack workspace and a channel where the morning outbound digest should be posted.
How can I customize it?
  • Change the run time. 7am on weekdays is the default, but any daily or weekday cadence works.
  • Point it at a different Instantly campaign, or split leads across campaigns by signal type (funding into one, hiring into another).
  • Adjust the opener style. Keep it factual, make it warmer, or lengthen it if your template gives more room for personalization.
  • Filter which signals count. Only run on Series B or later, only on VP or C-level hires, only on engineering job posts, whatever fits your ICP.
  • Change the Slack channel, the digest format, or add a mention of the account owner so the right rep sees their new leads first.

Frequently asked questions

Do I need a Clay signal table already set up?
Yes. This workflow reads from an existing Clay table where you already track target accounts and signals like funding rounds, exec hires, or new job posts. If you have not built that table yet, do that first in Clay, then come back and connect it here.
How does it avoid re-adding leads that are already in my campaign?
Before adding anyone, the workflow looks each email up against your Instantly campaign and drops any lead who is already there. That way you never double-send, and the daily digest only counts genuinely new adds.
Where does the personalized opener show up in my email?
The opener is written into a custom personalization field on the lead in Instantly. Your email template pulls that field into the first line or two of the message, so your existing cadence stays intact and the personalization slots in automatically.
What if the opener sounds off for a particular lead?
Every draft is stored on the lead in Instantly, so you can spot-check the batch each morning before your sending window and edit anything that reads oddly. Over time you can tighten the instructions in the workflow to match your voice.
Can I run this on a schedule other than weekday 7am?
Yes. The schedule is easy to change to any weekday or daily time, and you can pick a timezone that matches your team. Some teams run it twice a day to catch signals that landed after the morning sweep.

Signals go stale fast. Reach out the morning they land.

Connect Clay, Instantly, and Slack once, and every weekday at 7am your freshest account signals turn into personalized outbound while the news is still warm.