Skip to content

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”.)

FieldWhere it comes fromIssue
kurs (free text, legacy)Imported data, manual entrySpelling drift; unusable for grouping or reporting
Terminwunsch (enum, recommended)Linked to the org’s course catalogClean 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.

If a pool already holds historical kurs values, here’s the migration:

Settings → Custom Fields → New — type enum, options matching the courses currently on offer. Link to the pool(s) you want to migrate.

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).

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.

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.

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.

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.