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