Event contract & routing
b2c-platform · user.created → zoho-crm
2 · Destination & authentication
AsyncAPI contract
whub-b2c-events-topic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# WHUB event contract# Correlation header: x-whub-correlation-id# Owner system: b2c-platformasyncapi: 2.6.0info:title: user.createdversion: 1.3.0description: "Emitted when a guest account is created on the B2C app."x-whub-owner: b2c-platformchannels:whub-b2c-events-topic:publish:operationId: publishUserCreatedmessage:name: user.createdcontentType: application/jsonpayload:$ref: "#/components/schemas/Payload"components:schemas:Payload:type: objectrequired:- eventId- occurredAt- userId- localeproperties:eventId:type: stringformat: uuidoccurredAt:type: stringformat: date-timeuserId:type: stringemail:type: stringformat: emaillocale:type: stringmarketingOptIn:type: booleanx-whub-routing:lane: asyncbroker: azure-service-bustopic: whub-b2c-events-topicsubscriptions:- name: zoho-crmsystem: zoho-crmfilter: "eventType = 'user.created'"- name: nox-omssystem: nox-omsfilter: "eventType = 'user.created'"x-whub-transform:engine: liquidtemplate: |{"Last_Name": "{{ payload.email | split: '@' | first | capitalize }}","Email": "{{ payload.email }}","Lead_Source": "B2C App","WHUB_Correlation_Id": "{{ headers.correlationId }}"}
Transformation template
1
2
3
4
5
6
7
{"First_Name": "{{ payload.firstName }}","Last_Name": "{{ payload.lastName }}","Email": "{{ payload.email }}","Lead_Source": "B2C App","WHUB_Correlation_Id": "{{ headers.correlationId }}"}
Sample source payload
1
2
3
4
5
6
7
8
9
10
{"eventId": "8f3c2a10-6b1e-4d77-9c2a-11e0a4b7d901","occurredAt": "2026-11-02T14:20:00.000Z","userId": "usr_10482","firstName": "Layla","lastName": "Al Maktoum","email": "layla@example.com","locale": "en-AE","marketingOptIn": true}
Dry-run result
Paste a source payload and run the dry-run. The mapping runs locally. The destination is not called.