Run campaign links and referrals in the staff console
Build a campaign link, read what each campaign brought in, run the referral program, void a referral and make partner codes on the Marketing page.
The Marketing page of the staff console, /staff/marketing, holds your brand's marketing tools. This page covers its first two tabs. Campaigns builds the links you put in emails, posts and ads, and shows what each brought in. Referrals runs the program that pays customers wallet credit for bringing a new customer. Press g then f to open the page from anywhere in the console.
The same work is open to scripts and to the owner's dashboard. Make campaign links and read their results and Run a referral program describe the API calls, which this page names beside each step.
Before you begin
Section titled Before you begin| Tab | Lowest role | What a member below it sees |
|---|---|---|
| Campaigns | Billing | A screen that says "Billing or higher" |
| Referrals | Admin | A billing member does not see the tab, and the server refuses its routes. A screen that says "Admins change these" shows if one opens anyway |
The Marketing page also holds Subscribers, Email flows and Reviews and announcements, for admins. The tags, conversions and ad spend that feed these reports stay under Settings › Marketing (Manage the staff team and console settings).
A campaign that applies a coupon needs that coupon to exist, which Handle billing in the staff console describes. Your storefront must be one that Coritan serves, so the tracker records each visit (How customers and orders are attributed). A server that does not have these tools yet shows "Not available on this server" in the tab.
Build and save a campaign link
Section titled Build and save a campaign linkIn the sidebar, open "Marketing". The "Campaigns" tab is the first one.
In the "Build a campaign link" card, fill in the fields:
Field What to enter Limit "Name" What your team calls the campaign. Each name is used once, and two names that differ only in capitals count as one. 120 characters "Landing page" A page on your storefront, such as /pricing. It starts with/and holds no address, space or#. It opens as/when you leave it alone.400 characters "Source" Where the visit comes from, such as newsletter.80 characters "Medium" How the link is sent, such as email.80 characters "Campaign" The word the reports group by, such as summer-launch. A visit or an order whose campaign is this word belongs to the campaign, whatever its capitals.120 characters "Term" (optional) A keyword or an audience. 120 characters "Content" (optional) Tells two links of one campaign apart. 120 characters "Coupon" (optional) A coupon of your brand that the link applies at checkout. The pick lists your coupons with what each takes off, and "No coupon" leaves it out. 40 characters "Notes" (optional) A note for your team. Customers never see it. 500 characters A source, medium, campaign word, term or content cannot hold
&,=,#or?.Watch the "Link" box under the fields. It builds the full link a moment after you stop typing: your storefront's address, the landing page, the UTM words in the order source, medium, campaign, term and content, then
coupon=when you picked one. Every value is percent encoded.Fix any field marked in red. A problem shows under the field it belongs to once you have typed in that field, or once you select "Save campaign". The "Link" box stays empty until the fields are right.
Select "Copy link" to put the link on your clipboard, and paste it into the email, post or ad.
Select "Save campaign". Name, source, medium and campaign are required.
The toast says Campaign "Autumn push" saved, the campaign joins the "Saved campaigns" list, and the card changes to "Edit campaign" for it, with the same link and "Copy link" still there. Select "New campaign" to start another.
A landing page may already hold a query, such as /pricing?plan=pro. The link keeps it and adds the UTM words after it. A utm_ word, or coupon when the campaign has a coupon, that was already in the query is dropped first, so nothing appears twice. The saved landing page is never rewritten.
If the coupon list cannot be read, the "Coupon" pick is a text box. Type the code of a coupon that exists. A code that does not exist is refused under the box.
Change, archive or delete a campaign
Section titled Change, archive or delete a campaignOpen a campaign by selecting its row in "Saved campaigns", or "Edit" in its row menu. The card fills with its fields.
- Change it. Edit the fields. The foot of the card says what is unsaved, such as
Unsaved changes: medium. Select "Save changes", or "Discard changes" to put the saved values back. Only the fields you changed are sent. Emptying "Term", "Content", "Coupon" or "Notes" removes it. - Archive it. In the card's menu or the row's menu, select "Archive campaign…" and confirm. An archived campaign leaves the active list and keeps its link and its results. Open the "Archived" view to find it, and select "Restore campaign" to bring it back.
- Delete it. Select "Delete campaign…" and confirm. The dialog is titled with the campaign's name. The visits and orders that carried its word stay in your reports, and the word then appears under "Campaigns in your reports that are not saved". Archive the campaign instead when you want to keep its link.
Note
A brand keeps at most 500 campaigns. At the limit, the card says so and "Save campaign" waits until you delete one.
Read what your campaigns brought in
Section titled Read what your campaigns brought in"Saved campaigns" lists the campaigns, newest first, 25 to a page, with the results for the period you pick.
- "Name or campaign word" searches the name and the campaign word. "All", "Active" and "Archived" choose which campaigns show. Both are in the address, so a view can be sent to a colleague.
- The period picker sets the days. It opens on "Last 30 days", and the longest period is 366 days. "All time" shows the last 366 days and says so under the table. The panel's subtitle names the dates and the currency.
- When orders in the period came in more than one currency, a switch with each currency's code sits in the panel's header. Orders and revenue count in the chosen currency only, and are never added across currencies. The currency you pick stays in the address.
- Each row shows the campaign, its link with a copy button, its coupon, and for the period "Visits", "Sign-ups", "Orders" and "Revenue". Under "Orders", "3.32% of visits" is the conversion rate: orders over visits.
A visit is a stored session of your storefront with bots left out. A sign-up is a customer whose last visit named the campaign. An order is a paid storefront order that is not free, and revenue is the invoice total without tax. We keep sessions for 180 days, so a period that starts earlier says "Visits are partial before 180 days ago." under the table. The definitions are those of the acquisition report.
Save a campaign word you already use
Section titled Save a campaign word you already use"Campaigns in your reports that are not saved" lists the campaign words of the period that no saved campaign names, the biggest first, with the same figures. It shows traffic you tagged without saving a campaign.
- On the row, select "Save as campaign".
- The builder fills with the word as the name and the campaign, and puts the cursor in "Source".
- Enter the source and medium, adjust the landing page and the name, and select "Save campaign".
The word leaves the list, because a saved campaign now names it.
Run the referral program
Section titled Run the referral programThe "Referrals" tab shows the program from top to bottom: a row of figures, the settings, the referrals and the partner codes. While the program is off, a note at the top says "The referral program is off" and that nothing starts, pays or gets a code until you turn it on.
Read the figures
Section titled Read the figures| Tile | What it counts |
|---|---|
| "Pending" | Referrals waiting for the invoice to be paid |
| "Qualified" | Referrals waiting out their hold |
| "Credited" | Referrals paid to wallets |
| "Void" | Referrals that were refused or voided |
| "Owed" | What the pending and qualified referrals will pay, in wallet credit |
| "Paid out" | What the credited referrals paid, in wallet credit |
The four counts are links: select one to show only those referrals. The figures cover the whole program and ignore the search and the view.
Turn it on and set its amounts
Section titled Turn it on and set its amountsThe "Program settings" card holds every setting. Amounts are wallet credit in the currency its subtitle names. The ranges come from the server.
| Setting | What it does | Range |
|---|---|---|
| "Referral program" | The switch for the whole program. While it is off nothing starts and no code is made. | On or off |
| "Reward amount" | Paid to the customer who shared the code. | 0 to 1,000, at most 2 decimals |
| "Welcome credit" | Paid to the customer who used the code. 0 pays none. | 0 to 1,000, at most 2 decimals |
| "Threshold amount" | What the referred customer's first paid invoice must reach, without tax. | 0 to 10,000, at most 2 decimals |
| "Hold days" | How long a referral waits before it is paid. | 1 to 90 |
| "Monthly cap" | The most referrals one customer is paid for in 30 days. | 1 to 500 |
| "Block paid ad orders" | Refuses a referral whose order came from paid search, paid social or display ads. | On or off |
- Change what you need. The foot of the card lists it, such as
Unsaved changes: reward amount, hold days. - Select "Save settings". Only the settings you changed are sent.
A value that does not fit is refused before it is sent, or under its field if the server refuses it. The toast says "Referral settings saved", or "Referral program turned on" or "Referral program turned off" when the switch was the only change. A new amount applies to referrals that start after the change. A referral that is already waiting keeps the amounts it started with.
Read the referrals and void one
Section titled Read the referrals and void oneThe "Referrals" table lists each referred customer, newest first, 25 to a page. Search by either customer's email, or choose "All", "Pending", "Qualified", "Credited" or "Void", each with its count.
| Column | What it shows |
|---|---|
| "Referrer" and "Referred customer" | The two customers, each linking to their record |
| "Code" | The code the order used, and whether it is a customer's or a partner's |
| "Status" | The state, and under it when a qualified referral pays ("Pays 25 Oct 2026"), when a credited one paid, or why a void one is void |
| "Invoice" | The invoice that started it, linking to the invoice |
| "Reward" | What the referrer is paid, and under it the welcome credit when there is one |
A void referral reads one of these reasons. A reason a member typed shows as typed.
| Reads | Means |
|---|---|
| "Same customer" | The referrer and the referred customer are one account |
| "Same mailbox" | The two addresses reach one mailbox (dots in a Gmail address and a +tag are ignored) |
| "Same network" | Both signed up from one network address within 30 days of each other |
| "Same device" | Both signed up from one device |
| "Paid ad order" | The order came from a paid ad and "Block paid ad orders" was on |
| "Account closed" | One of the accounts was closed, banned or suspended when the payment was due |
| "Monthly cap reached" | The referrer already had the monthly cap of paid referrals |
| "Invoice refunded" | The invoice was refunded before the payment was made |
| "Chargeback" | The invoice was charged back |
To void a referral that you do not want to pay:
- In the row's menu, select "Void referral…". Only a pending or a qualified referral has it.
- In "Void this referral?", enter a "Reason" of up to 120 characters. It is kept with the referral.
- Select "Void referral".
Nobody is paid for it and it is never started again. Money that was already paid is not taken back. A referral that was paid or voided meanwhile answers that it cannot be voided, and the list reloads. Each member can void 60 referrals an hour.
Make a partner code
Section titled Make a partner codeA partner code pays its owner a share of the first invoice of each customer it brings, instead of the fixed reward. Use it for a streamer, a newsletter author or a community owner who already has an account on your storefront.
- In "Partner codes", start typing in "Customer". Pick a match, or type the customer's full email address.
- Optionally enter a "Code": 3 to 40 letters, digits, hyphens or underscores. Left empty, we make an 8 character code. Two codes that differ only in capitals are one code.
- Enter the "Commission" as a percent of the first invoice without tax, from 0.01 to 50 with at most 2 decimals.
12.5pays 12.5 percent. - Optionally enter a "Label", a note for your team of up to 120 characters.
- Select "Create partner code".
The customer must be an active customer of your brand. A suspended, banned or closed account, an address that matches nobody, and a code that is already in use are each refused under the field they belong to. You can make 30 partner codes an hour.
The table lists every partner code with its owner, commission, how many referrals it started and what they paid, and whether it is "Active" or "Stopped". In a code's menu:
- "Change commission or label…" opens a dialog for the two. The code itself never changes.
- "Stop code…" stops the code from starting new referrals, after a confirm. Referrals it already started still pay.
- "Start code again" lets a stopped code start referrals again.
With the API
Section titled With the APIThe staff routes sit under https://api.coritan.com/api/v1/orgs/{org_slug}/staff/marketing/. Each step above is one call:
| Step | Call |
|---|---|
| The link box | POST campaigns/preview with the same body as a save. It answers {url, problems} and saves nothing. |
| Save, change, archive, delete | POST campaigns, PATCH campaigns/{campaign_id} (send {"archived": true} to archive) and DELETE campaigns/{campaign_id} |
| The saved list and its figures | GET campaigns?status=&q=&limit=&offset= and GET campaigns/results?from=&to=¤cy= |
| The referral settings | GET referrals/settings and PUT referrals/settings with only the keys that changed |
| The referrals and the figures | GET referrals?status=&q=&limit=&offset=, whose totals cover the whole program |
| Void | POST referrals/{referral_id}/void with {"reason": "Same household"} |
| Partner codes | GET referrals/codes?kind=partner, POST referrals/codes, and PATCH referrals/codes/{code_id}. The commission goes in basis points, 100 for 1 percent. |
A value that does not fit answers 422 with detail, the sentence to show, and field, the input it belongs to. A campaign name that is taken answers 409 with field name. The same routes, with the same bodies, are open to the owner without the staff/marketing/ part of the path.
Troubleshooting
Section titled Troubleshooting- "Billing or higher"
- Your role is below billing. Ask a billing, admin or owner member.
- "Admins change these"
- The Referrals tab needs an admin or the owner.
- "Not available on this server"
- The server does not have these tools yet. The tab says so instead of failing.
- "Another campaign already has this name."
- Each campaign name is used once, whatever its capitals. Pick another name, or open the campaign that has it.
- "This organization has no coupon with that code. Create the coupon first."
- Make the coupon under Coupons, then pick it.
- The "Link" box asks you to fill in the source, medium and campaign
- Those three are required. The box shows the link once they are filled in and none is refused.
- "Could not check the link. Change a field to try again."
- The check did not reach the server. Change any field and it runs again.
- Revenue is missing for a campaign that has orders
- Orders and revenue count in one currency. Choose the other currency in the panel's header.
- A referral that should have started is not in the list
- A referral that is refused before it starts leaves no row. Run a referral program lists what to check.
Related
Section titled Related- Make campaign links and read their results: the fields, the link rules and the API.
- Run a referral program: how a referral qualifies, what stops one and what customers see.
- How customers and orders are attributed: where the visits, sign-ups and orders come from.
- Handle billing in the staff console: coupons, invoices and orders.
- The staff console: the audience switch, alerts and the other pages.