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)
{
"created":"2022-06-01 10:00:55",
"type":"appointment.booking.created",
"source":"https:\/\/dashboard.calenso.com",
"data":{
"user":{
"id": 1,
"prename":"Nico",
"lastname":"Lutz",
"avatar":"nico8841.jpg",
"email":"nico.lutz.calenso@gmail.com",
"job_title":"Inhaber",
"bookable":1,
"uuid":"0e1945c6-c49c-415e-9bd3-9cadc6d937f1",
"conference_url":null,
"newsletter_invitation_sent":0,
"is_multi_language":1,
"identity_connection":null,
"auth0_user_id":"auth0|49212",
"lang_identifier":null,
"calendar_color":null,
"is_lead_generator":0,
"is_reseller_admin":0,
"base_account_partner_id":null,
"full_name":"Nico Lutz",
"resource_name":"Nico Lutz"
},
"appointment": {
"id": 1,
"start":"2021-02-05 08:30:00",
"end":"2021-02-05 09:00:00",
"url":null,
"location":"+41 77 777 77 77",
"user_notified":0,
"remind_customer":1,
"cancellation_to":24,
"created":"2021-02-03 10:10:23",
"uuid":"931e751c-5eb6-4526-bf8b-33d870577322",
"reminded":0,
"charged_price":null,
"stripe_receipt_url":null,
"after_booking_message_received":0,
"price":0,
"parent_id":null,
"smart_action_2_notified":0,
"bexio_order_id":null,
"receipt_url":null,
"payment_type":"store",
"bexio_invoice_id":null,
"coupon_reduction_amount":null,
"applied_coupon":null,
"coupon_id":null,
"original_start":null,
"original_end":null,
"rebook_reason":null,
"remarks":null,
"payment_type_id":24187,
"before_booking_message_received":0,
"title":"Ronny Baumann",
"body":"Kundeninformationen: \r\nName: Ronny Baumann \r\nE-Mail: ronny.baumann@braincept.com \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",
"title_hash":"bf5e9a24403225a46aac63e73e20d21e5d691804",
"body_hash":"76d479828c3bc060ca2d5713ca3c3f2039034e95",
"booker_worker_id":49212,
"meeting_type_id":4,
"stripe_payment_intent_id":null,
"original_worker_id":null,
"rebooker_worker_id":null,
"utm_source":null,
"unblu_conversation_id":null,
"unblu_agent_single_view_conversation_link":null,
"unblu_agent_desk_conversation_link":null,
"unblu_visitor_desk_conversation_link":null,
"has_pending_external_event_delete":0,
"rebooker_worker":null,
"booker_worker": {
"id": 49212,
"email":"nico.lutz.calenso@gmail.com",
"full_name":" ",
"resource_name":null
},
"selected_appointment_services":[
{
"id":185603,
"appointment_service_id":14130,
"appointment_id":498366,
"appointment_service":{
"id":14130,
"name":"Yoga",
"duration":"0.5",
"partner_id":3182,
"category":null,
"price":-1,
"description":"ABC",
"is_multi_language":0,
"is_online_payment_enabled":0,
"appointment_service_category_id":1857,
"position":1,
"tax_id":1,
"lead_time":0,
"followup_time":15,
"is_internal":0
}
}
],
"category":{
"id":25312,
"uuid": "67e84e5d-4beb-4d25-8b92-6179332241a9",
"name":"Kundentermin",
"partner_id":3182,
"html_color":"blue"
},
"customer":{
"id":255921,
"partner_id":3182,
"number":68,
"customer_type_id":10574,
"skype":null,
"url":null,
"facebook":null,
"twitter":null,
"mwst":null,
"hr":null,
"ust":null,
"employee_count":null,
"tags":null,
"country_id":1,
"address_addition":null,
"contact_person_id":null,
"worker_id":49533,
"language_id":1,
"notification_preference":"email",
"created":"2021-02-03T10:10:23+00:00",
"birthday":null,
"smart_action_2_notification_count":0,
"uuid":"67e84e5d-4beb-4d25-8b92-6179332241a9",
"prename":"Ronny",
"lastname":"Baumann",
"email":"ronny.baumann@braincept.com",
"phone":null,
"street":"H\u00fcnenbergstrasse 50",
"zip":"6006",
"city":"Lucerne",
"name":null,
"remarks":"Automatisch hinzugef\u00fcgt, da der Kunde einen Termin via Webseiten-Widget vereinbart hat.",
"mobile":"+41792429041",
"email_hash":"ffd63bee7012df7ba14ec4e10059b9f5e6144da5",
"prename_hash":"36c2cbde021a457239efc9ba0c855feb82a5b5b7",
"lastname_hash":"3cb7462c1041642b48598628e3675f091a3a02a6",
"phone_hash":null,
"street_hash":"1d47ab737be1cf5c57ee4533af34497fc2683d4c",
"zip_hash":"d274c70db5f9299c02403dcccc1d467691fd0341",
"city_hash":"91e969e3014f3e6b94fcd861f514d4d9d57e7def",
"name_hash":null,
"remarks_hash":"690c1f27a7a4e8d2c795c0c35a103a6470dca33a",
"mobile_hash":"7a83b724dd66074091015e1522ffaa87d7ee25d3",
"customer_created_by_worker_id":null,
"customer_edited_by_worker_id":null,
"customer_deleted_by_worker_id":null,
"company_name":"Ronny Baumann"
},
"worker":{
"id":49533,
"prename":null,
"lastname":null,
"avatar":"711814584.jpg",
"partner_id":3182,
"username":"room1",
"email":"pull+ressource@braincept.com",
"job_title":null,
"bookable":1,
"store_id":6379,
"photo_dir":null,
"registration_date":"2019-11-20T08:43:59+00:00",
"updated":"2019-11-20T08:43:59+00:00",
"first_login":1,
"street":"",
"zip":"",
"city":"",
"mobile":"",
"timezone":"Europe\/Zurich",
"show_in_pro_calendar":1,
"status":1,
"uuid":"77d4a21a-0e4a-40d2-adbd-2dcc96557024",
"booking_label":"Meeting room",
"is_resource":1,
"booking_type_id":5,
"description":"Capacity: 10 People",
"conference_url":null,
"newsletter_invitation_sent":0,
"is_multi_language":1,
"identity_connection":null,
"auth0_user_id":"auth0|49533",
"lang_identifier":null,
"calendar_color":null,
"is_lead_generator":0,
"is_reseller_admin":0,
"base_account_partner_id":null,
"partner":{
"id":3182,
"name":"Demo-account",
"logo":"Demo-Unternehmensbild6711.jpg",
"phone":"+41 77 777 77 77",
"url":null,
"email":"nico.lutz.calenso@gmail.com",
"currency":"CHF"
},
"full_name":" ",
"resource_name":"Meeting room"
},
"meeting_type":{
"id":4,
"name":"Telefon",
"description":"Treffen via Telefon"
}
},
"event":[
],
"worker":{
"id": 1,
"prename":null,
"lastname":null,
"avatar":"711814584.jpg",
"email":"pull+ressource@braincept.com",
"job_title":null,
"bookable":1,
"uuid":"77d4a21a-0e4a-40d2-adbd-2dcc96557024",
"conference_url":null,
"newsletter_invitation_sent":0,
"is_multi_language":1,
"identity_connection":null,
"auth0_user_id":"auth0|49533",
"lang_identifier":null,
"calendar_color":null,
"is_lead_generator":0,
"is_reseller_admin":0,
"base_account_partner_id":null,
"full_name":" ",
"resource_name":null
},
"booker_worker":{
"id": 1,
"prename":"Nico",
"lastname":"Lutz",
"avatar":"nico8841.jpg",
"email":"nico.lutz.calenso@gmail.com",
"job_title":"Inhaber",
"bookable":1,
"uuid":"0e1945c6-c49c-415e-9bd3-9cadc6d937f1",
"conference_url":null,
"newsletter_invitation_sent":0,
"is_multi_language":1,
"identity_connection":null,
"auth0_user_id":"auth0|49212",
"lang_identifier":null,
"calendar_color":null,
"is_lead_generator":0,
"is_reseller_admin":0,
"base_account_partner_id":null,
"full_name":"Nico Lutz",
"resource_name":"Nico Lutz"
},
"rebooker_worker":[
],
"customer":{
"notification_preference":"email",
"prename":"Ronny",
"lastname":"Baumann",
"street":"H\u00fcnenbergstrasse 50",
"zip":6006,
"city":"Lucerne",
"email":"ronny.baumann@braincept.com",
"mobile":"+41792429041",
"uuid":"67e84e5d-4beb-4d25-8b92-6179332241a9",
"prename_hash":"36c2cbde021a457239efc9ba0c855feb82a5b5b7",
"lastname_hash":"3cb7462c1041642b48598628e3675f091a3a02a6",
"email_hash":"ffd63bee7012df7ba14ec4e10059b9f5e6144da5",
"mobile_hash":"7a83b724dd66074091015e1522ffaa87d7ee25d3",
"street_hash":"1d47ab737be1cf5c57ee4533af34497fc2683d4c",
"zip_hash":"d274c70db5f9299c02403dcccc1d467691fd0341",
"city_hash":"91e969e3014f3e6b94fcd861f514d4d9d57e7def",
"remarks_hash":"690c1f27a7a4e8d2c795c0c35a103a6470dca33a",
"company_name":"Ronny Baumann"
},
"previous_customer":[
],
"partner":{
"id":3182,
"name":"Demo-account",
"street":"Denis-Weibel-Allee 45",
"zip":"1142",
"city":"Gr\u00fcningen",
"email":"nico.lutz.calenso@gmail.com",
"phone":"+41 77 777 77 77",
"booking_name":"demo-account",
"registration_date":"2019-10-31 14:06:04",
"future_booking_threshold_appointments":365,
"future_booking_threshold_events":30,
"hide_widget_cart_functionality_message":0,
"lead_followup_enabled":1,
"is_multi_language":1,
"active_bexio_order_id":null,
"favicon_logo":null,
"utm_source":null,
"tmp_password":null,
"stripe_payment_intent_id":null,
"hide_past_appointments":1,
"stripe_payment_method_id":null,
"uuid":"ae7ce4d0-0ec7-46c1-ba01-e945e4cb6bb9",
"gdpr_dpa_requested":0,
"cancellation_notification_preference":1,
"block_sync_to_3rd_party_apps":0,
"has_event_bookings_tomorrow":0,
"has_appointment_bookings_tomorrow":0,
"trial_mode":"bookings",
"trial_max":100
},
"store":{
"id": 1,
"uuid": "67e84e5d-4beb-4d25-8b92-6179332241a9",
"name":"Filiale Sempach",
"street":"Neuenkirchstrasse 19",
"zip":"6203",
"city":"Sempach Station",
"place":null,
"is_online":0,
"is_multi_language":0,
"email":null,
"phone":null,
"country_id":1,
"logo": "avatar.jpg"
},
"custom_fields":[
{
"custom_field_id":3445,
"appointment_id":null,
"customers_slots_id":null,
"value":"No",
"value_hash":"46e9ecd8a83091478907a485eb7070090b629bb2",
"custom_field":{
"id":3445,
"placeholder":null,
"label":"Do you need a parking slot?",
"name":"FgCcTcoPpP",
"required":0,
"type":"select",
"title":null,
"is_read_only":0,
"is_multiple_file":0,
"supported_mime_type":null,
"is_hidden":0,
"custom_field_dependency_enabled":0,
"deleted_by_worker_id":null,
"custom_field_options":[
{
"id":21550,
"label":"Yes, a standard parking",
"custom_field_id":3445,
"partner_id":3182,
"position":0,
"is_multi_language":0,
"deleted_by_worker_id":null
},
{
"id":21551,
"label":"Yes, a disabled parking",
"custom_field_id":3445,
"partner_id":3182,
"position":1,
"is_multi_language":0,
"deleted_by_worker_id":null
},
{
"id":21552,
"label":"No",
"custom_field_id":3445,
"partner_id":3182,
"position":2,
"is_multi_language":0,
"deleted_by_worker_id":null
}
]
}
}
],
"slot":[
],
"attendee":[
],
"customer_registration":[
]
}
}
Webhook Beispiel mit einer JSON-Hierarchie:
{
"created": "2022-05-18 12:39:01",
"type": "appointment.booking.created",
"source": "https:\/\/dashboard.calenso.com",
"partner_id": 6,
"partner_uuid": "b89c6992-9f5f-48a4-b9d0-82e270b0f950",
"partner_name": "Calenso (by Braincept AG)",
"partner_street": "Neuenkirchstrasse 19",
"partner_zip": "6203",
"partner_city": "Sempach Station",
"partner_email": "info@braincept.com",
"partner_phone": "+41775340945",
"partner_booking_name": "braincept",
"partner_registration_date": "2016-05-15T10:00:00+00:00",
"partner_future_booking_threshold_appointments": 365,
"partner_future_booking_threshold_events": 300,
"partner_is_multi_language": true,
"partner_translation_micro_partner_description_": null,
"appointment_id": 446719,
"appointment_uuid": "a452b869-0481-40e4-b98d-fe08db06a5ca",
"appointment_start": "2022-05-28 13:15:00",
"appointment_end": "2022-05-28 13:25:00",
"appointment_created": "2022-05-18 12:38:42",
"appointment_url": null,
"appointment_location": null,
"appointment_cancellation_to": 24,
"appointment_price": 10,
"appointment_charged_price": 10,
"appointment_stripe_receipt_url": null,
"appointment_payment_type": "store",
"appointment_coupon_reduction_amount": null,
"appointment_applied_coupon": null,
"appointment_coupon_id": null,
"appointment_original_start": null,
"appointment_original_end": null,
"appointment_rebook_reason": null,
"appointment_remarks": null,
"appointment_title": "Patrick Breiter",
"appointment_description": "Kundeninformationen: \nName: Patrick Breiter \nE-Mail: pat.breiter@gmail.com \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",
"appointment_booker_worker_id": null,
"appointment_rebooker_worker_id": null,
"appointment_meeting_type_id": null,
"appointment_meeting_type_name": null,
"appointment_utm_source": null,
"appointment_unblu_conversation_id": null,
"appointment_unblu_agent_single_view_conversation_link": null,
"appointment_unblu_agent_desk_conversation_link": null,
"appointment_unblu_visitor_desk_conversation_link": null,
"appointment_customer_url": "https:\/\/dashboard.calenso.com\/appointments\/a452b869-0481-40e4-b98d-fe08db06a5ca",
"appointment_admin_url": "https:\/\/dashboard.calenso.com\/appointments\/a452b869-0481-40e4-b98d-fe08db06a5ca\/W0KTP43D",
"store_id": 2,
"store_uuid": "fc2e9953-c20d-11ec-a36c-506b8dbc6117",
"store_name": "Sempach-Station (DE)",
"store_street": "Neuenkirchstrasse 19",
"store_zip": "6203",
"store_city": "Sempach Station",
"store_place": "null",
"store_email": "pat.breiter+officesempach@gmail.com",
"store_phone": "+41 79 589 69 85",
"store_country_id": 1,
"store_is_online": false,
"store_is_multi_language": true,
"store_logo": "https:\/\/www.dev.my.calenso.com\/files\/stores\/logo\/fc2e9953-c20d-11ec-a36c-506b8dbc6117\/0.png",
"store_translation_name_de": "Sempach-Station (DE)",
"store_translation_name_en": "Sempach-Station (EN)",
"store_translation_name_it": "Sempach-Station (IT)",
"store_translation_name_fr": "Sempach-Station (FR)",
"customer_id": 208377,
"customer_uuid": "dcd00506-e964-45fa-8887-14723099d250",
"customer_prename": "Patrick",
"customer_lastname": "Breiter",
"customer_company_name": "Braincept AG",
"customer_fullname": "Patrick Breiter (Braincept AG)",
"customer_street": "Neuenkirchstrasse",
"customer_zip": "6203",
"customer_city": "Sempach-Station",
"customer_email": "pat.breiter@gmail.com",
"customer_phone": null,
"customer_mobile": "+41775340945",
"customer_partner_id": 6,
"customer_number": 2548,
"customer_customer_type_id": 275,
"customer_country_id": 2,
"customer_worker_id": 23,
"customer_language_id": 1,
"customer_notification_preference": "email",
"customer_created": "2022-02-24 17:23:12",
"customer_birthday": null,
"customer_remarks": "Automatisch hinzugef\u00fcgt, da der Kunde einen Termin via Webseiten-Widget vereinbart hat.",
"customer_created_by_worker_id": null,
"customer_edited_by_worker_id": 23,
"customer_deleted_by_worker_id": null,
"customer_type_id": 275,
"customer_type_uuid": "791814c9-c20e-11ec-a36c-506b8dbc6117",
"customer_type_name": "widget",
"customer_type_description": "Kunde via Webseite",
"customer_type_color": "blue",
"category_id": 1,
"category_uuid": "3488a5f0-c20e-11ec-a36c-506b8dbc6117",
"category_name": "Kundentermin",
"category_partner_id": 6,
"category_html_color": "blue",
"worker_id": 23,
"worker_uuid": "89744cd5-6125-4277-86a9-ec7cd0538aea",
"worker_prename": "Patrick",
"worker_lastname": "Breiter",
"worker_avatar": "https:\/\/www.dev.my.calenso.com\/files\/workers\/avatar\/23\/csm_536253_D4_8ec91544fc4079.jpeg",
"worker_email": "patrick.breiter@braincept.com",
"worker_job_title": "CTO (EN)",
"worker_conference_url": null,
"worker_bookable": true,
"worker_lang_identifier": "de_CH",
"worker_calendar_color": "#78f755",
"worker_is_multi_language": true,
"worker_is_reseller_admin": true,
"worker_base_account_partner_id": 6,
"worker_full_name": "Patrick Breiter",
"worker_resource_name": "Patrick Breiter",
"worker_translation_job_title_de": "CTO",
"worker_translation_full_name_de": " ",
"worker_translation_description_de": "Ich bin der Mitgr\u00fcnder von Calenso",
"worker_translation_resource_name_de": null,
"worker_translation_job_title_en": "CTO (EN)",
"worker_translation_full_name_en": " ",
"worker_translation_description_en": "I am the co-founder of Calenso",
"worker_translation_resource_name_en": null,
"worker_translation_job_title_it": "CTO (IT)",
"worker_translation_full_name_it": " ",
"worker_translation_description_it": "Sono il cofondatore di Calenso",
"worker_translation_resource_name_it": null,
"worker_translation_job_title_fr": "CTO (FR)",
"worker_translation_full_name_fr": " ",
"worker_translation_description_fr": "Je suis le cofondateur de Calenso",
"worker_translation_resource_name_fr": null,
"custom_field_15552_name": "What is your birthday?",
"custom_field_15552_value": null,
"custom_field_15552_is_multi_language": false,
"custom_field_15548_name": "Ich akzeptiere die <a href=\"https:\/\/www.meinewebseite.com\/datenschutz\" target=\"_blank\">Datenschutz Richtlinien<\/a>.",
"custom_field_15548_value": "true",
"custom_field_15548_is_multi_language": false,
"booked_service_11934_name": "Service EN",
"booked_service_11934_duration": "0.16666666666667",
"booked_service_11934_price": 10,
"booked_service_11934_description": "Service EN",
"booked_service_11934_lead_time": 0,
"booked_service_11934_follow_up_time": null,
"booked_service_11934_is_internal": 0,
"booked_service_11934_category_id": 8384,
"booked_service_11934_category_uuid": "d360e955-c9fe-11ec-a36c-506b8dbc6117",
"booked_service_11934_category_name": "Name",
"booked_service_11934_category_is_multi_language": false,
"booked_service_translations_11934_name_de": null,
"booked_service_translations_11934_name_en": null,
"booked_service_translations_11934_name_it": null,
"booked_service_translations_11934_name_fr": null,
"booked_service_translations_11934_description_de": null,
"booked_service_translations_11934_description_en": null,
"booked_service_translations_11934_description_it": null,
"booked_service_translations_11934_description_fr": null
}
Last updated