Sendly

Email Marketing Dashboard

Complete Training Manual for Administrators

v1.0 · March 2026 · Sendly Email OPS

Table of Contents

  1. Logging In (Magic Link)
  2. Dashboard Overview
  3. Managing Campaigns
  4. Email Templates
  5. Template Builder
  6. Composing & Sending Emails
  7. Automated Email Flows
  8. Subscribers & CSV Import
  9. Segmentation
  10. A/B Subject Testing
  11. Analytics & Metrics
  12. Database Settings
  13. Troubleshooting
  14. API Reference

1. Logging In (Magic Link)

Login Page

The Sendly Email Dashboard uses passwordless authentication. Only authorized admin emails can access the dashboard.

Authorized Admins

EmailRole
admin@yourdomain.comSuper Admin
peacemarkhammed@gmail.comSuper Admin

How to Log In

1
Go to the dashboard URL. You'll be redirected to the login page.
2
Enter your admin email address and click "Send magic link".
3
Check your inbox for an email from hello@hellosendly.com with the subject "Your Sendly Dashboard login link".
4
Click the "Sign in to Dashboard" button in the email. You'll be logged in automatically.
Tip: The magic link expires in 15 minutes. If it expires, request a new one. Your session lasts 7 days before you need to log in again.

Logging Out

Click the "Sign out" button at the bottom of the left sidebar, below your name and role.

2. Dashboard Overview

Dashboard Overview

The main dashboard shows a snapshot of your email marketing performance over the last 30 days.

Key Metrics (Top Cards)

MetricWhat It MeansGood Target
Emails SentTotal emails sent in the periodGrowing month-over-month
Open Rate% of delivered emails that were opened25%+ (transactional: 40%+)
Click Rate% of delivered emails where a link was clicked5%+ (transactional: 10%+)
Revenue DrivenEstimated revenue attributed to email campaignsGrowing

Alerts Section

Below the metrics, you'll see color-coded alerts:

ColorMeaningAction
RedCritical issue (high bounce rate, complaints)Fix immediately
AmberUpcoming events or warningsReview and prepare
GreenGood news (performance above benchmark)No action needed

Active Campaigns Table

Shows your running campaigns sorted by open rate. Each row shows: campaign name, type, emails sent, open rate, click rate, and status.

Health Signals

Bottom-right panel shows deliverability health:

SignalTargetAlert If
Unsub Rate< 0.5%> 0.5% per send
Bounce Rate< 2%> 2%
Complaints< 0.1%> 0.1%
Deliverability> 98%< 95%

Time Period Toggle

Use the 30d / 7d / 90d buttons at the top to switch between time periods.

3. Managing Campaigns

All Campaigns

Go to All Campaigns in the sidebar to see every campaign.

Campaign Types

TypeDescriptionTrigger
Welcome4-email onboarding seriesUser registers
TransactionalOrder confirmation, delivery, ratingOrder events
ReorderWin-back series for inactive usersDaily cron (7/14/21 days)
NewsletterFaaji Friday, Monthly Digest, AnnouncementsScheduled/manual
PromoHoliday, Referral Blitz, MilestonesManual or milestone events

Campaign Statuses

StatusMeaning
liveActive and sending
autoAutomated (triggered by events)
draftNot yet sending
reviewNeeds attention (high bounce/complaint)

Filtering

Use the tabs at the top (All, Welcome, Orders, Reorder, Newsletter, Promo) to filter campaigns by type.

4. Email Templates

Email Templates

Go to Templates in the sidebar. You'll see all 16 built-in templates organized by domain.

Built-in Templates

TemplateWhen It Sends
WelcomeEmail1Immediately on signup
WelcomeEmail2Day 2 (if no ride taken)
WelcomeEmail3Day 5 (if no Eats order)
WelcomeEmail4Day 10 (Refer & Earn)
OrderConfirmationWhen order is placed
OrderEnRouteWhen Rider picks up order
RatingRequest30 min after delivery
WinBack17 days inactive
WinBack214 days inactive
WinBack321 days inactive
MonthlyDigest1st of each month
FaajiFridayEvery Thursday 6pm WAT
AnnouncementManual (city launch, features)
HolidayPromoManual (Eid, Christmas, etc.)
ReferralBlitzMonthly push
Milestone5th order, 10th ride, 1-year anniversary

Editing a Template

1
Click any template card to open the editor modal.
2
Edit the Template Props (JSON) on the right side. These control the dynamic content (name, promo code, etc.).
3
Enter a test email address and click "Send test" to preview how it looks in a real inbox.

