Campaigns are one-to-many email and SMS sends to a segment of your contacts. Newsletters, product launches, seasonal promos, multi-step drips, A/B tested broadcasts. Unlike Sequences (which are timed multi-step journeys per contact), Campaigns can be one-shot sends OR multi-step drips with per-step channel switching.
Find them in the sidebar under Campaigns.
Send modes
Every campaign picks one of three send modes:
- Send now — one message, one moment. Choose your audience, write the message, click send.
- Scheduled — same as Send now but fires at a future time. Cron-driven, no client needed open.
- Drip — multiple steps with delays between. Each step can be email OR SMS independently. Exit conditions (open / click / reply) on later steps can short-circuit the rest of the sequence if the contact already engaged.
Channel per step (mixed-channel drips)
In a drip campaign, each step has its own channel toggle. You can build email → SMS → email sequences. Contacts missing the channel needed for a step (e.g. no phone for an SMS step) silently skip that step — the rest of the audience continues unaffected.
Building a campaign
- Campaigns → + New campaign → pick Email or SMS
- Pick a template (optional) — start from a pre-built template (welcome series, win-back, appointment reminder, etc.) and tweak. Or start from scratch.
- Build the message. Email: drag blocks into the canvas, set colors, type your copy, add merge tags via the merge-tag picker. SMS: type the body, watch the segment counter, add merge tags.
- Pick the audience. A campaign sends to either a saved view, a tag, or a custom filter (e.g. all contacts in the "Buyer" pipeline with no activity in 30 days). The recipient count updates live as you tweak the filter.
- Pick the send time. Send now or Schedule for a specific time. Scheduled campaigns fire from the per-minute server cron — no client open required.
- Review and send. Final preview with the first 3 recipients fully merged so you can sanity-check before commit.
Templates
Groundbase ships with a starter set of pre-built campaign templates targeting common service-business scenarios: welcome series, customer reactivation, appointment reminders, post-purchase follow-up, real estate buyer drip, recruiter outreach, monthly newsletter, win-back.
Each template includes the subject line (email) or first message (SMS), suggested audience filter, and the full body with merge tags. Start from one, customize, save your own copy.
Merge tags
Same tags as templates and sequences: {{first_name}}, {{last_name}}, {{full_name}}, {{company_name}}, {{email}}, {{phone}}, plus custom fields via {{cf.<field_key>}}. See Email integration for the full list.
Tracking + reporting
Once a campaign sends, the campaign detail page shows:
- Sent / failed counts as the dispatch progresses
- Opens + clicks (email) — same read-receipt + click-tracking pixels as your transactional email
- Replies — when a recipient SMS-replies, the message shows up in their thread and counts on the campaign report
- Opt-outs — STOP replies are counted and the contact is opted out for that user
Limits
- Email: governed by your Resend account's send limits (free tier = 100/day, 3,000/month; paid tiers scale up)
- SMS: governed by your Twilio account + your A2P 10DLC campaign caps (see A2P 10DLC)
- Recipient cap per send: 10,000. For anything larger, split into multiple sends or contact support.
AI assistant — draft a campaign
The AI assistant (via Claude + the Groundbase MCP) can draft a full campaign for you. Ask:
Draft a welcome email campaign for new leads, friendly tone, with a CTA to book a discovery call.
It builds the campaign as a draft (subject + body + audience filter), and you review and send. Same merge tags, same templates, same delivery path — Claude just gives you a first draft you'd otherwise type by hand.
Drip step exit conditions — what they mean
Each drip step from step 2 onward has three optional "skip this step if the contact already…" toggles. They live on the step you might want to skip, not on the step that already fired.
- Opened the previous email — only available when the previous step was email. SMS has no open tracking.
- Clicked a link in the previous email — same, email-only. Requires the previous email to have at least one trackable link.
- Replied — works for both email and SMS. For SMS, the reply detection fires when the contact texts your number after the step fired. For email, reply detection requires your "from" email mailbox to be connected to Groundbase via IMAP (otherwise replies go to a black hole and we can't see them).
If you build a 3-step drip with "skip if replied" on step 3, and the contact replied to step 2, step 3 is silently skipped and the contact's campaign journey ends there.
Open tracking caveat
Open tracking is inherently unreliable across the email industry. Apple Mail Privacy Protection auto-fires opens whether the user actually read the email or not. Gmail's image proxy sometimes skips tracking pixels for senders it's seen recently. Outlook is somewhere in the middle.
Use clicks as the more reliable engagement signal — clicks fire on actual user action.
Email reply detection requires IMAP
For drip "exit if replied" to work on email steps, the sender mailbox (the from-address) must be connected to Groundbase via IMAP. If you send from a Resend-only address like hello@yourdomain.com and don't have a mailbox monitoring that address, replies won't be detected — they arrive in a Resend-managed inbox you don't have visibility into.
Three working setups:
- Gmail "Send mail as" alias. In Gmail, add
hello@yourdomain.comas a Send-mail-as alias (via Settings → Accounts) AND set up MX records or Cloudflare Email Routing to forwardhello@yourdomain.comto your Gmail inbox. Then in Groundbase: Settings → Email → Connect, use the underlying Gmail address (not the alias) with an app password. - Real mailbox on your domain (Google Workspace, Microsoft 365, custom IMAP). Connect that mailbox in Groundbase Settings → Email.
- Skip the IMAP route — send from your personal Gmail directly. Less branded, but the inbox is already connected.
If your Inbox in Groundbase isn't loading mail, the same IMAP path that reads your inbox is the path that detects replies — fixing one fixes both.
A/B testing
In any campaign, toggle the A/B section ON to create up to 4 variants of the same send. Each variant can override the subject line and/or the email body content. SMS A/B can override the message body.
How it works:
- Test cohort % — what fraction of the audience splits between variants (rest go to a holdback pool).
- Variants — write your A, B, C, D. Variant A inherits the campaign-level content as a starting point; B/C/D start blank so you have a real comparison.
- Winner metric — pick what defines the winner: opens, clicks, or replies.
- Winner decision time — how long to wait after the test cohort sends before the cron picks a winner. Default 2 hours; longer is better for engagement data.
After the winner is picked, the holdback audience automatically receives the winning variant.
Audience minimums. For statistically meaningful results, the test cohort needs ~50+ recipients PER variant. With smaller audiences the cron still mechanically picks a winner, but it's effectively random — whatever variant got the first interaction. Use small A/B tests for plumbing verification, not for real conclusions.
Footer & unsubscribe
The Footer block in the email designer auto-renders an unsubscribe link, your business address (configurable in Settings → SMS compliance for the legal name), and any custom legal copy. The {{unsubscribe_url}} merge tag gets substituted at send time with a unique per-recipient unsubscribe URL.
Don't remove the Footer block from cold outreach campaigns — CAN-SPAM and CASL require an unsubscribe mechanism + physical address, and the Footer satisfies both.
Suppression — unsubscribed contacts never receive future campaigns
Once a contact clicks unsubscribe, they're added to your suppression list and every future campaign automatically skips them at queue time. There's no per-campaign override — opt-outs are global per user account.
If a contact wants back IN (rare but happens), there's currently no in-app re-subscribe button. They'd need to be removed from the suppression list manually; email support if this comes up.
Send timing in production
Use day or hour delays for real drips. Sub-hour delays (like 3 minutes between steps) work mechanically but make sends look like a marketing automation sequence to Gmail's spam filter, which can push the second email to spam regardless of content. Real-world drips space steps 1–3 days apart.
Cost
Groundbase doesn't charge per send. Email: Resend bills your account directly (free tier covers most small businesses). SMS: Twilio bills your account directly at their per-segment rate. We don't sit between you and the meter on either.