Campaigns, ROI & attribution
A campaign bundles content, budget, schedule, and the channels it runs on. XBuddy then measures which channels and campaigns actually produced revenue, not just traffic, by following the tracking links back to the leads and deals they produced.
When to use
Use campaigns to plan a marketing push with a budget and dates, and to find out afterwards which campaigns and channels produced won deals, not just clicks.
Before you start
- Permissions:
campaigns:readto see campaigns and Marketing Reports;campaigns:writeto create or edit them and to log costs;campaign-roi:readfor Campaign ROI;attribution:readfor Attribution. - Toggles:
business.campaign_budget_required(Off) makes budget mandatory when creating a campaign;business.campaign_auto_close_on_end_date(Off; On for new companies) closes a campaign after its end date;business.campaign_attribution_on_deal(Off; On for new companies) creates attribution records when a deal is won;business.campaign_auto_touchpoints(Off) records touchpoints automatically. - Channels should exist first so you can assign them to the campaign.
Step by step
Plan a campaign
Go to Product & Marketing -> Campaigns -> New Campaign (/prod-mkt/campaigns), set the budget, dates, target audience, and the channels it runs on. One channel can be marked primary.
Add members and record activity
Open the campaign (/prod-mkt/campaigns/[id]) to add members and log touchpoints. See the campaign members guide for details.
Record costs and watch KPIs
Add manual costs on the campaign detail page and follow daily KPIs there. KPIs only combine rows in the same currency, so mixed-currency rows are excluded and reported.
Track ROI
Open Product & Marketing -> Campaign ROI (/prod-mkt/analytics/roi) to compare spend against attributed pipeline and closed revenue per campaign.
See attribution
Product & Marketing -> Attribution (/prod-mkt/analytics/attribution) maps leads and revenue back to the originating channel using the UTM/click data captured at the tracking link, so you can reallocate budget to the best sources.
Close the campaign
When it ends, mark it completed, or let it close automatically if the auto-close toggle is on.
Statuses
| Status | Meaning |
|---|---|
draft | Being planned; not yet running. |
active | Running; members, touchpoints, and costs are being recorded. |
completed | Finished; results remain available in ROI and Attribution. |
cancelled | Stopped before completion. |
Tips & common mistakes
- Enter actual costs regularly. If no cost is recorded, ROI falls back to the planned budget and says so.
- Campaign ROI is a snapshot refreshed on a schedule, so a brand-new result may take until the next refresh to appear.
- Attribution depends on a won deal in CRM; a campaign with many leads but no won deals shows low return.
- Do not mix this with POS promotions: store discounts are a separate area and not part of campaigns.
- Do not rely on AI numbers: ROI and attribution come from the engine, and the assistant only suggests.