---
id: educacao/origem-lead-matricula
industry: Education
usage: widely used
effort: medium
grain: Lead x evidence (bridge table) and enrollment or sale (one row with the final source)
---

# Lead and enrollment source

Where each enrollment came from, by channel, campaign, event and partner, with the evidence that decided the source stored next to it and no source invented for those who have none.

## Executive summary

**For:** Schools, colleges, open-enrollment course providers and digital product creators who acquire through ads, WhatsApp, events, referrals and partners and need to know what brought in each enrollment.

**What it solves**

- Every enrollment has one final source, one channel and the evidence that decided it, auditable row by row.
- Enrollments from referrals, campuses, events and partners show up as their own source instead of vanishing into unidentified.
- The channel picked by hand by the advisor is checked against the tracked source, and mismatches become a correction list.

**Why it matters:** In education, a large share of enrollments comes from relationships: referrals, alumni, fairs, campuses and partners. Looking only at UTMs measures a small fraction of enrollments and cuts budget from channels that work. Source is the basis for CAC by channel, targets by source and the decision on how much to invest in events and partnerships.

**Business questions it answers**

- Which channels did this semester's new enrollments come from, by campus?
- How many enrollments came from fairs and events, and how many from ads?
- Which partner brought in the most students last year?
- How many enrollments have no identified source, and why?
- Which campaign did the leads who arrived through WhatsApp come from?
- In which deals does the channel set by the advisor not match the tracked source?

**What you need**

- Marketing automation, messaging and CRM connected to Nekt, plus the academic system or the sales platform
- A channel reference table: raw value, standardized source and expected channel
- The priority order between sources, agreed between marketing and sales

**What you get**

- A bridge table with every source evidence of each lead, with system and date
- One row per enrollment with final source, channel, campaign, evidence used and attribution rule
- A dashboard of enrollments by channel and by nature of source: digital, event, offline and relationship
- An audit list of mismatched manual channels

## Detailed

### The problem

The source of an enrollment is scattered: UTM in the marketing automation, a tag on the WhatsApp conversation, a channel picked by hand in the CRM and, sometimes, the student's answer about how they heard of the school. The sources disagree, few enrollments carry a UTM, and the CRM often keeps only the card's current source. Picking a single source labels referrals, campus walk-ins and events as unidentified; accepting any evidence credits the enrollment to a campaign that ran after it.

### Business rules

