Jericommerce stores all customer interactions on the platform. This data can be accessed through the endpoint configured in the settings when adding the integration.
After you add your webhook endpoint in the settings > integrations > API, you will start to receive an object that explains the actions taken for the customer and the associated properties.
All API requests will come with a header x-jericommerce-hmac-sha256
that includes a secret encrypted with the secret text displayed on the integration page.
This token is encrypted using HMAC-SHA256, which helps validate that each POST request is from us, thereby preventing scamming.
The type of the event is defined in the header of each POST, specifically in the x-jericommerce-event-type
header. This header will define the data of the request.
Here are the possible events that could be received:
Wallet click
A customer clicks one of the wallet links.
Wallet visit
A customer visits one of the pages of the jericommerce web app. but not from the wallet.
Wallet pass installed
The customer installs a wallet pass on their device, or deactivates and reactivates the auto updates from the wallet pass settings.
Wallet pass uninstalled
The customer uninstall a wallet pass on their device, or deactivate the auto updates from the wallet pass settings.
Customer scanned
When the Shopify POS app scans a wallet pass with the jericommerce tile.
Customer created
When a new customer is created inside jericommerce.
Wallet Pass Requested
When the customer requests the wallet from the web app.
All the webhooks come with a data object that may change depending on the event type. However, the base structure is often the same. Let's take a look at the base structure.
1// Data event type structure
2{
3 id: "string",
4 customerId: "string",
5 campaignId?: "string",
6 url?: "string",
7 browser?: "string",
8 createdAt: "string",
9 properties: object;
10}
11
The question mark (?) indicates that the value is optional and may or may not be present, depending on the event type.
Here are the different properties
that may apply to each event type
1// Properties by event-type
2
3Wallet click: {
4 name: "Wallet click",
5 url: entity.url,
6 browser: entity.browser,
7 utm_campaign: entity.campaignId || "generic_link",
8 utm_source: "wallet",
9 utm_medium: "wallet_pass",
10 }
11Wallet visit: {
12 name: "Wallet visit",
13 url: entity.url,
14 browser: entity.browser,
15 utm_campaign: "generic_link",
16 utm_source: "wallet",
17 utm_medium: "wallet_pass",
18 }
19Wallet pass installed: {}
20Wallet pass uninstalled: {}
21Customer scanned: {
22 shopId: string,
23 userId: string,
24 shopDomain: string,
25 locationId: string,
26 staffMemberId: string
27}
28Customer created: {
29 email: string
30}