Bay Media AI
Sales reference

What happens to a lead — by email.

Two scenarios, side-by-side. Same plumbing underneath — the only things that change are who the lead is assigned to and which name shows in the inbox.

Agent-captured
Cold lead
Email sent
Scheduled job
Scenario A

Agent signs up a lead

The agent is logged in and in Selling Mode (the bm_agent cookie is set). The lead is assigned directly to that agent — the public round-robin queue is untouched.

1

Lead submits the form

Form posted while the agent's signed cookie is present.
2

Assign directly to the agent

We verify the cookie, confirm the agent is active, and assign the lead to them. The rotation counter does not move — cold leads are counted separately.
3

Save lead + schedule 7 PM follow-up

Lead row is written with captured_by_agent = true and a follow-up time set to the next 7 PM in the lead's local timezone.
Immediate
4a

Confirmation email → Lead

From{Agent} at Bay Media <noreply@baymedia.ai>
Reply-toAgent's personal email
SubjectThanks {firstName} — let's pick this up
BodySigned by the agent personally ("This is {Agent} and I'm just confirming…").
Immediate
4b

New-lead alert → Agent + Graham

FromBay Media Leads <noreply@baymedia.ai>
Reply-toThe lead's email address
ToThe assigned agent AND graham@baymedia.ai
SubjectNew Lead — {First Last}
Tag in body"Captured via Selling Mode"
Later — at 7 PM lead's local time
5

Presentation follow-up → Lead

Sent automatically by a background job (checks every 5 min).
From{Agent} at Bay Media
Reply-toAgent's personal email
SubjectA quick intro to Bay Media
Body"It's {Agent} again." — link to the Canva presentation, signed by the agent.
Scenario B

Cold lead from the website

A visitor submits the form anonymously — no agent cookie. The lead is assigned by round-robin across active agents.

1

Visitor submits the form

No cookie present — treated as a public visitor.
2

Round-robin assignment

The next agent in rotation is picked (next_assignee()). Order today: Katie → Gemma → Steve → Harry → Sean → repeat.
If rotation fails for any reason, falls back to the default agent.
3

Save lead + schedule 7 PM follow-up

Lead row written with captured_by_agent = false. Follow-up time set to the next 7 PM in the lead's local timezone.
Immediate
4a

Confirmation email → Lead

FromBay Media <noreply@baymedia.ai>
Reply-tohello@baymedia.ai
SubjectThanks {firstName} — let's pick this up
BodySigned generically by "the Bay Media team" — agent isn't named yet.
Immediate
4b

New-lead alert → Agent + Graham

FromBay Media Leads <noreply@baymedia.ai>
Reply-toThe lead's email address
ToThe assigned agent AND graham@baymedia.ai
SubjectNew Lead — {First Last}
Tag in body"Captured via website" (or "Book-a-call" if booked through that page)
Later — at 7 PM lead's local time
5

Presentation follow-up → Lead

Same scheduled job as Scenario A.
FromBay Media
Reply-tohello@baymedia.ai
SubjectA quick intro to Bay Media
Body"It's the Bay Media team here." — link to the Canva presentation, signed "Bay Media".

One-line cheat sheet

EmailWhenAgent-capturedCold lead
ConfirmationImmediatelyFrom {Agent}, replies go to the agentFrom Bay Media, replies go to hello@
Agent alertImmediatelyAlways sent to assigned agent + graham@baymedia.ai. Reply-to is the lead.
PresentationNext 7 PM (lead's timezone)"It's {Agent} again." Replies go to the agent."It's the Bay Media team here." Replies go to hello@.

Why two queues?

Agent-captured leads are not counted in the public rotation. If you sign up three leads in a row, the next cold visitor still goes to whichever agent is next in line.

Why 7 PM local?

The presentation follow-up lands at the end of the lead's working day — when they're more likely to actually read it, not when they just submitted the form.

Idempotent

Each lead can only receive the presentation email once — the system stamps it after sending so the cron can't double up.

Suppression

Unsubscribed, bounced or complained addresses are automatically skipped — no need to manage that manually.