5. Template Builder

Create custom email templates from scratch using the block-based builder.

1
Go to Templates → click "+ Create template"
2
Use the Blocks panel on the left to add content blocks: Heading, Text, Button, Image, Promo Code, Divider, Spacer.
3
Click a block in the Blocks list on the right to edit its content, links, and styling.
4
Use the arrows to reorder blocks, or the × button to remove them.
5
The Preview panel shows a live rendering of your email.
6
Fill in the template name, subject line, preview text, and category.
7
Click "Save template" to store it, or "Send test" to preview in your inbox.

Available Block Types

BlockUse For
HeadingSection titles, hero text (small/medium/large)
TextBody paragraphs, descriptions
ButtonCTA buttons with links (styled in Sendly orange)
ImageHeader images, product photos (paste URL)
Promo CodeHighlighted discount code with expiry
DividerHorizontal line separator
SpacerVertical spacing (small/medium/large)

6. Composing & Sending Emails

New Campaign Compose

Go to New Campaign in the sidebar.

1
Campaign Details: Enter campaign name, select email type and template.
2
Email Content: Set the subject line, preview text, and any custom overrides.
3
Audience: Select a segment (all_active, new_users, lapsed_7d, etc.) and optional city filter.
4
Send Settings: Choose to send immediately, schedule for a specific time, or optimize send time per user.
5
Click "Send" or "Save draft".
Warning: Always send a test email to yourself first before sending to the full audience. Check the email in Gmail, Outlook, and on mobile.

7. Automated Email Flows

Email Flows

Go to Email Flows in the sidebar. These are automated sequences triggered by user actions.

Active Flows

1
Welcome Series (4 emails over 10 days)

Trigger: User registers → Email 1 immediately → Wait 2 days → Email 2 (if no ride) → Wait 3 days → Email 3 (if no Eats order) → Wait 5 days → Email 4 (Refer & Earn)

2
Order Transactional (3 emails per order)

Trigger: Order created → Confirmation immediately → Picked up → En Route email → Delivered → 30 min delay → Rating Request

3
Win-Back / Reorder (3 emails, daily scan)

Daily at 6am WAT: scans for inactive users → 7 days → WinBack1 → 14 days → WinBack2 → 21 days → WinBack3 (last chance)

4
Faaji Friday (weekly)

Every Thursday at 6pm WAT: sends to all active subscribers reminding them of Friday discounts.

5
Monthly Digest (1st of month)

1st of each month at 9am WAT: sends monthly roundup with stats and stories.

8. Subscribers & CSV Import

Subscribers

Go to Subscribers in the sidebar to manage your email audience.

Importing Subscribers via CSV

1
Click the "Import CSV" button on the Subscribers page.
2
Either paste CSV data directly into the text area, or click "Upload .csv file" to select a file from your computer.
3
Your CSV must have a header row with at least an email column. Optional columns: name, user_id.
4
Click "Import subscribers". You'll see a summary of imported vs skipped rows.

CSV Format Example

email,name,user_id
tunde@example.com,Tunde Adeyemi,usr_001
hammed@example.com,Hammed Peacemark,usr_002
aisha@example.com,Aisha Ibrahim,usr_003
Tip: Duplicate emails are automatically skipped (no double-importing). Invalid email addresses are reported in the error summary.

9. Segmentation

Segments

Go to Segments in the sidebar. Segments are groups of users filtered by behavior or attributes.

Built-in Segments (from Sendly DB)

SegmentDescription
all_activeActive in last 30 days
new_usersRegistered in last 14 days
lapsed_7dInactive 7-13 days
lapsed_14dInactive 14-20 days
lapsed_21dInactive 21+ days
eats_usersAt least 1 Eats order
rides_usersAt least 1 ride
delivery_usersAt least 1 delivery
ibadanCity: Ibadan
referrersHas referred other users

Creating Custom Segments

Custom segments can be created from imported subscribers by assigning them a segment name via the API or during import.

10. A/B Subject Testing

Test two subject line variants to find which gets more opens.

How It Works

1
Create an A/B test via the API with two subject line variants and a test percentage (default 20%).
2
The system splits outgoing emails: some get Subject A, some get Subject B.
3
After enough samples (100+ emails), the system automatically picks the winner based on open rates.
4
The winner needs at least a 5% higher open rate to be declared. If too close, it stays pending.

11. Analytics & Metrics

Go to Analytics in the sidebar for detailed performance data.

Key Terms

