Webhooks
Anleitung Calenso Webhook Konfiguration: https://calenso.freshdesk.com/a/solutions/articles/80000153245?lang=de
Events:
  • appointment.booking.created: Ein Kunde hat einen Termin über das Buchungswidget bei dem Partner vereinbart.
  • event.booking.created: Ein Kunde hat sich über das Buchungswidget bei einem Gruppentermin angemeldet.
  • appointment.booking.cancelled: Ein Kunde hat einen Termin beim Partner storniert (ab Version 3.1.6).
  • event.booking.cancelled: Ein Kunde hat seine Event-Teilnahme abgesagt (ab v3.1.6).
  • appointment.manual.booking.created: Ein manueller Kundentermin wurde im Kalender vom Partner eingetragen (ab v.3.8.0).
  • event.manual.booking.created: Ein Kunde wurde manuell vom Partner zu einem Gruppentermin hinzugefügt (ab v.3.8.0).
  • customer.created: Ein Kunde wurde angelegt (ab v.4.9.0)
  • customer.updated: Ein Kunde wurde aktualisiert (ab v.4.9.0)
  • customer.deleted: Ein Kunde wurde gelöscht (ab v.4.9.0)
Seit v.4.41.0 ist es möglich zu definieren, ob die Webhook JSON-Daten in Objekten verschachtelt werden sollen oder ob sie nur auf einer Stufe angezeigt werden sollen. Anbei beide Beispiele:
Beispiel Webhook mit JSON-Objekten (appointment.booking.created)
1
{
2
"created":"2022-06-01 10:00:55",
3
"type":"appointment.booking.created",
4
"source":"https:\/\/dashboard.calenso.com",
5
"data":{
6
"user":{
7
"id": 1,
8
"prename":"Nico",
9
"lastname":"Lutz",
10
"avatar":"nico8841.jpg",
11
"email":"[email protected]",
12
"job_title":"Inhaber",
13
"bookable":1,
14
"uuid":"0e1945c6-c49c-415e-9bd3-9cadc6d937f1",
15
"conference_url":null,
16
"newsletter_invitation_sent":0,
17
"is_multi_language":1,
18
"identity_connection":null,
19
"auth0_user_id":"auth0|49212",
20
"lang_identifier":null,
21
"calendar_color":null,
22
"is_lead_generator":0,
23
"is_reseller_admin":0,
24
"base_account_partner_id":null,
25
"full_name":"Nico Lutz",
26
"resource_name":"Nico Lutz"
27
},
28
"appointment": {
29
"id": 1,
30
"start":"2021-02-05 08:30:00",
31
"end":"2021-02-05 09:00:00",
32
"url":null,
33
"location":"+41 77 777 77 77",
34
"user_notified":0,
35
"remind_customer":1,
36
"cancellation_to":24,
37
"created":"2021-02-03 10:10:23",
38
"uuid":"931e751c-5eb6-4526-bf8b-33d870577322",
39
"reminded":0,
40
"charged_price":null,
41
"stripe_receipt_url":null,
42
"after_booking_message_received":0,
43
"price":0,
44
"parent_id":null,
45
"smart_action_2_notified":0,
46
"bexio_order_id":null,
47
"receipt_url":null,
48
"payment_type":"store",
49
"bexio_invoice_id":null,
50
"coupon_reduction_amount":null,
51
"applied_coupon":null,
52
"coupon_id":null,
53
"original_start":null,
54
"original_end":null,
55
"rebook_reason":null,
56
"remarks":null,
57
"payment_type_id":24187,
58
"before_booking_message_received":0,
59
"title":"Ronny Baumann",
60
"body":"Kundeninformationen: \r\nName: Ronny Baumann \r\nE-Mail: [email protected] \r\nMobile: +41792429041 \r\nAdresse: H\u00fcnenbergstrasse 50, 6006 Lucerne \r\n\r\nGebuchte Dienstleistung: \r\n- Yoga\r\n\r\nBen\u00f6tigen Sie einen Parkplatz?: Nein\r\n\r\n \n\nTermin stornieren oder umbuchen: https:\/\/dashboard.calenso.com\/appointments\/931e751c-5eb6-4526-bf8b-33d870577322",
61
"title_hash":"bf5e9a24403225a46aac63e73e20d21e5d691804",
62
"body_hash":"76d479828c3bc060ca2d5713ca3c3f2039034e95",
63
"booker_worker_id":49212,
64
"meeting_type_id":4,
65
"stripe_payment_intent_id":null,
66
"original_worker_id":null,
67
"rebooker_worker_id":null,
68
"utm_source":null,
69
"unblu_conversation_id":null,
70
"unblu_agent_single_view_conversation_link":null,
71
"unblu_agent_desk_conversation_link":null,
72
"unblu_visitor_desk_conversation_link":null,
73
"has_pending_external_event_delete":0,
74
"rebooker_worker":null,
75
"booker_worker": {
76
"id": 49212,
77
"email":"[email protected]",
78
"full_name":" ",
79
"resource_name":null
80
},
81
"selected_appointment_services":[
82
{
83
"id":185603,
84
"appointment_service_id":14130,
85
"appointment_id":498366,
86
"appointment_service":{
87
"id":14130,
88
"name":"Yoga",
89
"duration":"0.5",
90
"partner_id":3182,
91
"category":null,
92
"price":-1,
93
"description":"ABC",
94
"is_multi_language":0,
95
"is_online_payment_enabled":0,
96
"appointment_service_category_id":1857,
97
"position":1,
98
"tax_id":1,
99
"lead_time":0,
100
"followup_time":15,
101
"is_internal":0
102
}
103
}
104
],
105
"category":{
106
"id":25312,
107
"uuid": "67e84e5d-4beb-4d25-8b92-6179332241a9",
108
"name":"Kundentermin",
109
"partner_id":3182,
110
"html_color":"blue"
111
},
112
"customer":{
113
"id":255921,
114
"partner_id":3182,
115
"number":68,
116
"customer_type_id":10574,
117
"skype":null,
118
"url":null,
119
"facebook":null,
120
"twitter":null,
121
"mwst":null,
122
"hr":null,
123
"ust":null,
124
"employee_count":null,
125
"tags":null,
126
"country_id":1,
127
"address_addition":null,
128
"contact_person_id":null,
129
"worker_id":49533,
130
"language_id":1,
131
"notification_preference":"email",
132
"created":"2021-02-03T10:10:23+00:00",
133
"birthday":null,
134
"smart_action_2_notification_count":0,
135
"uuid":"67e84e5d-4beb-4d25-8b92-6179332241a9",
136
"prename":"Ronny",
137
"lastname":"Baumann",
138
"email":"[email protected]",
139
"phone":null,
140
"street":"H\u00fcnenbergstrasse 50",
141
"zip":"6006",
142
"city":"Lucerne",
143
"name":null,
144
"remarks":"Automatisch hinzugef\u00fcgt, da der Kunde einen Termin via Webseiten-Widget vereinbart hat.",
145
"mobile":"+41792429041",
146
"email_hash":"ffd63bee7012df7ba14ec4e10059b9f5e6144da5",
147
"prename_hash":"36c2cbde021a457239efc9ba0c855feb82a5b5b7",
148
"lastname_hash":"3cb7462c1041642b48598628e3675f091a3a02a6",
149
"phone_hash":null,
150
"street_hash":"1d47ab737be1cf5c57ee4533af34497fc2683d4c",
151
"zip_hash":"d274c70db5f9299c02403dcccc1d467691fd0341",
152
"city_hash":"91e969e3014f3e6b94fcd861f514d4d9d57e7def",
153
"name_hash":null,
154
"remarks_hash":"690c1f27a7a4e8d2c795c0c35a103a6470dca33a",
155
"mobile_hash":"7a83b724dd66074091015e1522ffaa87d7ee25d3",
156
"customer_created_by_worker_id":null,
157
"customer_edited_by_worker_id":null,
158
"customer_deleted_by_worker_id":null,
159
"company_name":"Ronny Baumann"
160
},
161
"worker":{
162
"id":49533,
163
"prename":null,
164
"lastname":null,
165
"avatar":"711814584.jpg",
166
"partner_id":3182,
167
"username":"room1",
168
"email":"[email protected]",
169
"job_title":null,
170
"bookable":1,
171
"store_id":6379,
172
"photo_dir":null,
173
"registration_date":"2019-11-20T08:43:59+00:00",
174
"updated":"2019-11-20T08:43:59+00:00",
175
"first_login":1,
176
"street":"",
177
"zip":"",
178
"city":"",
179
"mobile":"",
180
"timezone":"Europe\/Zurich",
181
"show_in_pro_calendar":1,
182
"status":1,
183
"uuid":"77d4a21a-0e4a-40d2-adbd-2dcc96557024",
184
"booking_label":"Meeting room",
185
"is_resource":1,
186
"booking_type_id":5,
187
"description":"Capacity: 10 People",
188
"conference_url":null,
189
"newsletter_invitation_sent":0,
190
"is_multi_language":1,
191
"identity_connection":null,
192
"auth0_user_id":"auth0|49533",
193
"lang_identifier":null,
194
"calendar_color":null,
195
"is_lead_generator":0,
196
"is_reseller_admin":0,
197
"base_account_partner_id":null,
198
"partner":{
199
"id":3182,
200
"name":"Demo-account",
201
"logo":"Demo-Unternehmensbild6711.jpg",
202
"phone":"+41 77 777 77 77",
203
"url":null,
204
"email":"[email protected]",
205
"currency":"CHF"
206
},
207
"full_name":" ",
208
"resource_name":"Meeting room"
209
},
210
"meeting_type":{
211
"id":4,
212
"name":"Telefon",
213
"description":"Treffen via Telefon"
214
}
215
},
216
"event":[
217
218
],
219
"worker":{
220
"id": 1,
221
"prename":null,
222
"lastname":null,
223
"avatar":"711814584.jpg",
224
"email":"[email protected]",
225
"job_title":null,
226
"bookable":1,
227
"uuid":"77d4a21a-0e4a-40d2-adbd-2dcc96557024",
228
"conference_url":null,
229
"newsletter_invitation_sent":0,
230
"is_multi_language":1,
231
"identity_connection":null,
232
"auth0_user_id":"auth0|49533",
233
"lang_identifier":null,
234
"calendar_color":null,
235
"is_lead_generator":0,
236
"is_reseller_admin":0,
237
"base_account_partner_id":null,
238
"full_name":" ",
239
"resource_name":null
240
},
241
"booker_worker":{
242
"id": 1,
243
"prename":"Nico",
244
"lastname":"Lutz",
245
"avatar":"nico8841.jpg",
246
"email":"[email protected]",
247
"job_title":"Inhaber",
248
"bookable":1,
249
"uuid":"0e1945c6-c49c-415e-9bd3-9cadc6d937f1",
250
"conference_url":null,
251
"newsletter_invitation_sent":0,
252
"is_multi_language":1,
253
"identity_connection":null,
254
"auth0_user_id":"auth0|49212",
255
"lang_identifier":null,
256
"calendar_color":null,
257
"is_lead_generator":0,
258
"is_reseller_admin":0,
259
"base_account_partner_id":null,
260
"full_name":"Nico Lutz",
261
"resource_name":"Nico Lutz"
262
},
263
"rebooker_worker":[
264
265
],
266
"customer":{
267
"notification_preference":"email",
268
"prename":"Ronny",
269
"lastname":"Baumann",
270
"street":"H\u00fcnenbergstrasse 50",
271
"zip":6006,
272
"city":"Lucerne",
273
"email":"[email protected]",
274
"mobile":"+41792429041",
275
"uuid":"67e84e5d-4beb-4d25-8b92-6179332241a9",
276
"prename_hash":"36c2cbde021a457239efc9ba0c855feb82a5b5b7",
277
"lastname_hash":"3cb7462c1041642b48598628e3675f091a3a02a6",
278
"email_hash":"ffd63bee7012df7ba14ec4e10059b9f5e6144da5",
279
"mobile_hash":"7a83b724dd66074091015e1522ffaa87d7ee25d3",
280
"street_hash":"1d47ab737be1cf5c57ee4533af34497fc2683d4c",
281
"zip_hash":"d274c70db5f9299c02403dcccc1d467691fd0341",
282
"city_hash":"91e969e3014f3e6b94fcd861f514d4d9d57e7def",
283
"remarks_hash":"690c1f27a7a4e8d2c795c0c35a103a6470dca33a",
284
"company_name":"Ronny Baumann"
285
},
286
"previous_customer":[
287
288
],
289
"partner":{
290
"id":3182,
291
"name":"Demo-account",
292
"street":"Denis-Weibel-Allee 45",
293
"zip":"1142",
294
"city":"Gr\u00fcningen",
295
"email":"[email protected]",
296
"phone":"+41 77 777 77 77",
297
"booking_name":"demo-account",
298
"registration_date":"2019-10-31 14:06:04",
299
"future_booking_threshold_appointments":365,
300
"future_booking_threshold_events":30,
301
"hide_widget_cart_functionality_message":0,
302
"lead_followup_enabled":1,
303
"is_multi_language":1,
304
"active_bexio_order_id":null,
305
"favicon_logo":null,
306
"utm_source":null,
307
"tmp_password":null,
308
"stripe_payment_intent_id":null,
309
"hide_past_appointments":1,
310
"stripe_payment_method_id":null,
311
"uuid":"ae7ce4d0-0ec7-46c1-ba01-e945e4cb6bb9",
312
"gdpr_dpa_requested":0,
313
"cancellation_notification_preference":1,
314
"block_sync_to_3rd_party_apps":0,
315
"has_event_bookings_tomorrow":0,
316
"has_appointment_bookings_tomorrow":0,
317
"trial_mode":"bookings",
318
"trial_max":100
319
},
320
"store":{
321
"id": 1,
322
"uuid": "67e84e5d-4beb-4d25-8b92-6179332241a9",
323
"name":"Filiale Sempach",
324
"street":"Neuenkirchstrasse 19",
325
"zip":"6203",
326
"city":"Sempach Station",
327
"place":null,
328
"is_online":0,
329
"is_multi_language":0,
330
"email":null,
331
"phone":null,
332
"country_id":1,
333
"logo": "avatar.jpg"
334
},
335
"custom_fields":[
336
{
337
"custom_field_id":3445,
338
"appointment_id":null,
339
"customers_slots_id":null,
340
"value":"No",
341
"value_hash":"46e9ecd8a83091478907a485eb7070090b629bb2",
342
"custom_field":{
343
"id":3445,
344
"placeholder":null,
345
"label":"Do you need a parking slot?",
346
"name":"FgCcTcoPpP",
347
"required":0,
348
"type":"select",
349
"title":null,
350
"is_read_only":0,
351
"is_multiple_file":0,
352
"supported_mime_type":null,
353
"is_hidden":0,
354
"custom_field_dependency_enabled":0,
355
"deleted_by_worker_id":null,
356
"custom_field_options":[
357
{
358
"id":21550,
359
"label":"Yes, a standard parking",
360
"custom_field_id":3445,
361
"partner_id":3182,
362
"position":0,
363
"is_multi_language":0,
364
"deleted_by_worker_id":null
365
},
366
{
367
"id":21551,
368
"label":"Yes, a disabled parking",
369
"custom_field_id":3445,
370
"partner_id":3182,
371
"position":1,
372
"is_multi_language":0,
373
"deleted_by_worker_id":null
374
},
375
{
376
"id":21552,
377
"label":"No",
378
"custom_field_id":3445,
379
"partner_id":3182,
380
"position":2,
381
"is_multi_language":0,
382
"deleted_by_worker_id":null
383
}
384
]
385
}
386
}
387
],
388
"slot":[
389
390
],
391
"attendee":[
392
393
],
394
"customer_registration":[
395
396
]
397
}
398
}
Copied!
Webhook Beispiel mit einer JSON-Hierarchie:
1
{
2
"created": "2022-05-18 12:39:01",
3
"type": "appointment.booking.created",
4
"source": "https:\/\/dashboard.calenso.com",
5
6
"partner_id": 6,
7
"partner_uuid": "b89c6992-9f5f-48a4-b9d0-82e270b0f950",
8
"partner_name": "Calenso (by Braincept AG)",
9
"partner_street": "Neuenkirchstrasse 19",
10
"partner_zip": "6203",
11
"partner_city": "Sempach Station",
12
"partner_email": "[email protected]",
13
"partner_phone": "+41775340945",
14
"partner_booking_name": "braincept",
15
"partner_registration_date": "2016-05-15T10:00:00+00:00",
16
"partner_future_booking_threshold_appointments": 365,
17
"partner_future_booking_threshold_events": 300,
18
"partner_is_multi_language": true,
19
"partner_translation_micro_partner_description_": null,
20
21
"appointment_id": 446719,
22
"appointment_uuid": "a452b869-0481-40e4-b98d-fe08db06a5ca",
23
"appointment_start": "2022-05-28 13:15:00",
24
"appointment_end": "2022-05-28 13:25:00",
25
"appointment_created": "2022-05-18 12:38:42",
26
"appointment_url": null,
27
"appointment_location": null,
28
"appointment_cancellation_to": 24,
29
"appointment_price": 10,
30
"appointment_charged_price": 10,
31
"appointment_stripe_receipt_url": null,
32
"appointment_payment_type": "store",
33
"appointment_coupon_reduction_amount": null,
34
"appointment_applied_coupon": null,
35
"appointment_coupon_id": null,
36
"appointment_original_start": null,
37
"appointment_original_end": null,
38
"appointment_rebook_reason": null,
39
"appointment_remarks": null,
40
"appointment_title": "Patrick Breiter",
41
"appointment_description": "Kundeninformationen: \nName: Patrick Breiter \nE-Mail: [email protected] \nAdresse: Neuenkirchstrasse, 6203 Sempach-Station \n\nGebuchte Dienstleistung: \n- DE Service \n\nTermin stornieren oder umbuchen: \nhttps:\/\/dashboard.calenso.com\/appointments\/a452b869-0481-40e4-b98d-fe08db06a5ca",
42
"appointment_booker_worker_id": null,
43
"appointment_rebooker_worker_id": null,
44
"appointment_meeting_type_id": null,
45
"appointment_meeting_type_name": null,
46
"appointment_utm_source": null,
47
"appointment_unblu_conversation_id": null,
48
"appointment_unblu_agent_single_view_conversation_link": null,
49
"appointment_unblu_agent_desk_conversation_link": null,
50
"appointment_unblu_visitor_desk_conversation_link": null,
51
"appointment_customer_url": "https:\/\/dashboard.calenso.com\/appointments\/a452b869-0481-40e4-b98d-fe08db06a5ca",
52
"appointment_admin_url": "https:\/\/dashboard.calenso.com\/appointments\/a452b869-0481-40e4-b98d-fe08db06a5ca\/W0KTP43D",
53
54
"store_id": 2,
55
"store_uuid": "fc2e9953-c20d-11ec-a36c-506b8dbc6117",
56
"store_name": "Sempach-Station (DE)",
57
"store_street": "Neuenkirchstrasse 19",
58
"store_zip": "6203",
59
"store_city": "Sempach Station",
60
"store_place": "null",
61
"store_email": "[email protected]",
62
"store_phone": "+41 79 589 69 85",
63
"store_country_id": 1,
64
"store_is_online": false,
65
"store_is_multi_language": true,
66
"store_logo": "https:\/\/www.dev.my.calenso.com\/files\/stores\/logo\/fc2e9953-c20d-11ec-a36c-506b8dbc6117\/0.png",
67
"store_translation_name_de": "Sempach-Station (DE)",
68
"store_translation_name_en": "Sempach-Station (EN)",
69
"store_translation_name_it": "Sempach-Station (IT)",
70
"store_translation_name_fr": "Sempach-Station (FR)",
71
72
"customer_id": 208377,
73
"customer_uuid": "dcd00506-e964-45fa-8887-14723099d250",
74
"customer_prename": "Patrick",
75
"customer_lastname": "Breiter",
76
"customer_company_name": "Braincept AG",
77
"customer_fullname": "Patrick Breiter (Braincept AG)",
78
"customer_street": "Neuenkirchstrasse",
79
"customer_zip": "6203",
80
"customer_city": "Sempach-Station",
81
"customer_email": "[email protected]",
82
"customer_phone": null,
83
"customer_mobile": "+41775340945",
84
"customer_partner_id": 6,
85
"customer_number": 2548,
86
"customer_customer_type_id": 275,
87
"customer_country_id": 2,
88
"customer_worker_id": 23,
89
"customer_language_id": 1,
90
"customer_notification_preference": "email",
91
"customer_created": "2022-02-24 17:23:12",
92
"customer_birthday": null,
93
"customer_remarks": "Automatisch hinzugef\u00fcgt, da der Kunde einen Termin via Webseiten-Widget vereinbart hat.",
94
"customer_created_by_worker_id": null,
95
"customer_edited_by_worker_id": 23,
96
"customer_deleted_by_worker_id": null,
97
98
"customer_type_id": 275,
99
"customer_type_uuid": "791814c9-c20e-11ec-a36c-506b8dbc6117",
100
"customer_type_name": "widget",
101
"customer_type_description": "Kunde via Webseite",
102
"customer_type_color": "blue",
103
104
"category_id": 1,
105
"category_uuid": "3488a5f0-c20e-11ec-a36c-506b8dbc6117",
106
"category_name": "Kundentermin",
107
"category_partner_id": 6,
108
"category_html_color": "blue",
109
110
"worker_id": 23,
111
"worker_uuid": "89744cd5-6125-4277-86a9-ec7cd0538aea",
112
"worker_prename": "Patrick",
113
"worker_lastname": "Breiter",
114
"worker_avatar": "https:\/\/www.dev.my.calenso.com\/files\/workers\/avatar\/23\/csm_536253_D4_8ec91544fc4079.jpeg",
115
"worker_email": "[email protected]",
116
"worker_job_title": "CTO (EN)",
117
"worker_conference_url": null,
118
"worker_bookable": true,
119
"worker_lang_identifier": "de_CH",
120
"worker_calendar_color": "#78f755",
121
"worker_is_multi_language": true,
122
"worker_is_reseller_admin": true,
123
"worker_base_account_partner_id": 6,
124
"worker_full_name": "Patrick Breiter",
125
"worker_resource_name": "Patrick Breiter",
126
"worker_translation_job_title_de": "CTO",
127
"worker_translation_full_name_de": " ",
128
"worker_translation_description_de": "Ich bin der Mitgr\u00fcnder von Calenso",
129
"worker_translation_resource_name_de": null,
130
"worker_translation_job_title_en": "CTO (EN)",
131
"worker_translation_full_name_en": " ",
132
"worker_translation_description_en": "I am the co-founder of Calenso",
133
"worker_translation_resource_name_en": null,
134
"worker_translation_job_title_it": "CTO (IT)",
135
"worker_translation_full_name_it": " ",
136
"worker_translation_description_it": "Sono il cofondatore di Calenso",
137
"worker_translation_resource_name_it": null,
138
"worker_translation_job_title_fr": "CTO (FR)",
139
"worker_translation_full_name_fr": " ",
140
"worker_translation_description_fr": "Je suis le cofondateur de Calenso",
141
"worker_translation_resource_name_fr": null,
142
143
"custom_field_15552_name": "What is your birthday?",
144
"custom_field_15552_value": null,
145
"custom_field_15552_is_multi_language": false,
146
"custom_field_15548_name": "Ich akzeptiere die <a href=\"https:\/\/www.meinewebseite.com\/datenschutz\" target=\"_blank\">Datenschutz Richtlinien<\/a>.",
147
"custom_field_15548_value": "true",
148
"custom_field_15548_is_multi_language": false,
149
150
"booked_service_11934_name": "Service EN",
151
"booked_service_11934_duration": "0.16666666666667",
152
"booked_service_11934_price": 10,
153
"booked_service_11934_description": "Service EN",
154
"booked_service_11934_lead_time": 0,
155
"booked_service_11934_follow_up_time": null,
156
"booked_service_11934_is_internal": 0,
157
"booked_service_11934_category_id": 8384,
158
"booked_service_11934_category_uuid": "d360e955-c9fe-11ec-a36c-506b8dbc6117",
159
"booked_service_11934_category_name": "Name",
160
"booked_service_11934_category_is_multi_language": false,
161
"booked_service_translations_11934_name_de": null,
162
"booked_service_translations_11934_name_en": null,
163
"booked_service_translations_11934_name_it": null,
164
"booked_service_translations_11934_name_fr": null,
165
"booked_service_translations_11934_description_de": null,
166
"booked_service_translations_11934_description_en": null,
167
"booked_service_translations_11934_description_it": null,
168
"booked_service_translations_11934_description_fr": null
169
}
Copied!
Copy link