How-to guides

Send email & sequences

Email accounts straight from Diurno HQ — templates with placeholders, one-off sends, and cadences that stop on reply.

Generate outreach writes the copy; this guide is about sending it — one email at a time from any account page, or automatically as a multi-step sequence. Either way Diurno HQ does the bookkeeping: every send lands on the Outreach screen's Sent tab as delivered and on the account's timeline as a touch, and replies reach your inbox (Reply-To is the sender; with reply detection on, replies pass through Diurno HQ first and are forwarded to you). Sending is part of the paid plans: on the Free plan you can draft and preview an email and build templates and sequences by hand, but not send, enroll companies, or use Generate with AI.

Send one email

  1. 1Account page → EmailThe composer opens with the account's best contact pre-picked — named people first, never one marked do not email (those show greyed out in the list, labelled “do not email”, and can't be picked). Contacts with no address and verified departures never appear.
  2. 2Write it — or don'tStart from a saved template, click AI opener to pull in the copy from this account's trigger brief, or just type (if you've already typed a draft, a template or the AI opener asks before replacing it). Placeholders like {first_name} and {why_now} stay generic here and render per recipient at send time.
  3. 3Preview, then sendPreview shows the subject and body with the placeholders filled in, lists anything that would stop the send (a misspelled placeholder, a blank subject or message, a recipient who is on your do-not-email list — it says what put them there), and names any sentence left out because there was nothing sourced to put in it; Send stays disabled while a problem shows. The footer — your organization's name, your mailing address and an unsubscribe link — is added when the email is sent, so it isn't in the preview. A send is logged and updates the account's last-engaged date in the same motion, then clears the draft so the same email can't go out twice.

Templates & placeholders

Write an email once on OutreachTemplates and reuse it everywhere — the composer, sequence steps, and enrollments all render it per account and contact. In list views the blanks read plainly — [name], [company], [the reason] — while the editor keeps the raw tokens you type:

PlaceholderRenders as
{company} · {why_now}The account's name, and a short reason built only from its current, sourced evidence (the same evidence rules as the Daily Brief). With no such evidence, the sentence that holds {why_now} is left out.
{first_name} · {contact_name} · {contact_title}The recipient. A name falls back to their persona, then to “there”; {contact_title} (the title, or the persona) leaves its sentence out when there is none.
{my_name} · {my_email} · {workspace}You, and the workspace the email is sent from. {my_email} leaves its sentence out when you have none.

Typos can't hide

A misspelled {placeholder}, or a subject that needs a fact the account doesn't have, is not sent. A one-off send shows what's wrong in the preview and won't go until you fix it; a sequence step waits with the reason shown (“On hold: …”) and goes out once the step is fixed.

A template that a sequence still uses can't be deleted — the Used in column counts the sequences using it, and its greyed-out delete button says to remove it there first.

Build a sequence

  1. 1Outreach → Sequences → New sequence — or let AI write itName it, then add the steps. The builder speaks plainly: step 1 starts the moment you add a company (its wait is always zero); every later step is “then wait N days” (1–365) — pick a template or write the copy right there. A step set to Use a template sends exactly that template (its B version too, when it has one); text typed under Write it here stays in the form so you can switch back, but isn't saved or sent while a template is chosen. The timeline counts days from the first step, so waits of 3 and 7 days read Right away → Day 3 → Day 10. Or skip the blank page: Generate with AI writes a full library of templates and sequences from your workspace's own model, ready to review and edit. It needs a live AI model; where there is none, or on the Free plan, the button is disabled with the reason beside it and you write them by hand with New template.
  2. 2Add companiesThe Add companies button sits right on each sequence card — search, tick, done. Also from any account page (the enroll button next to Email), or automatically with an automation rule — “enters Call now → enroll in the hot-account cadence”. A sequence that opens with an email won't take a company nobody can be emailed at — no contact email address, or only people on your do-not-email list or confirmed to have left: the result names it as “not added — nobody there can be emailed”. A LinkedIn- or call-first sequence still takes it (a person is enough), and a later email step stops that company's sequence, with the reason shown, if nobody there has an address. Add one company with a first step that's an email and, inside your sending hours, it goes out right away, and the dialog says where step 1 stands (sent, on hold with the reason, scheduled for a time, or a to-do in Actions); several at once go out on the next sequence run, which the dialog says hasn't happened yet. A LinkedIn or call first step becomes a to-do due today in your Action Stream. While email sending is off you can still add companies — email steps simply wait (nothing is skipped) until it's on.
  3. 3Let it runA background runner checks every 15 minutes for steps that have come due and sends the ones that are inside your sending window and under the daily limit (the daily agent also runs it once in its morning pass). A step that comes due outside the window is held and goes out on the first pass after it opens; a step that can't go yet shows why under Who's in a sequence (“On hold: …”, “Waiting to retry: …”). If the email provider is busy or unreachable, the step waits (15 minutes, up to 6 hours) and doesn't use up a try; a message the provider rejects counts as a failed attempt and is tried again the next day, up to three tries, after which the enrollment is marked failed, an alert is raised, and the row has a Resume button. If the provider refuses the API key or the sending domain, every cadence holds with that reason and the setup card shows it. Who's in a sequence (below the cards) shows every company's step, Next send, and a Stop button — the newest 500 enrollments plus every running one.

LinkedIn and call steps

A step doesn't have to be an email. Pick LinkedIn message or Phone call on any step and Diurno HQ writes the message (or talking points) with the same fill-in-the-blank spots — then, when the step comes due, hands you a to-do in Actions with the finished text: paste it into LinkedIn, or make the call. The sequence waits for you (the guide strip counts what's waiting), moves on the moment you check the task off, and logs the touch on the timeline. Honesty note: LinkedIn forbids automated DMs and a call is a call — Diurno HQ does everything except press their Send button. These steps work even while email sending is off (on a paid plan, which is where sequences can be started).

