Free-text Kurs → Terminwunsch dropdown
Many orgs migrated from older platforms have a kurs (course-interest) field as free text. That worked fine when leads came from a website form with a dropdown, but the second a staff member enters a lead manually you get drift: Minis, minis, Minis 3-6, BJJ, Brazilian Jiu Jitsu, bjj, B.J.J. all referring to the same course.
The fix is an enum-typed Custom Field — and there’s a migration tool that maps existing free-text values onto the enum options for you. (enum is the underlying type name; the UI calls it “Dropdown”.)
The two field shapes
Section titled “The two field shapes”| Field | Where it comes from | Issue |
|---|---|---|
kurs (free text, legacy) | Imported data, manual entry | Spelling drift; unusable for grouping or reporting |
Terminwunsch (enum, recommended) | Linked to the org’s course catalog | Clean values; can be filtered in the table view and referenced reliably in automations |
The Terminwunsch field’s options come from the course catalog wired into the calendar’s appointment types. If a customer ticks “Minis 3-6” on the form, the field stores the exact appointment-type key — which means automations can route on it without any string-matching.
Migrating an existing pool
Section titled “Migrating an existing pool”If a pool already holds historical kurs values, here’s the migration:
1. Define the enum Custom Field
Section titled “1. Define the enum Custom Field”Settings → Custom Fields → New — type enum, options matching the courses currently on offer. Link to the pool(s) you want to migrate.
2. Use the field-conversion tool
Section titled “2. Use the field-conversion tool”The conversion tool sits inside the pool’s field configuration. Pick the source kurs field and the destination dropdown field, then:
- RocketLead scans the pool and surfaces every unique value that exists in the source field.
- You map each value onto a dropdown option. Bulk-map duplicates with one click.
- For pools with thousands of leads, this is the only practical way — there’s no per-lead manual conversion.
The mapping is one-way: source values that don’t have a mapping are dropped (or left as a free-text fallback, depending on your selection at the start).
3. Update downstream references
Section titled “3. Update downstream references”After conversion:
- Automation flows that branched on the free-text field need to be updated to read the new field. The variable picker shows both fields during the transition — pick the dropdown.
- Form widgets pointing at the legacy field need their field mapping updated.
- The legacy field can be deleted from the pool’s schema once references are gone.
When to skip the conversion
Section titled “When to skip the conversion”Pools with few leads (<50) and no recurring intake into the legacy field are often easier to leave alone — you spend more time on the mapping UI than the time you save downstream. The conversion is most valuable when:
- The pool has hundreds-to-thousands of historical leads.
- The customer keeps using the legacy field on new leads (e.g. via an old form they can’t easily update).
- Reporting needs to group by course consistently.
A note on legacy pools
Section titled “A note on legacy pools”Some pools predate the dropdown-Terminwunsch model entirely and use a Kurs dropdown Custom Field. That’s a transitional state — it works, but it doesn’t know about the course catalog, so the dropdown options have to be maintained manually. Migrating those to a Terminwunsch-style catalog-linked dropdown is on the roadmap; for now, leave them alone unless the customer asks.
What’s next
Section titled “What’s next”If the pool is brand new and has no legacy data, you can skip the conversion entirely and just define a Terminwunsch Custom Field directly. Move on to the Ingress webhook bootstrap to seed the pool’s identifier fields.