BirdsEye ROI, Email and Social Copy Pack
Written against positioning-why-i-built-it.md. That file is the authority on
angle and voice, and it outranks anything here.
The earlier version of this pack led with platform internals: the log size, the
spam share, and the tracked revenue total. It was replaced because those are
facts about the tool's database, not reasons anybody buys. The retired version
is kept at copy-emails-social-v1-data-led.md.bak for reference only.
FACTS.md still governs any number that does appear. It is a ceiling, not a
brief. Most copy in this pack needs no platform figure at all.
What this pack sells: a busy owner looks at his phone for four seconds between jobs and knows what the business made. For the agency, a per service and per area report he is proud to send on a Friday.
Banned from every subject line, opening line, and hook in this file: the spam share, the total call count, and the tracked revenue total. Junk calls dropping out before they reach the number may appear late in a body as reassurance. Never as the lead.
Retired, do not use in any ad, email, or post: "Most call tracking tells you the phone rang. BirdsEye tells you which ring paid." It argues with a category instead of talking to a person. Deck only.
Product URL used throughout: https://birdseyeroi.com
Voice rules applied: money words over metric words, short sentences, no em dashes, no emojis, no hype adjectives, full https:// URLs, one CTA per email.
Dollar figures shown anywhere in this pack are product illustrations, the way a bank ad shows a balance. Never a named client, testimonial, logo, case study, or claimed result. We have none.
Section 1: Cold outreach email sequence, 5 emails
Two audiences, two voices, one cadence. Every email below carries an Operator track and an Agency track. They are not the same email with a swapped subject line, because the two buyers do not have the same problem.
The operator wants to know if today paid. The agency already knows the calls came in and needs to prove they were worth paying for. Send one track or the other. Never mix them into one send.
Email 1, Day 0
Subject (operator): What was your last call worth? Alternate A: Four seconds, and you know if today paid Alternate B: A question about the calls coming into {{Business Name}}
Subject (agency): The report you have to defend on Friday Alternate A: Proving the leads were worth paying for Alternate B: You are not short on calls
Preview text (operator): Not how many calls. What they were worth. Preview text (agency): Per service, per area, ready to send.
Body, operator track (96 words):
This is for whoever watches the money at {{Business Name}}.
Somebody called you an hour ago. Do you know what that call was worth?
Most systems will tell you it lasted six minutes. Six minutes is not a number you can spend.
I built BirdsEye so an owner can look at his phone for four seconds between jobs and know what the business made. One number on the screen. The last call with a dollar next to it. Nothing to dig through.
Worth showing you what your last 90 days would look like that way?
CTA: Reply "show me" and I will send the one screen it puts on your phone.
Body, agency track (94 words):
For whoever builds the client reporting at {{Business Name}}.
You are not short on calls. You are short on proof.
Friday comes, the client asks how it is going, and the honest answer takes two hours in a spreadsheet you rebuild every month.
BirdsEye turns the calls you already produce into a report with dollars on it, broken out per service and per area. Something you send, not something you build. On brand, and good enough to go out without editing.
Want to see the format before you give me any time?
CTA: Reply "report" and I will send the format we would run for one of your accounts.
Email 2, Day 3
Subject (operator): It should already be on the screen Alternate A: You should not have to go looking for it Alternate B: End of the day, without you asking
Subject (agency): The Friday text Alternate A: "How are the leads doing?" Alternate B: Stop defending volume
Preview text (operator): A chart at the end of the day that tells you it worked. Preview text (agency): The answer that takes two hours, in one send.
Body, operator track (88 words):
The actual reason I reached out.
Nobody wants another dashboard. You already have logins you never open.
So this is not a place you go look. It is a number that shows up. End of the day and end of the week, a chart you do not have to interpret. Up or down, and what the work was worth.
If you have to learn it, I built it wrong.
That is the test I hold it to, and it is the only feature that matters to somebody running crews all day.
CTA: Reply "day" and I will send you what the end of day view looks like.
Body, agency track (105 words):
Every agency owner knows the text. Friday afternoon, and it says "how are the leads doing?"
The work is real. You did it. The problem is proving it before Monday.
So the report is the product. Per service and per area, each line carrying a dollar figure. Roofing did this. HVAC did that. The north side beat the south side. Here is what changed since last month.
Your client does not want a call log. He wants to see he is winning, on one screen, without you narrating it.
You stop defending volume and start showing what it was worth.
CTA: Reply with one account name and I will send the report shape for it.
Email 3, Day 7
Subject (operator): You do not have to change your phone numbers Alternate A: Your numbers stay on the trucks Alternate B: Nothing changes on your side
Subject (agency): You keep your stack. It gets a dollar column. Alternate A: Nothing gets ripped out Alternate B: Whatever your accounts are sitting on already
Preview text (operator): Same numbers, same forwarding, different screen. Preview text (agency): No migration. Just the column nobody has.
Body, operator track (108 words):
Please pass this to whoever handles the phones at {{Business Name}}.
The first thing people ask is whether they have to reprint the trucks, the yard signs, and the door hangers. No.
BirdsEye reads the tracking numbers you already have across Twilio, SignalWire, CallFire, and CallRail. Your numbers stay. Your forwarding stays.
What changes is what you see. Every call carries a dollar figure and a plain answer to what the person actually wanted.
And the junk drops out before it reaches the number, so what is left on the screen is real work, not robocalls and people selling you SEO.
CTA: Give me 20 minutes and I will put your own calls on screen with dollars on them: https://birdseyeroi.com
Body, agency track (112 words):
The practical version for {{Business Name}}.
You do not rip anything out. Whatever mix of Twilio, SignalWire, CallFire, and CallRail your accounts sit on, BirdsEye reads all of it and adds the one column nobody else has: what the call was worth.
Then it splits that by service and by area, which is how your client thinks about his own business anyway. He does not think in channels. He thinks about the fact that the roof jobs came from the north side and the drain jobs did not.
Junk calls drop out before the totals, so the number you send survives the client checking it against his own booked work.
CTA: Give me 20 minutes and I will build the view against one live account: https://birdseyeroi.com
Email 4, Day 12
Subject (operator): Why I built this Alternate A: I was tired of guessing Alternate B: The short version of the whole thing
Subject (agency): Why I built this, and why it looks like a client report Alternate A: I built the report I was tired of rebuilding Alternate B: The honest version, twelve days in
Preview text (operator): No pitch. Just the reason it exists. Preview text (agency): Including how the commercial side actually works.
Body, operator track:
Twelve days of emails, so here is the honest version.
I built this because I was tired of guessing.
The calls were tracked. They were tracked in four different places. And at the end of the month I still could not tell you which spend produced the jobs. So I put it in one place and made every call carry a dollar.
Now I look once and I know. That is the whole product. The transcribing, the reading, the junk filtering, all of it only exists so that one look is true.
One more thing, so you read the rest of this correctly. This is not a monthly software bill you approve and then have to justify. We work on a revenue share and profit share basis, which only makes sense if the calls are producing money we can both see. What that looks like for {{Business Name}} is a conversation, not a number I am going to invent in an email.
CTA: Book 20 minutes, we will walk your own calls, then talk structure: https://birdseyeroi.com
Body, agency track:
Twelve days in, so here is the honest version.
I built this for myself first. I was running lead flow and I could not prove, on a Friday, that any of it landed. I could prove the phone rang. Nobody pays for the phone ringing.
So I made every call carry a dollar. Then I made the output something I would be proud to send instead of something I had to sit on a call and explain.
The commercial side, plainly. This is not a per-seat license you buy, mark up, and resell. We work on revenue share and profit share, built around what the call data actually surfaces. Your account count, your provider spread, and who owns the client relationship all change the shape of it, which is exactly why it is a call and not a price sheet. Quoting you a structure before I know those things would be a guess, and you would be right to discount a guess.
CTA: Book 20 minutes and we will talk structure against your real account mix: https://birdseyeroi.com
Email 5, Day 18, break-up
Subject (operator): Closing your file Alternate A: Last one from me Alternate B: I will stop here
Subject (agency): Closing the loop on this Alternate A: Fit or no fit, both are useful Alternate B: Last note on this
Preview text (operator): No pitch. Just the close-out. Preview text (agency): One thing worth keeping either way.
Body, operator track:
Last note to {{Business Name}}.
A few emails and no reply, which usually means one of three things. You have this handled, the timing is wrong, or it is not the fire you are fighting this quarter. All three are fine and none of them need an answer.
I am closing your file so I stop landing in your inbox.
If it comes back around, the thing worth keeping is small. Whatever you end up using, make it put a dollar on the call. A call count is not money, and you should not have to dig for the part that is.
Everything is at https://birdseyeroi.com whenever.
CTA: Reply "later" and I will check back in six months. Otherwise this is the last one.
Body, agency track:
Last note to {{Business Name}}.
No reply usually means the fit is not there, the timing is not there, or you already have somebody doing this. All fine, and none of them need explaining.
Closing the loop so I stop crowding your inbox.
One thing worth keeping either way. The report you send is more of your product than the leads are. A client who can see, per service and per area, what your work was worth does not have the "I am not sure this is working" conversation with you in month seven. He has it with somebody else.
https://birdseyeroi.com if it comes up.
CTA: Reply "later" with a month and I will check back then. Otherwise this is the last one.
Section 2: Warm nurture sequence, 3 emails
Trigger: booked a demo, attended, did not close. Entry point is 3 days after the demo.
Written in the operator voice by default, because most demos are operators. Each email carries an Agency swap giving the paragraph that changes when the prospect is an agency owner. Swap the paragraph, keep the rest.
Nurture Email 1, Day 0 (3 days post-demo)
Subject: The one screen from our call Alternate A: The part that actually puts the dollar on the call Alternate B: Picking up where the demo left off
Preview text: Not a recap. The single screen that mattered.
Body:
Thanks for the time on the demo. Rather than a recap of everything, here is the one piece that matters for your situation.
Revenue rules are what put the dollar on the call. You set what a booked roof is worth, what a drain job is worth, what a service call is worth. Per service, per niche, as rough or as exact as you want to be.
After that, the screen stops being a list and starts being money. The end of day number is just true, and you can look at it for four seconds and be done.
That is the layer a phone provider does not have. A provider can tell you the call happened. It has no idea what the call was worth.
Nothing else changes on your side. Your numbers, your forwarding, and your providers stay where they are.
Agency swap (replace the "end of day number" paragraph):
After that, the report writes itself. Per service and per area, each line carrying a dollar figure, sorted so the client sees which service is carrying his month without you explaining it to him.
CTA: Reply with your two biggest service lines and I will write out what the rules would look like for them.
Nurture Email 2, Day 6
Subject: The objection I should have answered on the call Alternate A: If the hesitation is the commitment, read this one Alternate B: What I did not explain well during the demo
Preview text: The real hesitation, answered straight.
Body:
Thinking back on our call, I do not think I answered the real hesitation, so let me do it now.
It is usually one of two things.
The first is "we already have call tracking." True, and it is also the point. This does not replace Twilio, SignalWire, CallFire, or CallRail. It reads what you already have and adds the part none of them do, which is the dollar on the call. Your numbers stay. There is almost nothing to switch.
The second is that nobody wants another monthly bill to justify when the quarter gets tight. On that one: this is not a subscription. We work on a revenue share and profit share basis, tied to money we can both see. What it looks like for you depends on your volume and your service lines, which is why it belongs on a call and not in an email where I would be guessing at your numbers.
If the hesitation is something else entirely, tell me the real one and I will answer it straight.
Agency swap (replace the first hesitation paragraph):
The first is "we already have call tracking for these accounts." True, and it is the point. This sits on top of whatever each client is already on and adds the column you cannot produce today, which is what the call was worth. No migration, no client conversation about changing numbers.
CTA: Reply with the actual hesitation and I will answer it in one email. No second demo required.
Nurture Email 3, Day 14
Subject: Should I close this out? Alternate A: Where do you want to leave this? Alternate B: Open or closed, either is fine
Preview text: One question, and no follow-up if the answer is no.
Body:
No pitch here, just housekeeping.
You have seen it, so there is nothing left for me to show you. One direct question instead: should I keep this open or close it out?
If it is timing, name the quarter and I will go quiet until then. If it is a no, that is genuinely fine and I will stop.
If it is still a maybe, the fastest way through is not another demo. Send me one month of your calls and I will put a dollar on each one and send it back. You will know in about a minute whether that number is worth having in your pocket.
Agency swap (replace the last paragraph):
If it is still a maybe, the fastest way through is not another demo. Give me one month of calls from a single account and I will send back the report you would have handed that client on a Friday. Then you are judging the actual deliverable instead of a screenshare.
CTA: Reply with one word: open, later, or closed.
Section 3: Social posts, 20 total
LinkedIn is the agency owner. Facebook is the operator. X and Instagram split between them and are labeled per post. The two voices should be audibly different when read back to back.
LinkedIn, 6 posts, agency owner audience
LinkedIn 1
Friday, 4pm. The text comes in. "How are the leads doing?"
You know the answer is good. That is not the problem.
The problem is that proving it takes two hours of pulling numbers out of three places and rebuilding the same spreadsheet you rebuilt last month, and by the time it is ready the client has already decided how he feels.
Nobody churns over a bad month. They churn when they stop being able to see it worked.
So build the proof before the text arrives. Per service, per area, dollars on every line, ready to send.
#AgencyOps #LeadGen
IMAGE BRIEF: A phone lock screen with the "how are the leads doing" text, next to a finished BirdsEye per service report already open, no spreadsheet in sight.
LinkedIn 2
Your client does not want a call log.
He wants a scoreboard. Which service is carrying the month, which area is worth more, what moved since you took it over. Sorted, so the answer is the top row.
We hand clients raw volume because volume is what the provider gives us. Then we spend the call explaining why the number is good news. If a report needs a narrator, it is not a report.
Make the top of the page say what the work was worth. Everything under it is detail.
#AgencyGrowth #ClientReporting
IMAGE BRIEF: A leaderboard-style panel, service rows sorted by revenue with the top performer highlighted, month over month arrow beside each row.
LinkedIn 3
Being judged on volume is a trap you built yourself.
Deliver 400 calls, get asked for 500. Deliver 500, get asked why they are worse than the 400. There is no version of that conversation you win, because volume has no ceiling and no floor and no relationship to whether the client made money.
Change the unit. A report that says which services and which areas produced revenue puts the conversation on the ground where you actually performed.
The client stops counting and starts comparing months.
#AgencyLife #LeadGeneration
IMAGE BRIEF: Two report headers stacked, top one titled with a bare call count and dimmed, bottom one titled with a revenue figure broken out per service, in full color.
LinkedIn 4
Per service and per area is not a reporting preference. It is how your client thinks about his own business.
He does not think in channels. He thinks about the fact that the roof jobs came from the north side and the drain jobs did not, and that one crew has been busy and the other has not.
Hand him a report shaped like his own head and he reads it in ten seconds. Hand him one shaped like your ad account and he asks you to walk him through it, which is a meeting you did not need to have.
#LocalMarketing #AgencyOps
IMAGE BRIEF: A service and area breakdown view, roofing, HVAC, plumbing rows each with a value figure, and an area split beside them.
LinkedIn 5
I built the report I was embarrassed to send.
Not embarrassed by the work. The work was fine. Embarrassed that the artifact proving it was a spreadsheet with three tabs, one broken formula, and a header I had renamed from last month.
The deliverable is part of the service. If the thing landing in the client's inbox on Friday looks like it took four minutes, that is what he assumes the month took.
Make it look like the work you actually did.
#AgencyOps #ClientRetention
IMAGE BRIEF: A finished, branded report page in the product frame, clean typography and charts, next to a closed laptop. No spreadsheet visible.
LinkedIn 6
The hardest question a client asks is not "how many leads."
It is "which of these turned into money."
Most agencies cannot answer it, and it is not for lack of effort. The calls are sitting across whichever providers got set up in whichever years by whichever people, and none of them carry a revenue field.
BirdsEye reads them into one place and puts a dollar on each call, then splits it per service and per area. Junk drops out before the totals, so the number holds up when the client checks it against his own booked work.
The question stops being the hard one.
#Attribution #AgencyGrowth
IMAGE BRIEF: Four provider labels feeding into a single report view where the visible column is a dollar figure per call, not a duration.
Facebook, 6 posts, local service owner audience
Facebook 1
Four seconds. That is how long you actually have between jobs.
Gloves off, phone out, thumb, and you either know how the business is doing or you do not.
BirdsEye puts one number on that screen. What today made. What the last call was worth. Nothing to open, nothing to filter, nothing to learn.
Four seconds and you know if today paid.
IMAGE BRIEF: Phone held in a work-gloved hand on a truck seat, product screen showing one large figure and a green arrow, everything else quiet.
Facebook 2
Ask any contractor which ad brought in his best job last month.
Watch him guess.
It is not carelessness. The phone system tells him the call happened and stops there. No dollar attached, no way to trace it back, so the answer becomes a feeling about which month felt busy.
BirdsEye puts a dollar on the call. Next month you are not guessing.
IMAGE BRIEF: A single call row in the product frame with the service and a dollar figure filled in, the rest of the screen deliberately empty.
Facebook 3
A call came in an hour ago. Most tools will tell you it lasted six minutes.
Six minutes is not a number you can spend.
BirdsEye tells you it was a roof replacement and what it is worth. Every call, a number instead of a recording you have to sit through.
IMAGE BRIEF: Split frame, left a plain call log row showing only a duration, right the same call in the product showing service needed and a dollar figure.
Facebook 4
You do not need to change your phone number to see what your marketing made.
That is the first thing everybody asks. Nobody wants to reprint trucks, yard signs, and door hangers.
BirdsEye reads the tracking numbers you already have. Your numbers stay. Your forwarding stays. You just finally see the money side of it.
IMAGE BRIEF: A work truck door with a phone number on it, beside the product's number list showing that same style of number with its service and destination.
Facebook 5
You cannot fix what you never see.
A missed call is a lost job, and everybody knows that. The part people miss is that missed calls are buried in a dashboard nobody logs into, so they stay invisible until the month is over and the person has already hired somebody else.
BirdsEye surfaces them while you can still call back.
IMAGE BRIEF: Missed call list in the product frame with a callback prompt, phone sized crop, timestamps recent enough to still act on.
Facebook 6
Nobody wants another dashboard.
You already have logins you never open. Adding a fifth screen to check is not help, it is homework.
So this is not a place you go look. It is a chart that shows up at the end of the day and the end of the week and tells you how it went. Up or down, and what it was worth.
If you have to learn it, it was built wrong.
IMAGE BRIEF: An end of week summary view, one headline figure, one simple trend chart, no menus or filter chrome visible.
X / Twitter, 4 posts
X 1 (operator, 191 characters)
You get about four seconds between jobs.
So the number goes first. What today made. What the last call was worth.
No dashboard to open. No report to build.
IMAGE BRIEF: Tight crop of the product's headline figure and trend arrow, shot on a phone in a truck.
X 2 (operator, 168 characters)
"It lasted six minutes."
Six minutes is not a number you can spend.
Every call should carry a dollar, not a duration.
IMAGE BRIEF: Duration text struck through, replaced by a dollar figure inside the product frame.
X 3 (agency, 208 characters)
Friday, 4pm: "how are the leads doing?"
The work was good. Proving it takes two hours in a spreadsheet.
Per service, per area, dollars on every line, ready to send.
IMAGE BRIEF: Finished report page in the product frame with a send action visible, no spreadsheet on screen.
X 4 (agency, 197 characters)
Your client does not want a call log.
He wants to see he is winning. Which service carried the month, which area was worth more, what moved since last month.
IMAGE BRIEF: Sorted service leaderboard with the top row highlighted and a month over month arrow beside it.
Instagram, 4 captions
Instagram 1 (operator)
On-image text callout for the designer: "FOUR SECONDS"
Caption:
That is the real attention span of a guy running a business.
Gloves off, phone out, thumb. Either you know how today went or you do not.
So the number is the first thing on the screen. What today made. What the last call was worth. Nothing to open and nothing to learn.
Four seconds and you know if today paid.
Link in bio: https://birdseyeroi.com
IMAGE BRIEF: Square crop, gloved hand and phone on a truck seat, one large figure and a green arrow on screen, everything else quiet.
Instagram 2 (operator)
On-image text callout for the designer: "SIX MINUTES IS NOT A NUMBER YOU CAN SPEND"
Caption:
A call came in an hour ago. Most tools will tell you how long it lasted.
That is a duration. It is not money, and it does not tell you whether to run that ad again.
BirdsEye tells you what the call was for and what it is worth. Every call, a number instead of a recording you have to sit through.
IMAGE BRIEF: Square split, plain duration row on one side, the same call in the product with service and dollar figure on the other.
Instagram 3 (agency)
On-image text callout for the designer: "PER SERVICE. PER AREA."
Caption:
Your client does not think in channels. He thinks about the fact that the roof jobs came from the north side and the drain jobs did not.
So the report is shaped like his head, not like your ad account. Which service carried the month. Which area was worth more. What moved since last month.
He reads it in ten seconds and does not ask you to walk him through it.
IMAGE BRIEF: Square crop of the service and area breakdown, rows sorted by value, area split visible beside them.
Instagram 4 (agency)
On-image text callout for the designer: "SEND IT WITHOUT EDITING"
Caption:
The deliverable is part of the service.
If the thing landing in a client's inbox on Friday looks like it took four minutes, that is what he assumes the month took.
Branded, per service, per area, dollars on every line. Something you send, not something you rebuild.
Make it look like the work you actually did.
IMAGE BRIEF: Square crop of the finished branded report page inside the product frame, clean typography, send action visible.
Section 4: Ten headline variants and ten hook lines
Headlines, for ads, page headers, and section titles
- Know what the last call was worth before you put the phone down.
- Four seconds, and you know if today paid.
- A thirty thousand foot view of your business, on the screen you already check.
- Your calls, with a dollar figure attached.
- The report your client actually wants to see.
- It comes to you. End of the day, end of the week, without you asking.
- Not another dashboard. One number.
- Per service. Per area. In dollars.
- Six minutes is not a number you can spend.
- Make it look like the work you actually did.
Hook lines, for video openers, ad first frames, and post line one
- You get about four seconds between jobs.
- Ask any contractor which ad brought in his best job. Watch him guess.
- Friday, 4pm. "How are the leads doing?"
- Your client does not want a call log.
- Nobody wants another dashboard.
- A call came in an hour ago. Do you know what it was worth?
- I built this because I was tired of guessing.
- Nobody churns over a bad month.
- You do not need to change your phone number to see what your marketing made.
- If you have to learn it, it was built wrong.
Note for whoever pulls from this list: none of these ten headlines or ten hooks lead with a platform statistic, and none of them is the retired category line. That is deliberate. Do not reintroduce either.
Merge fields available in batch 1
Source list: icp-contacts-first-300.csv in this same folder, 300 rows.
There is no first name for this batch. The First Name column is empty on all 300 rows, so no email in this pack may depend on one, and none of them do.
| Field | Column name in the CSV | Populated | Safe to merge |
|---|---|---|---|
| Business name | Business Name |
300 of 300 | Yes |
| City | City |
300 of 300 | Yes |
| State | State |
300 of 300 | Yes |
| Niche | Niche |
300 of 300 | Yes |
Email |
300 of 300 | Send field, not body copy | |
| First name | First Name |
0 of 300 | No. Never merge. |
Only {{Business Name}} is used in the copy above, in cold emails 1, 3, 4, and
5 on both tracks. Rewrite the double-brace syntax to whatever the sending
platform expects before the send, and map it to the Business Name column
exactly.
Two more things the sender needs to know about this list:
- Roughly 128 of the addresses are role inboxes: info@, service@, office@, support@, contact@, sales@, admin@, estimates@, scheduling@. A front desk reads those, not the owner. That is why the openers either name the business and route the message, or skip the salutation entirely.
- Business names in this list run up to 92 characters and some carry commas,
ampersands, and registered-trademark marks. Keep
{{Business Name}}inside a sentence, never alone on a salutation line where the punctuation reads wrong.
Pre-send check for this pack
- No subject line, preview line, or first sentence contains a spam share, a total call count, or a tracked revenue total.
- The retired category line appears nowhere outside the deck.
- Operator sends use the operator track only. Agency sends use the agency track only. Never a mixed send.
- Any dollar figure in creative sits inside a product frame and is never tied to a named business.
- No first name merge. There is none in this batch.
- A reply of any kind pulls the contact out of automation the same day.