ZOLLO documentation

Campaign outcomes guide

Give every new lead a clear next step.

Capture requests, follow up with people who opt in, and see which campaign links lead to paid checkouts. This guide takes you from setup to results, with approval at each sending decision.

  1. 01

    Capture a request

  2. 02

    Approve the follow-up

  3. 03

    Connect paid checkouts

Set up your first complete flow.

You need an approved campaign package, an email provider, and a published landing page. Marketing team members can approve follow-up; an owner or administrator connects Stripe. Sales users can assign a checkout link and record sales, and viewers can read outcomes and export leads.

  1. 1

    Prepare your campaign

    Connect an email provider and verify your sending domain in Deliverability. Review and approve your AI campaign strategy and current email assets, then create the campaign drafts. Check each template, sender, company address, unsubscribe handling, and provider before enabling follow-up.

  2. 2

    Approve follow-up before collecting leads

    Open Analytics and find the plan under Campaign outcomes. Choose Review lead follow-up, inspect every subject and day offset, then choose Approve and enable follow-up. This approval applies to future eligible leads. Old leads and leads captured while paused are not enrolled later.

  3. 3

    Publish the landing page

    Review and explicitly publish the generated landing page, then share its campaign links. The form asks separately for permission to respond to the request and optional marketing opt-in. A request creates or matches a contact without overriding existing opt-outs.

  4. 4

    Connect your Stripe account

    As an owner or administrator, open Connect sales to your campaigns in Analytics. Copy the Webhook destination. In Stripe, create a webhook destination for checkout.session.completed and checkout.session.async_payment_succeeded. Enter its signing secret and an API key with Payment Links read permission from the same account and mode, then choose Connect Stripe.

  5. 5

    Assign a dedicated checkout link

    In the plan's outcomes card, select an active Campaign Payment Link and choose Save Payment Link. Use a separate Payment Link for each campaign plan. Expand Campaign checkout links and copy the email, LinkedIn, X, or Facebook version into the corresponding campaign content. Selecting a link does not change existing buttons or publish content.

  6. 6

    Verify delivery and read results

    Send a signed event in the connected Stripe mode and choose Refresh connection. Complete a paid checkout through the assigned Payment Link to verify sale attribution. Use test mode first; test purchases stay out of live totals. Choose Refresh results to see leads, follow-up activity, identified customers, recorded sales, and value by currency.

For campaign creation and provider readiness, see the campaign guide and integration guide.

Verify the connection before trusting a zero.

A saved API key proves Payment Links access. A signed event proves webhook delivery. A paid checkout through your assigned link verifies the campaign's sale path. The Stripe connection used here is separate from your ZOLLO subscription billing.

Not connected
Connect Stripe and assign a Payment Link to this plan. Existing manually recorded sales can still appear.
Test mode
Test checkouts are stored for verification and excluded from live sales totals and AI sales samples.
Awaiting first event
The API key was accepted, but a signed event has not yet verified this connection.
Events received
A verified event has reached the workspace. Check the assigned link and a real paid checkout to verify this campaign's sales path.

Create the Stripe destination for your account using snapshot events. Keep API key, signing secret, and Payment Links in the same account and test/live mode. Production destinations need a public HTTPS URL. Follow Stripe's webhook setup and Payment Link tracking reference for the Stripe-side controls.

Changing credentials resets verification timestamps. Disconnecting retains recorded outcomes and link assignments. Keep a link assigned while delayed payments settle; removing it early can leave a later payment unrecorded. Reconnecting does not import past purchases.

Read the results with the right expectations.

Campaign outcome metric definitions
MetricWhat it tells you
Email clicksClick events from the plan's current campaign emails. Repeat clicks can count again; this card excludes follow-up clicks.
Captured leadsOne saved lead per landing page and email. The same person requesting information on another page can add another lead.
Follow-up activityScheduled and paused counts represent individual email campaigns. Sent counts represent recorded send events, rather than inbox delivery.
Identified customersDistinct buyer email addresses on live sales. Repeat purchases by the same address add sales without adding another customer.
Recorded salesPaid checkouts from the assigned Payment Link, or sales recorded by an authorized integration. Each Stripe Checkout Session counts once.
Gross checkout valueRecorded checkout amounts, kept separate by currency. Refunds, fees, and later subscription renewals are not deducted or imported.
Recent leads and CSVThe preview contains the latest 50 leads across the plans on the current results page. Export the selected plan's CSV to get all its captured leads.