TermDefinition
SentEmail accepted by Resend for delivery
DeliveredEmail reached the recipient's mail server
OpenedRecipient opened the email (tracked via pixel)
ClickedRecipient clicked a link in the email
BouncedEmail rejected by recipient's server (bad address, full inbox)
ComplainedRecipient marked email as spam
Important: If bounce rate exceeds 2% or complaint rate exceeds 0.1%, the system automatically suppresses those email addresses to protect your sender reputation.

Real-time Updates

The dashboard supports WebSocket for real-time metric updates. Counters update live as emails are sent and opened.

CSV Export

Download campaign metrics, email logs, and suppression lists as CSV files from the Analytics page or via the API:

GET /api/exports/campaigns     — Campaign metrics
GET /api/exports/email-log     — Send history
GET /api/exports/suppression   — Blocked addresses

12. Database Settings

Database Settings

Go to Settings in the sidebar to configure database connections.

Two Environments

EnvironmentPurposeWhen to Use
DevDevelopment / Staging databaseTesting, building templates, QA
ProductionLive Sendly databaseSending real emails to real users

Two Databases Per Environment

DatabaseAccessPurpose
Sendly DBRead-onlyUser data, activity, segmentation
Email Service DBRead-writeEmail logs, metrics, suppression, templates

Configuring a Database

1
Go to Settings and find the environment (Dev or Production).
2
Enter Host (IP or hostname), Port (usually 3306), Username, Password, and Database name.
3
Click "Test Sendly DB" or "Test Email DB" to verify the connection works.
4
Click "Save Dev Config" or "Save Production Config".
5
Use the Dev / Production toggle at the top to switch which environment is active.
Caution: Switching to Production means all queries go to the live database. Double-check credentials before switching. The active environment affects ALL dashboard data, segmentation, and email sending.

13. Troubleshooting

Common Issues

ProblemCauseFix
Can't log inEmail not in admin listOnly authorized emails can log in. Contact the system admin.
Magic link expiredLink is 15+ minutes oldRequest a new magic link from the login page.
Dashboard shows mock dataNo database connectedGo to Settings and configure your database connection.
Test email not receivedResend API key invalidCheck that the RESEND_API_KEY in .env is valid and the domain is verified.
High bounce rate alertBad email addresses in listReview the suppression list. Clean your subscriber data.
Email images not loadingImages hosted externallyEnsure image URLs are accessible (https://) and under 100KB.
"Connection refused" errorsDatabase not reachableCheck database host, port, firewall rules. Use the Test button in Settings.
Emails going to spamSender reputation issueCheck complaint rate. Ensure hellosendly.com domain SPF/DKIM are configured.

Health Check

Visit /health to see system status. A healthy system shows:

{
  "status": "ok",
  "checks": {
    "emailDb": { "status": "ok", "latency": 5 },
    "redis": { "status": "ok", "latency": 1 }
  }
}

14. API Reference

The email service exposes REST APIs for integration with the Sendly app.

Authentication

All API calls require either a session cookie (from dashboard login) or an X-API-Key header.

Event Endpoints (called by Sendly app)

MethodPathDescription
POST/events/user-registeredTrigger welcome series
POST/events/order-createdSend order confirmation
POST/events/order-picked-upSend "on its way" email
POST/events/order-deliveredSchedule rating request (30min)
POST/events/ride-completedCheck for ride milestones
POST/events/order-completedCheck for order milestones

Dashboard API

MethodPathDescription
GET/api/dashboard/statsOverview metrics
GET/api/dashboard/campaignsAll campaigns with metrics
GET/api/dashboard/healthDeliverability health signals
GET/api/dashboard/funnelEmail funnel data
GET/api/dashboard/scheduleUpcoming sends
GET/api/dashboard/realtimeLive counters
GET/api/dashboard/calendarCampaign calendar
POST/api/dashboard/send-testSend test email

Export Endpoints

MethodPathReturns
GET/api/exports/campaignsCSV of campaign metrics
GET/api/exports/email-logCSV of all email sends
GET/api/exports/suppressionCSV of suppressed emails

Multi-Language Support

Templates support 4 languages: English, Yoruba, Hausa, and Pidgin English. The system auto-detects language based on user city (Ibadan → Yoruba, Kano → Hausa).

Email Client Preview

Preview how emails render across clients: Gmail, Outlook (Windows), Apple Mail, and Yahoo Mail. Each client has different CSS support, and the preview simulates the differences.

You're all set! For technical support, contact the development team. For email deliverability issues, check the Health Signals dashboard first.