diff --git a/src/content/docs/apps/livebuzz-integration.mdx b/src/content/docs/apps/livebuzz-integration.mdx
index cf85225..4a18887 100644
--- a/src/content/docs/apps/livebuzz-integration.mdx
+++ b/src/content/docs/apps/livebuzz-integration.mdx
@@ -64,7 +64,7 @@ A person needs a first name, last name, and email. Anyone missing those is skipp
When a session is no longer accepted, Sessionboard cancels that speaker's LiveBuzz registration unless you turned **Remove from LiveBuzz when un-accepted** off. The customer record stays.
-Saving a mapping creates two contact fields: **LiveBuzz Registration ID** and **LiveBuzz Badge ID**. Those fill in when LiveBuzz returns them. If you do not see them on a contact, add the fields to your contact layout.
+On **Map Speaker Fields**, pick where LiveBuzz writes back. For **LiveBuzz Registration ID** and **LiveBuzz Badge ID**, choose an event-only text contact field, or click **Create** to add one. Organization fields are not listed. Those fill in when LiveBuzz returns them. Add the fields to the contact layout if you want them visible on the record.
## Field mappings
diff --git a/src/content/docs/apps/visit-integration.mdx b/src/content/docs/apps/visit-integration.mdx
index c03c28b..7d376ef 100644
--- a/src/content/docs/apps/visit-integration.mdx
+++ b/src/content/docs/apps/visit-integration.mdx
@@ -7,7 +7,7 @@ import { Note, Tip, Warning, Steps, Step } from '@compat';
-Visit (Visit Cloud) is the registration and visitor-management system used on many Informa and partner expos. Connect Sessionboard to Visit once, map each Sessionboard event to a Visit expo, and Sessionboard creates visitors for people on accepted sessions. The Visit visitor ID writes back onto the Sessionboard contact as the Visit registration ID.
+Visit (Visit Cloud) is the registration and visitor-management system used on many Informa and partner expos. Connect Sessionboard to Visit once, map each Sessionboard event to a Visit expo, and Sessionboard creates visitors for people on accepted sessions. The Visit visitor ID writes back onto the event contact field you map for Visit Registration ID.
The API key is a tenant token. Each Sessionboard event maps to one Visit expo. Visit does not treat email as unique — Sessionboard finds the same visitor again using the Sessionboard contact, not the email address. If you change a contact's email, the next sync updates that same visitor.
@@ -44,6 +44,8 @@ Visit is set up at the **organization**. Open it from **Settings > Integrations*
Use **Map Speaker Fields** and **Map Session Fields** to choose which Sessionboard fields write to Visit for that mapping. First name, last name, and email are required for visitors. Title, start, and end are required for activities. You cannot save until those are mapped.
+
+ On **Map Speaker Fields**, also pick where Visit writes back. For **Visit Registration ID** and **Visit Registration URL**, choose an event-only text or URL contact field, or click **Create** to add one. Organization fields are not listed, so two expos cannot overwrite the same contact. You cannot save until both are mapped.
@@ -68,15 +70,14 @@ A contact who is deleted, or removed from the event, is not pushed — even if t
| First name, last name, email, company | Visitor |
| Form and registration type from Event Settings | Applied to each visitor |
| Session track / room name (when activities are on) | Visit track / location, matched by name |
-| Visit visitor ID | Writes back as the contact's Visit Registration ID |
+| Visit visitor ID | Writes back to the contact field you mapped for Visit Registration ID |
+| Visit Discover URL | Writes back to the contact field you mapped for Visit Registration URL |
| Accepted session (when activities are on) | Activity (name, start, end) |
A later sync updates the same visitor. Changing the contact's email does not create a second visitor. If Visit already has that email on a different visitor, Sessionboard still writes to the visitor matched by the Sessionboard contact. Visit may accept the duplicate email.
If a participant leaves the accepted set, Sessionboard asks Visit to remove that visitor unless you turned **Remove from Visit when un-accepted** off. Visit keeps the old registration as deleted (it is not a wipe). Putting that person back on an accepted session creates a **new** Visit visitor — Visit cannot undelete the old one. Session activities that were removed are created again.
-Saving a mapping creates two contact fields: **Visit Registration ID** and **Visit Registration URL**. If you do not see them on a contact, add the fields to your contact layout.
-
Visit allows two API calls at a time, so large speaker lists sync in a steady stream rather than all at once.
## Field mappings
@@ -87,6 +88,8 @@ Visit needs a first name, last name, and email to create a visitor, and a title,
After you pick an expo, **Map Speaker Fields** also lists Visit contact fields (job function, phone, address) and the questions on that expo — GDPR checkboxes, dropdowns, and any custom questions the organizer added. Map a Sessionboard contact field onto a question to send that answer with the visitor. Expo-level custom fields (Informa or Adobe configuration) are not visitor fields and do not appear here.
+**Write back to Sessionboard** is on the same screen. After Visit creates a visitor, Sessionboard stores the Visit registration ID and Discover URL on the event contact fields you pick. Use **Create Visit Registration ID** (or URL) if the event does not already have a field. Add that field to the contact layout if you want it visible on the record.
+
**Registration type** on Event Settings must be a Visit visitor type. Speaker, Chair, and Exhibitor types belong to sessions or exhibiting companies and cannot create a visitor.
## Run a sync