Turn enough activity into a reviewed next step.

AI analysis requires 100 delivered emails, 10 captured leads, or 5 live recorded sales. It uses aggregate campaign and follow-up engagement, lead counts, and recorded sales. Contact names and email addresses are excluded from this performance context. Analysis uses your connected AI provider and can incur its usage charges.

Review and approve recommendations before creating experiment drafts. Those drafts require a separate sending decision. The threshold does not establish statistical certainty, and clicks, leads, and purchases can represent different people. Their ratio is not a verified customer conversion rate.

Find the missing step.

A lead has no follow-up
Check separate marketing opt-in, current consent and suppression, and whether approval happened before the lead's first capture. Repeating an old submission does not backfill it.
Emails remain scheduled
For self-hosted installations, check that the campaign worker and Redis are running. Also check due time, provider readiness, sending limits, and subscription status.
Stripe is connected but unverified
Check the destination URL, signing secret, account, and mode. Saving the key verifies Payment Links access; receiving a signed event verifies the webhook.
An event arrived but no sale appeared
Check paid status, the selected Payment Link, and test mode. A generic test event can verify delivery without matching a campaign checkout.
Sales show direct as the source
Use the generated source-specific checkout link. Its client reference supplies the source; UTM parameters alone do not.
The Payment Link is unavailable
Choose an active link from the connected account and mode that is not assigned to another plan in this workspace. The picker shows the first 100 active links.
AI analysis is unavailable
Wait for 100 delivered emails, 10 captured leads, or 5 live recorded sales. Check your AI connection and campaign write access.

Common questions.

How do I find all my campaigns in Analytics?

Campaign outcomes includes AI campaign plans and standalone email campaigns, newest first, with 10 results per page. Use Previous and Next to browse the full list. AI package emails and lead follow-up stay grouped under their plan. Standalone campaigns show email clicks and a link to email analytics; lead capture, automatic follow-up, and connected sales are tracked through AI campaign packages.

Does requesting information subscribe someone to marketing?

No. Marketing opt-in is a separate optional choice. Request-only leads are retained as contacts so your team can respond manually. Existing opt-outs and suppressions are preserved, and an automatic marketing follow-up requires current subscribed, opted-in status.

What happens when I pause and re-enable follow-up?

Pausing stops new enrollment and pauses pending follow-up campaigns. An email already in flight can finish. Re-enabling applies to future eligible leads; it does not resume old paused sequences or enroll historical leads.

Can I edit the approved follow-up emails?

Approval saves a snapshot of the email content, provider, and day offsets. Editing the source template does not change that saved snapshot. Pause, review the source drafts, and approve again to use updated content for future enrollment.

Which Stripe sales are included?

Signed paid checkouts through the plan's assigned Payment Link are included, including an initial paid subscription checkout. Test purchases, later renewals, refunds, free trials, zero-value sessions, and payments outside the mapped links are excluded from live reporting.

Does connecting Stripe change my campaign content or process payments?

The connection reads Payment Links and records supported checkout events. You copy the generated checkout links into your reviewed campaign content and explicitly publish or schedule it. The reporting connector does not create charges.

Why are sales higher than identified customers?

One customer can purchase more than once, and a checkout without a buyer email still counts as a sale. Identified customers count distinct buyer email addresses rather than all purchases.

Can I record sales from another provider?

An authorized integration can use POST /api/analytics/plans/:id/sales with a stable external event ID, positive value in currency minor units, uppercase currency code, and optional source and email. Its ZOLLO API key needs campaigns:write. Record each purchase through one integration to avoid double counting.

Start building

Turn your next idea into a campaign.

Give ZOLLO the brief. Review the strategy, edit every asset, connect your channels, and schedule the approved campaign when you are ready.

Open ZOLLO