Campaigns
How GTM Engine generates personalized outbound content and sends through GTM Sending, LinkedIn, or external sequencers.
A campaign in GTM Engine is a reusable, AI-driven outbound sequence. Given an account and a contact, a campaign researches them, produces personalized multi-step copy, writes that copy back onto the contact's fields, and can send through GTM Sending, a direct connected mailbox, LinkedIn, or hand the contact off to Instantly.
Under the hood, a campaign is a normal workflow tagged for outreach, so it benefits from the same run history, versioning, and variable model as any other workflow.
What a campaign produces
A campaign generates copy for one or more steps, each on a channel:
- Email (subject + body)
- LinkedIn DM
- LinkedIn InMail
- Call script
- Voicemail
Generated content is written to the contact's fields, prefixed by the campaign name (for example outreach_campaign, <campaign>_email_subject_1, <campaign>_email_body_1). Because field keys are prefixed by the campaign name, campaign names must be unique.
Delivery modes
When you build a campaign you choose how it's delivered:
- Manual — GTM Engine only generates content and writes it to contact fields. You copy or map those values into whatever sequencer or CRM you already use. Available on all plans.
- GTM Sending — GTM Engine sends each Live Campaign step natively from selected warmed outbound mailboxes.
- Direct connected mailbox — GTM Engine sends from selected users' primary Gmail mailboxes or send-enabled Microsoft 365 mailboxes for inbound or follow-up use cases. These sends default to 30 emails per mailbox per day; users can lower the limit, raise it, or turn it off after acknowledging the reputation risk.
- LinkedIn sender — for LinkedIn connection requests, DMs, and InMails, GTM Engine uses the LinkedIn profile owned by the same user as the selected mailbox for that contact. Connection-request steps can send no note, a templated note, or an AI-generated per-contact note, and first check whether the contact is already connected; connected contacts continue to the next step without another request. If that mailbox owner has not connected LinkedIn, or the contact has no LinkedIn URL, the step safely falls back to a manual task for that mailbox owner.
- Instantly — in addition to generating content, the campaign adds each contact to a chosen Instantly campaign as a lead. AI-generated steps pass generated fields as custom variables; templated steps pass the full rendered template as a custom variable and update the matched Instantly step to reference it. Requires a connected Instantly integration (paid-plan integrations access).
Instantly delivery sends inside Instantly. GTM Sending and Direct connected mailbox delivery send through GTM Engine's native campaign engine.
Building a campaign
Campaigns are created from the Campaigns area (under Campaign Engine) with a short wizard:
- Setup — name the campaign, choose the type and delivery mode, configure enrichment, and choose native sending settings. GTM Sending and Direct connected mailbox campaigns can optionally require review before any generated emails are sent.
- Build — define the steps, channels, per-step guidance, content mode, prompt instructions, and generation model. You can add steps at the end or between existing steps, then reorder them from the timeline until contacts are enrolled. Once contacts have enrolled, structural edits are locked so people already mid-sequence keep their original step plan; active campaigns with no enrollments are turned off while structural edits are made and must be turned on again when ready. The builder can analyze and repair campaign instructions before testing, and it asks you to regenerate instructions if the step structure changes after instructions were generated.
- Test — dry-run against a test account/contact, review the generated output, provide feedback, and apply all feedback in one refinement pass. Steps can be marked “This looks good” so the prompt rewrite avoids changing them.
You can save a Live Campaign from any wizard step. If you save from Build after changing the sequence structure or prompts, GTM Engine warns that you should test and review the content first, then lets you either save anyway or jump to Test.
For native delivery modes (GTM Sending and Direct connected mailbox), Save creates a draft version. You can send provider-backed test emails from the saved draft before publishing. Use Publish live after saving and testing to make that version the one used for live campaign sends. Draft saves do not change the live/native campaign sender until they are published.
Email steps support three modes: Full AI generates a unique subject and email-safe HTML body at send time, Plain Text stores a Liquid-enabled raw text body and sends true text/plain email through native delivery, and HTML stores a Liquid-enabled email-safe HTML body that can be pasted, designed, or drafted with Genie. When editing a live campaign step, Genie can update the active email body directly and can also update surrounding campaign fields such as fixed subject templates, campaign context, LinkedIn DM/InMail templates, and connection-note templates. Plain Text sends do not use HTML-only open pixels or click rewriting.
Templated subjects and bodies also support deterministic spintax after Liquid renders. Use {option one|option two} to vary copy per recipient/step while keeping the same contact's preview and send output stable. See Personalize Campaigns with Liquid and Spintax for campaign-specific examples.
Genie can help operate the builder too: it can switch between Setup, Build, and Test, select a sequence step, choose GTM Sending or direct-connected mailboxes, adjust per-step wait timing/cadence, and change an email step between Full AI, Plain Text, and HTML before drafting or refining the content.
Draft campaigns with no live enrollment or performance history open directly in the builder. The read-only Overview tab appears once a campaign is live or has enrollment/performance history.
Enrollment
When a campaign runs for a contact, that contact is enrolled — recorded in a vendor-agnostic enrollment table. Enrollment happens as a side effect of running the campaign:
- For Instantly delivery, the contact is recorded as enrolled after it's added to the Instantly campaign.
- For Manual delivery, bulk enrollment records a manual enrollment so you still get a roster of who's been processed.
- For native delivery (GTM Sending or Direct connected mailbox) with review-before-send enabled, enrollment generates each contact's draft emails and places them in the campaign's review queue. The review queue uses the same per-contact step timeline as the enrolled-contact roster, but every editable draft step can be opened and changed before approval. Approving a contact starts that contact's campaign sends.
Enrollment counts and (for Instantly) live performance metrics are surfaced on the campaign, contact, and account views. The campaign Overview's summary counts can jump to the matching enrolled-contact filter. The enrolled contacts list defaults to currently enrolled contacts, can be filtered to scheduled, completed, invalid-email, or all contacts, and shows each contact's associated account plus current or next step. Expand a contact to see a Build-style timeline with branded channel colors, logos, scheduled dates, and message previews rendered like email or LinkedIn messages. Review-before-send contacts stay in the Review drafts panel until approved, then move into the enrolled roster; they also appear in a separate Awaiting review count instead of Completed. Contacts skipped because email verification found no reachable email are recorded and surfaced in Invalid email metrics/filtering, where campaign managers can retry enrichment and re-enroll contacts if a reachable email is found. Campaign managers can remove active contacts from the campaign Overview or from the contact's Campaigns tab; completed contacts do not show a remove action. Contacts with prior completed or failed campaign history trigger a warning during manual enrollment; users can explicitly enroll them again to start a repeat attempt.
After any contact is enrolled, the campaign's step structure is locked so existing recipients keep the sequence plan they started on. You can still edit non-structural content such as prompts, subjects, and message bodies. If a live campaign has no enrollments yet, structural edits are allowed, but saving them turns the campaign off until you turn it on again.
When multiple contacts are enrolled or approved in the same batch, native GTM Engine delivery staggers their first sends by about five minutes so the mailbox does not fire every email at once.
Scheduling a future start
When you enroll one or more contacts manually — from a campaign's roster, or via Enroll in Campaign on the Accounts/Contacts record pages — you can choose Now or Schedule a future start date and time. Scheduling defers the entire enrollment: the selected contacts are enrolled and the sequence begins on that date — useful for "connect with me in September" — rather than starting immediately.
Scheduled enrollments are saved as soon as you create them and appear in a Scheduled section on the campaign's enrollment roster, showing each contact and its start time. Each pending scheduled enrollment has a Cancel action so you can call it off before it starts. Scheduled contacts don't appear in the main enrolled list until the start date arrives, at which point the sequence begins.
Genie can also enroll a contact now or schedule a future start when it uses the Enroll Contact in Campaign tool. This schedules that contact into the native mirror of a Live Campaign; it is different from a Scheduled Campaign, which is a one-time broadcast to an audience.
Enrolling from record pages
Beyond the campaign roster, you can enroll into a campaign directly from the Accounts and Contacts record pages — both the list pages (via the Actions menu, using your current selection or all records) and each record's detail page (whose overflow menu is labeled Actions). Accounts open the bulk-enrollment planner (pick a campaign and target personas, then enroll each account's contacts); contacts open a campaign picker where you search and select a campaign and enroll now or on a scheduled date.
You can also choose Campaign routing instead of one fixed campaign. Routing lets you pick all live campaigns or a selected subset, choose a fallback campaign, and either review AI assignments before enrolling or enroll immediately. GTM Engine uses each campaign's name and description plus contact/account context, such as title and company, to choose the best campaign for every contact. If the match is uncertain, the contact goes to the fallback campaign.
Sending windows
Each campaign that sends natively (GTM Sending or Direct connected mailbox) can define a sending window — the days of the week it's allowed to send and a daily start/end time. Emails only go out during that window. A step whose scheduled send lands outside the window (for example a multi-day delay that falls on a Saturday, or after business hours on a weekday) is automatically held and sent when the window next opens.
You set the sending window in the campaign's Setup step when creating it, and can change it afterward from the Sending window card on the campaign's Overview. Window times use the assigned sender user's timezone by default, then the organization timezone, then UTC; you can also choose a fixed timezone override for the campaign. If you don't set one, campaigns default to business hours (Monday–Friday, 08:00–18:00).
Native Live campaigns can also opt into open and link-click tracking. Link-click tracking is off by default and only runs when you enable it for the campaign. Use Allow unsubscribes to include an unsubscribe link; when it is on, GTM Engine appends a footer automatically unless your email already includes {{ system.unsubscribe_url }}.
Email thread replies
When a Live Campaign has more than one email step, each later email step can either start a new thread or reply to the previous email thread. Reply steps lock the subject line to Re: <previous subject> and use the previously sent email as reply context when the sending provider supports it.
Task steps and sticky senders
Live Campaign steps can send a message or create a task for the rep instead. LinkedIn DM/InMail message steps and Connect on LinkedIn action steps send from the LinkedIn profile owned by the same user as the selected sending mailbox for that contact. Connect on LinkedIn steps support no note, a templated note, or an AI-generated per-contact note; if the contact is already connected, GTM Engine marks the step complete and moves on without sending another request. If that mailbox user has not connected LinkedIn, or the contact has no LinkedIn URL, GTM Engine falls back to a task for the mailbox owner. Other task steps are related to the enrolled contact and can be assigned to the sending mailbox owner, or to the contact owner first and account owner second, falling back to the mailbox owner when the record owner is missing or orphaned. Assigned users receive a task notification.
For GTM Sending, each enrolled contact is also assigned a sticky sending mailbox. Later steps reuse the same mailbox whenever it remains eligible. If that mailbox is disabled or unavailable, GTM Engine falls back to another eligible mailbox owned by the same user, then to any eligible selected mailbox, and saves the new assignment for future steps.
Suppression list
Each campaign can have an optional suppression list — one or more contact audiences whose members are removed from the campaign after the recipient list is built. This is in addition to unsubscribes: use it to exclude competitors, contacts who are in an active deal cycle, or a saved report of people who have opted out.
Each suppression audience uses the same contacts query builder and saved-view picker as your campaign audiences — describe it in plain language and Genie materializes the filter, or add rule chips manually. If a suppression request mixes several independent OR exclusions, Genie recommends breaking it into smaller suppression audiences instead of forcing one unsafe query. A live "excluded" count updates as you edit.
- Scheduled campaigns: configure it in the Audience step, alongside your recipient audiences.
- Live campaigns: configure it in the Basics step when creating, and edit it afterward from the Suppression list card on the campaign's Overview.
Suppression is applied when contacts are enrolled (Live) or when the audience is resolved (Scheduled), and it is re-checked at each send step — so a contact who becomes suppressed partway through a sequence (for example they enter an active deal) stops receiving the remaining emails.
Enrichment
Each campaign has enrichment settings that prepare a contact before it's enrolled or sent to. Three options, all on by default:
- Find email if missing — run email discovery when the contact has no address.
- Validate email if present — verify an existing address; a hard-invalid result treats the contact as unreachable.
- Re-enrich if stale — refresh contacts whose data is older than a threshold (default 60 days).
Any contact still without a reachable email after finding/validating is skipped — no enrollment or send rows are created for it. You configure these settings in the campaign's Basics step when creating it, and can change them afterward from the Enrichment card on the campaign's Overview. They apply when contacts are enrolled (Live) and in the send fan-out (Scheduled). Enrichment is configured per campaign, so the bulk-enrollment planner no longer has its own enrichment options.
Replies (Inbox)
When a campaign sends natively from your own mailboxes (GTM Sending), from a direct connected mailbox, or from the mailbox owner's connected LinkedIn profile, replies come back into a unified Inbox (under Campaign Engine → Campaigns). The Inbox shows every reply alongside the contact who replied, the campaign it came from, and the channel it landed on. Direct connected mailbox replies are labeled as direct-connected campaign conversations and show the sender's primary mailbox. Email replies can be answered from the same mailbox; LinkedIn replies can be answered from the same LinkedIn chat thread. Email conversations remain filterable by mailbox and sending domain, and all conversations are filterable by owner, campaign, status, and unread. If no replies are available yet, the Inbox explains the setup path and links to sending-domain/mailbox setup, campaign creation, or both depending on what is missing.
Each inbound reply is classified as Positive, Negative, or Out of office, with a short explanation shown in the thread. Positive and negative replies automatically remove the contact from the sequence, so you never keep emailing someone who already responded. Out-of-office replies keep the contact enrolled and resume the remaining sequence after the return date in the email, or one week later if no date is included. Campaign Analytics breaks reply performance into total reply rate, positive reply rate, negative reply rate, and out-of-office false replies.
Unsubscribes are removed the same way. When a contact unsubscribes, the enrollment moves to an unsubscribed status, remaining steps are skipped, and an activity is recorded on the contact's timeline. Campaign Analytics shows the unsubscribe rate and total, and the Unsubscribed stat is clickable to see exactly who unsubscribed and when.
Credits
Campaigns consume credits for the content generation itself (an AI task) and for any enrichment triggered while building a bulk audience (for example email or LinkedIn enrichment). Handing a contact to Instantly does not itself consume GTM Engine credits — Instantly bears the sending cost. Bulk enrollment jobs are where this adds up fastest, since generation and enrichment run per contact. See Credits and usage for estimates.
See also
- Credits and usage — what generation and enrichment cost.
- Build an outbound prospecting workflow — a bulk flow that generates and enrolls at scale.