配方 · 外呼邮件

Outreach touch 1

向每一行已准备好的陌生联系人发出开场邮件,一次一封,从你自己的邮箱发出,走它的代理,并且不超出它的每日额度。第一行是为这个人写的那句话;后面三行是你的,作为参数设置一次即可。没有准备过的行会被跳过,结果会写回原行,并盖上今天的日期,好让跟进邮件不会在同一天落地。

本页内容

它做什么

在「Send touch 1」这个步骤上选好你的邮箱,或者指定一个邮箱池,并在第一次运行前读一遍那三个文案参数。邮件发出去就收不回来。

向每一行已准备好的陌生联系人发出开场邮件——一次一封,从你自己的邮箱发出,走它的代理,并且不超出它的每日额度。

它在一个环境上运行,走这个环境自己的代理、带它自己的 Cookie——所以页面加载出来的样子,和那个账号的主人看到的一样。 它完全不打开任何页面,这意味着它可以跑在一个你不太想惊动其会话的环境上。

One profileOpens no pageThe Outreach list table5 settings on the run

14 个步骤

这是真实的步骤树,读自启动器随附的那个套件。缩进代表嵌套:循环下面的步骤每行执行一次,分支下面的步骤只在它上方的条件成立时才执行。每一处 {{…}} 都是运行时才填入的值——来自正在遍历的那一行、来自这次运行的某项设置,或者来自环境本身。

loadRowsLoad the rows ready for touch 1Load Outreach list into rows
loopEach personLoop forEach

Each time

setVarStart this row with no outcomeSet outcome
setVarStart this row unsentSet sent
ifOnly rows that were preparedIf {{loop.item.cold_read}} exists失败时:continue

Yes

setVarMark the row attemptedSet sent
setVarAssume the send did not completeSet outcome
sendEmailSend touch 1Send "{{loop.item.company_casual}} — quick question" to {{loop.item.email}}失败时:continue
setVarRecord what happenedSet outcome失败时:continue
setVarRecord whether it wentSet sent失败时:continue

Each time

ifIf the message wentIf {{vars.sent}} equals失败时:continue

Yes

saveRowsAdvance the rowSave to Outreach list失败时:continue

Each time

ifIf the send was refused or failedIf {{vars.sent}} equals失败时:continue

Yes

saveRowsRecord the refusal on the rowSave to Outreach list失败时:continue

其中每一个都是自动化参考上的某一种步骤类型,字段与编辑器里显示的一致,也与 Agent 经本地 API 拿到的一致。

它用到的表

它们会随配方一起加载。数据集是一张由你的工作区拥有的、有类型的表——列名和列类型事先定好,步骤才能寻址到它们,而其中每一列日后都可以由你改名、扩展,或者从文件里填充。

Outreach list

读取写入

One row per person: their address, what you know about them, whether they opted in, and which touch of the sequence they are on.

email
Email · email
first_name
First name · text
company
Company · text
company_casual
Company (casual) · text
location
Location · text
location_local
Location (local) · text
icp
Segment · text
metric
Metric · text
signal
Signal · longText
cold_read
Cold read · longText
consent
Consent · select · Cold — no consent | Opted in
status
Status · select · Queued | Prepared | Touch 1 sent | Touch 2 sent | Sequence finished | Replied | Booked | Unsubscribed | Bounced | Refused
touch
Touch · number
deliverable
Deliverable · select · Deliverable | Risky — catch-all | Undeliverable | Could not check
last_sent_at
Last sent at · datetime
touch_1_day
Touch 1 day · date
outcome
Outcome · longText

重跑会更新它此前写下的那一行,而不是再添一行。保存步骤里的匹配列就是为此存在的,这也正是一次状态检查与一张每跑一遍就翻倍的表之间的区别。

它会问你什么

设置在运行开始时填写,而且每个环境都可以保存自己的一套值——一条流程就是这样服务一整个文件夹的账号的。

credibility
Who you are, and why this is not spam · textarea · 必填

One or two sentences with a number in them. This is the part that answers "why is a stranger writing to me", and a number is what answers it — an adjective does not.

offer
The offer · textarea · 必填

A quantified result, a tight window, and the risk taken off them. All three: a result with no timeframe is a hope, and a timeframe with no risk reversal is a demand.

ask
The ask · textarea · 必填

Two concrete times, not "let me know what suits". Every extra reply a meeting needs before it exists is a place the thread dies.

signoff
Sign-off · text

Optional, and short. "sent from my phone" is a real signal that a real person typed this; a deliberate typo is not — it reads as careless far more often than it reads as human, and it cannot be taken back.

pool
Mailbox pool · text

The name of a pool under Mail. The least-used mailbox in it that still has allowance today sends each message. Leave empty and pick a single mailbox on the step instead — one of the two has to be set before the first run.

如何加载

在启动器里打开 Automations,选择 Load a starter pack,然后挑 外呼邮件。把不想要的取消勾选。先落地的是表,然后是流程,最后是一个叫 Outbound 的项目,把它们连在一起。

到手的是一条普通的自动化记录行。在编辑器里打开它、改一个步骤、给它改名、把它删掉都行——此后应用不会把它当作特殊的东西,而且第二次加载这个套件是做一份全新的副本,不会覆盖你改过的那一条。表则相反:同名的表如果已存在,就会被沿用并保留它的数据行。