Dashboard
Overview of your outreach activity
Total Contacts
0
in loaded list
Emails Sent
0
all time
Open Rate
tracked via Resend
Unsubscribes
0
opt-outs logged
Recent activity
No activity yet — create your first campaign to get started.
Quick start guide
1
Sign up for Resend
Free account at resend.com → verify guidance-plus.com → get API key → set it as RESEND_API_KEY in Netlify environment variables.
2
Deploy unsubscribe.html
Copy the file from the Unsubscribes tab and commit it to your GitHub repo. Netlify auto-deploys.
3
Upload contacts
Go to Contacts → upload CSV (first_name, last_name, email, company, title).
4
Launch a campaign
New Campaign → pick template → AI personalizes → send. Open tracking + unsubscribe links are automatic.
Upload contact list
Click to upload CSV file
Required: first_name, last_name, email, company — title optional
Campaign details
✓ Unsubscribe footer appended to every email automatically
✓ Open tracking enabled via Resend on every send
✓ List-Unsubscribe header added for Gmail/Outlook native button
AI personalization preview
Select a contact to see how AI will rewrite your template specifically for them before sending.
Preview
Your personalized preview will appear here...
Send campaign
Load contacts and fill in your campaign details.
Open counts come from Resend. Click refresh to pull the latest data.
All campaigns
No campaigns yet — go to New Campaign to get started.
How unsubscribes work
Every outgoing email automatically includes a CAN-SPAM-compliant footer with an unsubscribe link pointing to guidance-plus.com/unsubscribe.html. When clicked, the contact submits a Netlify form and their opt-out is logged in your Netlify Forms dashboard. Export that list as CSV before each campaign send to suppress opted-out contacts.
1
Copy unsubscribe.html below and add to your GitHub repo
Commit it as unsubscribe.html in the root of your repo. Netlify auto-deploys it to guidance-plus.com/unsubscribe.html.
2
Set up Netlify notification
Netlify → Forms → unsubscribe-request → Notifications → add jeremy@guidance-plus.com so you're alerted on every opt-out.
3
Suppress before each send
Download your Netlify form submissions (CSV) → remove those emails from your contact CSV before uploading here.
Unsubscribe footer — included in every email
Opt-out log (this session)
No opt-outs recorded this session. Real unsubscribes appear in your Netlify Forms dashboard under "unsubscribe-request".
Resend API configuration
Sign up at resend.com → Domains → Add → verify guidance-plus.com (same DNS process as DKIM — add the records Resend gives you in Netlify DNS) → API Keys → Create.

Sends route through a Netlify function (/.netlify/functions/send-email) instead of calling Resend directly from the browser. The API key is set as a RESEND_API_KEY environment variable in Netlify (Site configuration → Environment variables) — it's never entered here or stored in the browser.
Change dashboard password
The staff login password is no longer stored in this file — it's set as the STAFF_PASSWORD environment variable in Netlify (Site configuration → Environment variables). Update it there and it takes effect immediately, no redeploy needed.
Open tracking — how it works
All emails are sent as HTML. Resend automatically injects a tracking pixel. When a recipient opens, Resend records the event.

View opens in: Resend dashboard → Emails → click any email → Events. Or use the Refresh opens button on the Campaigns tab to pull counts here.
Data storage
Settings and campaign history are saved to browser localStorage on this device — they persist across sessions automatically.

Every campaign send is also logged to your Netlify Forms dashboard under "campaign-log" as a backup record you can export any time.