Weekly ABM warm accounts digest to Slack

Every Monday at 8am, score your target account list by last week's web and intent activity, then post the top movers to a Slack channel for the team.

Agentic Task
Factors.aiGoogle SheetsSlack BotSalesMarketingDaily DigestsResearch & Monitoring
PromptCreate

Build me a weekly ABM warm accounts digest that runs every Monday at 8am on a cron trigger. The workflow should be an agent that uses Google Sheets, Factors.ai, and Slack Bot.

Step 1. Read my target account list from Google Sheets. Use the Get Values operation against my target accounts spreadsheet. The sheet has one row per company and at least a column named 'domain'. Treat the domain column as the canonical identifier for each account. Capture any other useful columns (company name, owner, tier) and carry them through so we can show them in the final message.

Step 2. For each domain from the sheet, call Factors.ai using the Get Account Journey operation for the trailing 7 days (from = today minus 7 days, to = today). Factors identifies accounts by their domain, not by an internal ID, so the sheet column maps directly. Collect the returned user-level timeline: events, event names, distinct user identifiers, and last_seen timestamps.

Step 3. Score each account by engagement. Use a transparent rubric: count of sessions in the window, presence of high-intent events (anything containing 'pricing', 'demo', 'contact', 'book', or 'trial'), number of distinct users from the account, and how recent the last_seen timestamp is. Drop accounts with zero activity. Rank the remaining accounts by score, descending.

Step 4. Post a single Slack message to the #abm-pipeline channel using the Slack Bot Send a Message operation. Format it as a digest with the top 10 ranked accounts. For each account, write a one-liner that includes: company name (or domain if no name), the headline activity from the past 7 days, the named contacts seen (user names or emails from Factors when available), and a short 'why now' hook explaining what's interesting about the signal (e.g. 'three people from the account, two pricing visits, hadn't seen them in a month').

Step 5. Below the top 10, include a 'Watchlist movers' callout that lists any accounts which had zero activity in the prior 7 days but became active this week. This is the cold-to-warm transition list. Keep it to at most 5 movers.

Formatting notes for the Slack message: use Slack mrkdwn (single asterisks for bold, not double). Lead with a short header that includes the date range. Use a bulleted list for the top 10. Put the 'Watchlist movers' callout in its own section under a bold label. Keep the whole message under Slack's practical readability limit (one screen on desktop), and prefer concise one-liners over multi-line bullets.

Edge cases: if Factors returns 404 for a domain, treat it as no activity (don't fail the run). If the sheet is empty, post 'No target accounts configured this week' and stop. If every account is silent, post a short 'Quiet week, no warm accounts to surface' message instead of an empty digest. Cap the number of Factors calls per run at the sheet size, and process them serially to be polite to the API.

Additional information

What does this prompt do?
  • Reads your target account list straight from a Google Sheet, so you don't have to maintain it in two places.
  • Checks the past seven days of website visits, intent events, and known visitors for every account against Factors.ai.
  • Ranks the accounts by signal strength and posts a single Slack digest with the top ten plus a 'watchlist movers' callout for accounts that just woke up.
  • Skips silent accounts entirely, so the message only shows what's worth a sales conversation this week.
What do I need to use this?
  • A Google Sheet with your target accounts, including a column called 'domain' (one company per row).
  • A Factors.ai account with a private token, so the workflow can read account journeys.
  • A Slack workspace and a channel like #abm-pipeline where the Monday digest should land.
How can I customize it?
  • Change the schedule. Run it daily, Tuesday mornings, or before a pipeline review instead of Monday at 8am.
  • Tune what counts as 'warm.' Boost pricing or demo page hits, weight by number of distinct visitors, or filter to last-seen within 48 hours.
  • Swap the destination. Post into a different Slack channel, DM the AE for each account, or split sales and marketing into two messages.

Frequently asked questions

Do I need a CRM to use this?
No. The target list lives in a Google Sheet, which is why this works well for teams that haven't formalized their ICP in Salesforce or HubSpot yet. If you do have a CRM, you can later swap the sheet for a CRM view.
How is each account scored?
The agent looks at things like number of web sessions, whether anyone hit high-intent pages (pricing, demo, contact), how many distinct people from the account showed up, and how recent the last visit was. You can tune the weighting in plain English.
What happens to accounts with no activity that week?
They are dropped from the digest. The goal is a short, actionable message, not a full account list. Silent accounts simply don't appear.
Can I change which Slack channel it posts to?
Yes. Tell the agent which channel name or ID to use and it will route the digest there. You can also send it to a private channel or a DM.
How is this different from real-time intent alerts?
Real-time alerts ping you the moment something happens, which gets noisy. This is a once-a-week rollup designed for pipeline reviews and Monday planning, so the team sees the week's top movers in one place.

Walk into Monday pipeline review knowing which accounts to call.

Connect Google Sheets, Factors.ai, and Slack once, and your warm accounts digest lands in #abm-pipeline every Monday at 8am.