A/B test a template

Open any template and click Try a second version (A/B test) to add a B subject and/or body. From then on, sends that use the template split 50/50 — each account is assigned a version deterministically, so a company always sees the same variant across a sequence. The Templates tab shows the running tally per version (sent · clicked); clicks are the honest signal to compare, since Apple Mail inflates opens (and a click that looks automated isn't counted). Leave the B subject blank to reuse the A subject and test only the body (or vice versa). Remove the B version at any time and everything sends A again.

Sending hours and daily caps

By default sequence email goes out only between 8am and 6pm in your workspace's timezone (US Central unless you pick another), and a workspace sends at most 200 emails a day — sane defaults that keep you off spam-block radars and out of 2am inboxes. The hours govern sequences; a one-off email from the composer isn't held to them, but it counts toward the daily limit and is refused with a plain message when the limit is spent. Owners and admins change the hours, timezone (the zones your browser knows are listed, under their current names — Asia/Kolkata, Europe/Kyiv), and daily limit (10–2,000) in SettingsIntegrationsSending hours & deliverability. A sequence send that comes due outside the window (or past the cap) isn't lost — it's held, and goes out on the first runner pass after the window opens and the cap has room (the runner checks every 15 minutes); its Next send time on the Sequences tab shows when. The same card runs a live SPF / DKIM / DMARC check on the domain Diurno HQ sends from — each record shows a tick when it was found, a dot with what to add when it wasn't, or a question mark when DNS couldn't be queried, and Check now re-queries (limited to 12 fresh checks per person per five minutes) — so you can see missing DNS records before they hurt deliverability. It's also where you add your company's mailing address: every sales email carries it in the footer, and a workspace without one holds its email steps instead of sending without it.

What stops a sequence

  • They reply — with reply detection configured (see the setup callout below), the reply itself stops the cadence the moment it arrives: Diurno HQ matches it to the thread, ends the enrollment, logs it in OutreachConversations, forwards it to your inbox, and raises an alert. Out-of-office and bounce notices are ignored rather than logged as replies. If the email provider can't hand over a reply's text right now, a reply that carries the thread token of a message you sent still stops that account's sequences first (every one that has Stop when they engage ticked) and raises a high alert, “<name> replied — the text is still being retrieved”, which says so and points you to the reply in your email provider's inbox. The provider is asked to deliver the reply again (for up to about six hours): when the text arrives the reply is logged, a request in it to stop is acted on, and that alert retires itself; if it never arrives, the reply is logged with an alert that says plainly the text was unavailable. A refusal that won't pass (a key that can only send, not read received email, for example) logs the reply at once with that same alert. A reply with no thread token, matched only by its From line, stops nothing until its text and sender can be checked, because a From line alone can be written by anyone. A bounce or spam complaint that arrives a moment before its send has recorded its provider id is retried the same way, and nothing is marked handled until it was. No reply detection yet? Open the thread and hit Log reply — same effect, one click.
  • They engage — any human touch you log after enrollment (a call, a meeting, a logged reply) stops the cadence, unless you unticked Stop when they engage in the sequence builder. The sequence's own emails — and the LinkedIn/call touches its tasks log — don't count as engagement.
  • They opt out — an unsubscribe puts the address on your organization's do-not-email list. The footer link opens a page that names the sender and shows a masked form of the address, and records the unsubscribe only when the person presses its button, so a mail scanner that merely opens the link changes nothing (the page then offers a Re-subscribe button); the one-click Unsubscribe a mailbox provider shows acts at once, because that click is the person's own. A reply counts only when it is essentially nothing but a request to stop — “unsubscribe”, “stop”, “remove me from your list”, “take me off your list”, “opt out”, “please do not contact me”, with a greeting or thanks, ignoring quoted text and the signature (English only). A bare name or one-line sign-off after the request (“Thanks, John”, “-John”, a name over a company) is read as a signature, and “not interested” beside a clear request still counts. It applies to the contact's own address, not to whatever address the reply came from; its alert reads “<name> replied asking to stop — added to your do-not-email list”. A reply that only mentions stopping among other things — a bare “Stop.” inside a longer reply, or a stop request typed below the quoted text of your email — raises an alert, “<name> replied — this may be a request to stop”, and adds nothing to the list: you read it and tick Do not email if they do want to stop. Both alerts carry a Review the contact → link to the account's Committee tab. A hard bounce or a spam complaint adds the address the same way. Sends, one-off or sequence, are checked against that list; every contact in your organization with that address, in any workspace, is flagged; and their sequences end with the reason that is true of that address — “contact unsubscribed”, “contact asked to stop in a reply”, “email address bounced”, “recipient reported the email as spam” or “contact marked do not email” — a sequence doesn't move on to a colleague after someone opts out. The list survives deleting the contact, the account or the workspace, and a contact created or imported later with that address starts as do-not-email. Changing a contact's email to an address that is already on the list flags that card and ends its sequences too.
  • Switching an opt-out back off depends on where it came from. A Do not email you ticked yourself (and the flags that existed before the list was introduced) can be unticked by any member; the other cards flagged along with it stay flagged until you untick them too. An opt-out read out of a reply can be switched back on only by an owner or admin, who is asked to confirm that the person has since asked to hear from you again. A person's own unsubscribe can't be switched back on from the app. The Re-subscribe button on the page their footer link opens undoes it for 30 days after the unsubscribe; it works for whoever holds the link (a forwarded copy, a shared inbox), so it is an undo and not a standing switch, and unsubscribes and re-subscribes are written to the audit log Diurno HQ keeps on its servers (your organization and a salted reference to the address, never the address itself — it is not a screen in the app). If you had ticked Do not email on that address first, or the person had earlier replied asking to stop, Re-subscribe puts that earlier hold back instead of clearing it: the page tells them their unsubscribe is undone and that the address is still on your list, and it stays there until you untick it (or, for a reply, an owner or admin confirms). Follow-ups the unsubscribe stopped are not restarted. After the 30 days the app can't switch it back on at all. A bounce or a spam complaint can't be switched back on from the app either, and the message says which it is. When someone unsubscribes (or bounces, or complains) after you ticked the box, the recipient's action is what is recorded.
  • The deal resolves — the account becoming Customer or Disqualified ends the cadence.
  • You pause the sequence — that holds every enrollment where it is: nothing is stopped or skipped, no step goes out while it is paused, and each enrollment resumes on the first runner pass after you resume the sequence (still inside your sending window and daily cap). A customer, a disqualified account or a reply still ends an enrollment while it is paused (the morning run checks), and an address on the do-not-email list isn't emailed, paused or not. Pausing never touches the steps themselves — LinkedIn and call steps stay LinkedIn and call steps. Archiving the workspace holds enrollments the same way.

Nothing stops silently: every ended enrollment shows its reason on the Sequences tab, so “why did this stop?” is easy to answer.

Setup happens on the Diurno HQ server

Email isn't set up per customer: the whole service sends from one Diurno HQ sending address (replies go to the rep), through one email provider connected on the Diurno HQ server — an API key, a verified sender address, and the app's public address, which the unsubscribe link needs. Those steps are done by whoever runs the deployment, not by each customer, and until they are the composer says up front that email sending is off — Send is disabled, but you can still draft and preview — sequence emails wait in place (nothing is skipped), and nothing sends half-configured. Two extras are optional: automatic reply detection (a reply-to address that the provider routes back to Diurno HQ; reading a reply's text also needs a provider key that can fetch received mail) and open/click tracking (the API's public address — without it emails go out with plain links and nothing is recorded). What is yours: your company's mailing address, which the law requires in every sales email and Diurno HQ prints in the footer — each workspace sets its own under SettingsIntegrationsSending hours & deliverability — plus your templates and sequences. A send the provider rejects says so in the provider's own words and shows on the setup card; owners and admins see that checklist at the top of Outreach (collapsible; it remembers whether you left it open), ticking each step off by itself, with a Send a test email button, and everyone else sees one line — ask your Diurno HQ admin.