City settings

Widget identity, delivery, languages and greeting copy

Configuring the widget key, loader origin, entry flow, bundle key, published languages and per-language greeting text in one screen.

By The Kav team Published 2 min read

This is the widget's identity and delivery screen — the four technical fields that decide where and how it loads, plus the languages it publishes in and the greeting text for each.

1. Open City → Widget → Settings

You'll see the widget key (read-only — it's how the embed script identifies your organization), the loader origin, the entry flow slug, an optional bundle asset key, your published languages, and per-language greeting and launcher-label text.

2. The loader origin has to be exactly right

An origin is scheme, host and an optional port — nothing else. Type a full URL with a path and this screen flags it before you can publish, using the identical rule the server enforces (Tenancy.UpdateWidgetConfiguration.Error.LoaderOrigin.Invalid). This isn't pedantry: the widget's script tag has to load from somewhere real, and a malformed origin is a widget that never loads at all.

3. The bundle key is a storage reference, never a URL

If you type an absolute URL or a protocol-relative //host into the bundle field, it's refused outright. A widget served from a URL you don't control is somebody else's JavaScript running on every page of your municipal website — this field exists specifically so that can't happen by accident.

Leave it blank to serve your currently published bundle; that's an ordinary, valid state, not "unchanged."

4. Turning a language on and off is one act, not two

The language list and the greeting/launcher-label text for each travel in the same request. That's deliberate: turning Arabic on and writing its greeting is one operator decision, and turning it off while leaving the Arabic greeting behind would be a language your widget claims to speak with nothing written for it.

5. Write the greeting in the language's own direction

Each language gets its own text box, rendered right-to-left or left-to-right as appropriate, so a Hebrew greeting and an English one never get typed into a box that renders them wrong while you're writing them.

The live preview beside this screen shows the greeting exactly as a resident will see it — check it after every language you add, not just the first one you set up.

6. At least one language has to stay enabled

The screen refuses to publish a widget with zero enabled languages — there'd be nothing for it to greet anyone in.