1. **Source is evidence with a system and a date.** Store every source signal as a row in a bridge table: lead or enrollment, system, evidence type (UTM, messaging tag, CRM source field, form, declared answer), value and date. The final source is chosen afterwards by rule, and the UTM fields stay available after the choice. Keep technical identifiers (conversion, content and ad ids): they are what makes later reconciliation possible. (Avoid: Overwriting the lead's source with every new conversion.)
2. **Each topic has its own source.** For source, campaign and conversion, marketing automation beats the CRM. For stage, owner, sale and loss, the CRM rules. For actual enrollment, the academic system rules. A source order that works: marketing automation UTM, then messaging tag, then CRM source field, then the card's manual channel. Store in a column which system and which rule decided each row. (Avoid: Using whichever source happens to be filled first in the query.)
3. **Evidence after the enrollment does not count.** Only evidence dated up to the sale close or the enrollment counts. Among those, prefer evidence with traffic data and then the one closest to the enrollment. A campaign the student received after enrolling (a broadcast to the base, re-enrollment) does not win the enrollment. When a lead has several conversions, keep every date in the bridge. (Avoid: Taking the contact's last conversion, even if it came after the sale.)
4. **Channel is the axis, UTM is the detail.** In a real base, UTMs were present on about half of leads and on only a tenth of enrollments, because most enrollments came from relationships and offline. Group the source report by channel (website and digital, paid media, social media, referral, students and alumni base, fairs and events, partnerships, campus, offline media) and use UTM and campaign to break down the paid channel. Also show the nature of the source: digital, event, offline or relationship. (Avoid: A source dashboard built only on utm_source.)
5. **Recover the hidden source.** In RD Station Marketing, traffic_source may come with the prefix encoded_ and a base64 JSON with the first session and the current session, where the UTMs live. In messaging tags, look for platform patterns (meta ads, facebook, instagram, google ads, cpc, pmax, tiktok), not only today's exact texts. A UTM with an unresolved macro like {{...}} is an ad with a broken parameter: count it as paid, platform unidentified. The literals sem-utm, (none) and empty are null. (Avoid: Treating encoded traffic_source and UTM {{campaign.name}} as no source.)
6. **Channel, source, partner and UTM are layers.** Channel is the messenger (ad, referral, partnerships, events). Source is the subject (the event, the webinar, the funnel). Originating partner is filled only when the channel is partnerships. An event enters through the fairs and events channel with the standardized edition name. A field that mixes several kinds of information (page version, temperature, region and owner in the same field) stays out of attribution until it gets a taxonomy. (Avoid: One source column with event, partner and campaign mixed together.)
7. **The manual channel is audited, not corrected.** Keep a source to expected channel reference, owned by marketing, and flag each deal as consistent, mismatched, unmapped source or no channel. A mismatch can be a data entry error or an outdated reference (a channel that was deactivated and split into others creates expected historical mismatches). The audit becomes a list for marketing to review, never an automatic overwrite of the value chosen on the card. (Avoid: Replacing the card's channel with the expected one without review.)
8. **Current source is not entry source.** Some CRMs keep only the card's current source and funnel: lost deals moved by automation to a recovery funnel lose their original entry. Rebuild the entry from the stage history or from the marks the card carries (a filled session form, a summary generated at capture, a hand-raise field). The entry source is the first one; the current one goes in another column. (Avoid: Crediting the recovery funnel with enrollments that came in through ads.)
9. **Acquisition means new enrollment.** Acquisition source is measured only on new or recaptured enrollments. Re-enrollment and renewal inherit the source of the first enrollment and stay out of the acquisition dashboard. For digital products, split buyers by cohort: entered in the period, returned in the period, entered earlier, already a customer and never went through the funnel. The period's return comes from the first two. (Avoid: Adding re-enrollments to the total enrollments by channel.)
10. **Unidentified only without evidence.** Use unidentified only when no source brings reliable evidence, and show the category with its own volume. Do not spread it across channels, do not call it organic and do not use the contact's name as evidence. Source declared by the lead and source tracked by the system stay in separate columns: the gap between them is information, not an error. (Avoid: Dumping unidentified into organic so the chart looks clean.)

### How each piece of evidence becomes a channel

Patterns searched in UTM, messaging tag and CRM source field, in this order.

- **facebook, instagram, ig, fb, meta ads, lead ads** → Paid media, Meta (`pago_meta`)
- **google ads, adwords, gads, pmax, cpc, youtube** → Paid media, Google (`pago_google`)
- **UTM with {{...}} or acquisition tag without platform** → Paid media, platform unidentified (`pago_sem_plataforma`)
- **Messaging tag with a paid campaign** → Paid media that came in through WhatsApp (`etiqueta`)
- **Referral, alumni, students base** → Relationship
- **Fairs and events channel + edition** → Event (`evento_canonico`)
- **Partnerships channel + originating partner** → Partnership (`parceiro_originador`)
- **Walk-in, campus acquisition without media** → Campus
- **orgânico, organic, direct, direto** → Organic or direct
- **No evidence in any source** → Unidentified, with a reason

### Definitions

| Metric | Definition |
|---|---|
| Source evidence | a signal (UTM, tag, CRM field, form, declared answer) with system, value and date, linked to the lead by normalized email or phone |
| Final enrollment source | channel and campaign of the evidence chosen by the priority order, among evidence dated up to the sale close or the enrollment |
| Acquisition enrollment | official enrollment in the period classified as new or recaptured; renewal and re-enrollment excluded |
| Enrollments by channel | distinct count of the enrollment key by final channel, after choosing one source per enrollment |
| Tracking coverage | enrollments with a UTM or click identifier / enrollments in the period, same slice |
| Unidentified rate | enrollments with no evidence at all / enrollments in the period |
| Manual channel consistency | deals whose channel equals the reference's expected channel / deals with channel and source filled |
| Paid lead | lead whose classified source is paid media, including old ad UTMs and broken macros |

### Pitfalls

- **A source dashboard built on a tenth.** A source dashboard built only on UTMs left out most enrollments, which came from referrals, the students base, fairs and campuses. How to avoid: Anchor on channel, which covers every enrollment, and use UTMs to break down paid.
- **UTM capture broken for months.** One of the page builders started writing the literal sem-utm on almost every recent sign-up, and the paid channel looked like it had disappeared. How to avoid: Track UTM coverage by capture source and put the broken source last in the order.
- **Same variable, different sources.** In marketing automation with several accounts, the UTM personalization variable pointed to one page builder in one account and to another in the next, and the field id changed from account to account. How to avoid: Map account x field id in a reference and union the accounts by id, never by title or by variable.
- **Enrollment multiplied in the join.** Joining the enrollment with tags, conversions and conversations created several rows per student, and the total by channel exceeded the number of enrollments. How to avoid: Choose the final source per enrollment before counting, and count by the academic system's key.
- **Empty declared source.** The how-did-you-hear-about-us field was created in the system but stayed empty for every lead for months, and someone used it as the channel. How to avoid: Check the fill rate before using it; say there is no data yet instead of answering zero.
- **A media hierarchy that does not group.** The system's media hierarchy pointed every source to the same generic parent, and grouping by channel returned a single row. How to avoid: Derive the channel from the standardized prefix of the media name or from your own reference, validated with the team.

### Acceptance test

- [ ] Every acquisition enrollment in the period has exactly one final source, and the sum by channel equals the total new and recaptured enrollments in the academic system.
- [ ] No final source uses evidence dated after the sale close or the enrollment.
- [ ] Every enrollment with a paid channel has the evidence, its system and its date filled in.
- [ ] No lead with an encoded traffic_source is left without a source: the UTM appears decoded.
- [ ] The unidentified rate appears on the dashboard with its own volume and only drops when new evidence appears, not when the priority order is changed.

### Context document

```text
Lead and enrollment source
- Source by topic: source, campaign and conversion come from marketing automation (<tool>); stage, owner, sale and loss come from the CRM; actual enrollment comes from the academic system (<system>).
- Final source = evidence chosen in this order: marketing automation UTM, messaging tag, CRM source field, the card's manual channel. Store the evidence's system, value, date and rule.
- Only evidence dated up to the sale close or the enrollment counts. Among it, prefer the one with traffic data that is closest to the enrollment.
- Group reports by channel: <list of channels>. UTM and campaign only break down the paid channel. Nature of source: digital, event, offline, relationship.
- traffic_source with the prefix encoded_ is base64: decode before concluding there is no source. UTM with {{...}} = paid, platform unidentified. sem-utm, (none) and empty = null.
- Channel = messenger; source = subject (event, funnel); originating partner only with the partnerships channel. Do not use the field <mixed field> for attribution.
- Manual channel audited against the source x expected channel reference: consistent, mismatched, unmapped source, no channel. Never correct it automatically.
- Acquisition = new and recaptured enrollments. Renewal and re-enrollment inherit the source of the first enrollment and stay out.
- Unidentified only when there is no evidence at all. Do not spread it, do not call it organic. Declared source stays in a column separate from tracked source.
- Count enrollments by the academic system's key after choosing the final source; sales by distinct deal id.
- Coverage by source: UTM since <year>, tags since <year>. Warn when comparing periods with different coverage.
Exceptions by client:
- <client>: UTM capture in <page builder> has been broken since <date>; use <other source> first.
- <client>: messaging tags with <pattern> count as paid media for campaign <campaign>.
- <client>: the channel <deactivated channel> was split into <channels>; historical mismatch is expected.
```

### Variations

- **Digital products with evergreen funnels:** Lead = one person's entry into a funnel; the same person in the same funnel on the same day counts once. The cohort separates those who entered in the period from those who were already customers.
- **Franchises and campuses:** Funnel and conversion on the lead's campus; sale and cancellation on the sale's campus. Leads transferred between campuses are flagged.
- **Multi-touch later:** Keep attribution model and weight as columns (single source, weight 1) so fractional weights can be added once website session data exists.
