EventPerson Mapping
an eventperson ingest creates or updates a person in an event from a json payload — usually a webhook from your crm a field map lists rules; each rule reads a value from your payload (keymatch) and writes it to a jomablue field (type) the person is identified by organisation uid a match updates the existing person, otherwise a new one is created anything in the payload that no rule references is ignored the mapping \[ { "type" "organisation uid", "keymatch" "organisation uid" }, { "type" "first name", "keymatch" "first name" }, { "type" "last name", "keymatch" "last name" }, { "type" "job title", "keymatch" "job title" }, { "type" "company", "keymatch" "company" }, { "type" "email", "keymatch" "email" }, { "type" "mobile", "keymatch" "mobile", "mobilecountry" "country" }, { "type" "category", "keymatch" "category", "valuematch" "delegate", "maptoid" 1 }, { "type" "category", "keymatch" "category", "valuematch" "sponsor", "maptoid" 2 }, { "type" "category", "keymatch" "category", "valuematch" "speaker", "maptoid" 3 }, { "type" "category", "keymatch" "category", "valuematch" "staff", "maptoid" 4 }, { "type" "category", "keymatch" "category", "valuematch" "vip", "maptoid" 5 }, { "type" "custom field", "keymatch" "custom fields ", "maptokey" " " } ] the fields identifier and text fields organisation uid is the person's unique id in your system — it decides update vs create, so use something stable like a crm contact id first name , last name , job title , company , and email are straight copies from the payload path in keymatch mobile numbers are stored in international e164 format with mobilecountry pointing at a country field, local formats are converted automatically — 0402 222 111 with au becomes +61402222111 country accepts codes like au / aus without mobilecountry, the number must already start with + category each rule fires when the payload's category field equals its valuematch, and assigns the matching maptoid category value category id delegate 1 sponsor 2 speaker 3 staff 4 vip 5 categories are additive here assigning one leaves any categories the person already has in place that's the difference from the advanced version, which removes the other roles when it assigns one if no category is assigned, the event's default category is applied note the ids 1–5 are placeholders use your event's real category ids, and set valuematch to the strings your system actually sends custom field the wildcard rule takes every key/value pair inside the payload's custom fields object and stores each as a custom field, reusing the payload's own keys use snake case keys custom fields must always be a string value, booleans are not accepted note if a custom field wildcard mapping is used, then the custom field object must be included in the payload, even if it is empty worked example payload { "organisation uid" "crm 10432", "first name" "jordan", "last name" "avery", "job title" "head of partnerships", "company" "northwind labs", "email" "jordan avery\@northwindlabs com", "mobile" "0402 222 111", "country" "au", "category" "staff", "custom fields" { "dietary requirements" "vegetarian", "tshirt size" "l", "attending dinner" "true" } } result a person crm 10432 (created or updated) named jordan avery, head of partnerships at northwind labs, email as given, mobile +61402222111, category speaker (id 3) added, plus custom fields dietary requirements = vegetarian, tshirt size = l, and attending dinner = true validation you can validate the payload before it's mapped a payload that fails is rejected before anything is created { "organisation uid" "required|string", "first name" "required|string", "last name" "required|string", "email" "nullable|email", "mobile" "nullable|string", "company" "nullable|string", "job title" "nullable|string", "category" "nullable|in\ delegate,sponsor,speaker,staff,vip" } required fields must be present (the identifier and the names needed to create a person) nullable fields are only checked when present the in rule limits category to the five known roles, catching typos before they map to nothing match the keys to your payload, and update the in list to your own values other available fields eventperson also supports cancelled, item, and program member see the full ingest endpoints reference for those