Skip to content

Automate outreach from a sheet

When your leads land in a Google Sheet, from lead ads, a website form, or a team that curates a "qualified" tab, Automated Outreach watches that sheet and sends an Outreach to every new row that qualifies.

Each rule watches one sheet tab, and an agent holds one rule per lead source. Paid social in one sheet and the website form in another are two rules, each with its own filter, consent column and Outreach.

The sheet is monitored for changes. New and edited rows are picked up within about ten minutes of your edits settling, so a pasted block or a row filled in over several passes is read once you have finished. Run now reads it immediately. Your team keeps working in the sheet, and nobody copies rows into the console.

Before you begin

  • Write the Outreach that new rows will receive.
  • Decide which column records consent and which values count as a yes.
  • Have the sheet's link and the name of the tab to read.

Set it up

Open Build · Outreach, select the Automated Outreach tab, and click New automated outreach.

  1. Name it after the lead source, such as "Paid social leads". Every run and send it makes names the rule, so one rule per source keeps the reporting readable.
  2. Share the sheet with the Anychat service account shown on the page. Viewer is enough, or Editor if you enable write-back.
  3. Point at the tab. Paste the spreadsheet link and name the tab, for example Qualified Leads.
  4. Map your columns. Standard headers (First Name, Phone Number, Email, Company Name) are recognized automatically. Map the rest or mark columns to ignore. The phone number is where the Outreach goes: it becomes the person's channel identity on RCS. If your sheet has its own id for each row, such as a form submission id, map that column as the row id; otherwise each row is recognized by its contents. A row filter such as Qualified? = Yes limits which rows are considered at all.
  5. Tell it where consent lives. Point at your consent column and say which values count as a yes or a no. The raw cell text is kept on the Person as evidence. Rows without a recorded yes are imported but never messaged automatically, and are flagged in the run report for you to handle by hand.
  6. Set a start date when the sheet already holds rows that predate your agent. Rows submitted before it are ignored entirely, never imported and never messaged, so an existing backlog cannot trigger sends.
  7. Pick the Outreach. Its opener, Playbook, Goal, class, and follow-up are what each new row receives. You can also require fields before sending, cap how many rows are sent automatically per hour, and set a send window. The send window narrows the account's safe hours: a row is sent only when both are open, and otherwise waits for the first run inside them. If the point of this lead source is to answer people the moment they sign up, tick Send outside safe hours: new rows then go out as they arrive, whatever the safe hours. Consent is still required, and a send window you set still applies.

Try it without sending

Dry run, on the rule's page, reads the sheet and shows exactly what a real run would do: who would be imported, who would be messaged, and who would be skipped and why, without creating anyone, writing to the sheet, or sending a message. Dry-run mode keeps every run in that state, the automatic ones included, until you turn it off.

Shadow run lets you name a different Outreach first and watch each run report how many rows the two decisions agreed on before you switch over. Nothing extra is sent while a shadow run is in place.

What protects you from a bad pass

A rule remembers every row it has processed, so a row it has seen is never imported again as a new person, and it never sends the same Outreach to a person it has already reached with it, whatever the sheet says on a later pass. The start date keeps an older backlog out entirely, consent is checked per row, and the hourly cap bounds how much a pasted block can send in an hour. The cap is per rule, so one busy lead source cannot spend another's budget.

Read a run

Every run is recorded on the rule: rows seen, People imported, sends made, and each row deliberately not messaged with the reason (no consent, invalid phone, not RCS-capable, missing fields, too soon since the last message, outside the send window or safe hours). With write-back enabled, the same outcome is noted in a column of your sheet, filling only empty cells.

Monitor · Sends, filtered to the rule, shows its runs above its sends and whether it is keeping up. Run now and Dry run stay on the rule's page under Build · Outreach and show their result there.

Every row becomes a Person whether or not it was messaged, so the People page shows the skipped ones and why, as No consent or Declined. Record consent on the person when you obtained it another way, and the next run picks them up.

Because Automated Outreach never ends, its numbers always carry a period. The question to ask is whether it is keeping up: how many rows fired, how quickly after they appeared, and which ones failed.

What's next