Har du spørgsmål til Gecko Booking?

Vi hjælper gerne :)

Spørgsmål til Gecko Booking?

Er du i tvivl om hvorvidt Gecko Booking er noget for dig, eller har du andre spørgsmål? Så hører vi rigtig gerne fra dig!

Felter markeret med * er påkrævede

+45 7027 1699 info@gecko.dk Log ind Online booking- & administrationssystem - Nemt og enkelt

Webhooks


Indholdsfortegnelse


9.4 Webhooks

Webhooks giver mulighed for, automatisk, at sende data til eksterne systemer. Hvilke data der sendes og hvad der udløser afsendelsen kan defineres på de forskellige webhook skabeloner I kan oprette i systemet.

De forskellige webhooks kan opsættes til at sende data på følgende måder:

  • Sende en e-mail til en indtastet e-mailadresse
  • Uploade en fil til en FTP-server
  • Sende POST/GET-forespørgsel til en URL
  • Kalde et eksternt REST-API

9.4.1 Tidsbestemte webhooks

Vores tidsbestemte webhooks køres hver dag, på det tidspunkt I selv vælger på de enkelte webhooks.


9.4.1.1 Booking webhook: Aflysninger i går

Dette webhook kan benyttes til dagligt, på kalendergruppeniveau, at modtage både antallet og værdien af de bookinger der blev slettet/aflyst i går. Der skelnes ikke på hvornår den slettede booking lå til, kun at selve sletningen blev foretaget i går.

Eksempel på JSON der kan sendes i dette webhook:


		{
"date": "[date]",
"calendarGroups": [
[CALENDARGROUP_BEGIN]
{
"calendarGroupId": [calendarGroupId],
"calendarGroupName": "[calendarGroupName]",
"calendarGroupNamePath": "[calendarGroupNamePath]",
"calendarGroupLevel": "[calendarGroupLevel]",
"calendarGroupCalendars": "[calendarGroupCalendars]",
"cancellationCount": [cancellationCount],
"cancellationValue": "[cancellationValue]"
}[lineBreak]
[CALENDARGROUP_END]
]
}

Erstatningskoderne ovenfor vil blive erstattet med følgende data når det specifikke webhook køres:

  • [date] erstattes med datoen for i går i formatet DD/MM-ÅÅÅÅ
  • [CALENDARGROUP_BEGIN][lineBreak][CALENDARGROUP_END] benyttes til at gentage data for hver kalendergruppe hvor nedenstående erstatningskoder vil kunne benyttes:
    • [calendarGroupId] erstattes med det unikke Id for kalendergruppen i GECKO
    • [calendarGroupName] erstattes med navnet på kalendergruppen.
    • [calendarGroupNamePath] erstattes med alle navnene i kalendergruppens sti, hvilket kun er relevant hvis der benyttes kalenderundergrupper.
    • [calendarGroupLevel] erstattes med kalendergruppens led eller niveau, hvilket kun er relevant hvis der benyttes kalenderundergrupper.
    • [calendarGroupCalendars] erstattes med en kommasepereret liste over Id'erne på de kalendere som indgår i den pågældende kalendergruppe
    • [cancellationCount] erstattes med antallet af bookinger der blev aflyst i går
    • [cancellationValue] erstattes med værdien af bookingerne der blev aflyst i går. Værdien vises eksklusiv moms.

9.4.1.2 Booking webhook: Forecast

Dette webhook kan benyttes dagligt, på kalendergruppeniveau, at modtage en prognose eller et forecast af de fremtidige bookinger. På det enkelte webhook vælges perioden der skal kigges på, eksempelvis de 'næste 7 dage'.

De data der kan sendes med kan eksempelvis være antallet af bookinger, varigheden af bookingerne, værdien af bookingerne og varigheden af den ikke-bookede ledige tid.

Eksempel på JSON der kan sendes i dette webhook:


		{
"date": "[date]",
"period": {
"periodFrom": "[periodFrom]",
"periodTo": "[periodTo]"
},
"calendarGroups": [
[CALENDARGROUP_BEGIN]
{
"calendarGroupId": [calendarGroupId],
"calendarGroupName": "[calendarGroupName]",
"calendarGroupNamePath": "[calendarGroupNamePath]",
"calendarGroupLevel": "[calendarGroupLevel]",
"calendarGroupCalendars": "[calendarGroupCalendars]",
"bookingCount": [bookingCount],
"bookingValue": "[bookingValue]",
"bookingTime": [bookingTime],
"bookingTimeFree": [bookingTimeFree]
}[lineBreak]
[CALENDARGROUP_END]
]
}

Erstatningskoderne ovenfor vil blive erstattet med følgende data når det specifikke webhook køres:

  • [date] erstattes med datoen for kørslen af det enkelte webhook, altså dags dato, i formatet DD/MM-ÅÅÅÅ
  • [periodFrom] erstattes med startdatoen for den valgte periode, eksempelvis datoen i morgen. Datoen vises i formatet DD/MM-ÅÅÅÅ
  • [periodTo] erstattes med slutdatoen for den valgte periode, eksempelvis datoen om 7 dage. Datoen vises i formatet DD/MM-ÅÅÅÅ
  • [CALENDARGROUP_BEGIN][lineBreak][CALENDARGROUP_END] benyttes til at gentage data for hver kalendergruppe hvor nedenstående erstatningskoder vil kunne benyttes:
    • [calendarGroupId] erstattes med det unikke Id for kalendergruppen i GECKO
    • [calendarGroupName] erstattes med navnet på kalendergruppen.
    • [calendarGroupNamePath] erstattes med alle navnene i kalendergruppens sti, hvilket kun er relevant hvis der benyttes kalenderundergrupper.
    • [calendarGroupLevel] erstattes med kalendergruppens led eller niveau, hvilket kun er relevant hvis der benyttes kalenderundergrupper.
    • [calendarGroupCalendars] erstattes med en kommasepareret liste over Id'erne på de kalendere som indgår i den pågældende kalendergruppe
    • [bookingCount] erstattes med antallet af bookinger i den valgte periode
    • [bookingValue] erstattes med værdien af bookingerne i den valgte periode. Værdien vises eksklusiv moms.
    • [bookingTime] erstattes med den samlede varighed af bookingerne i den valgte periode. Varigheden vises i antal minutter.
    • [bookingTimeFree] erstattes med varigheden af den samlede ledige bookbare tid i den valgte periode. Varigheden vises i antal minutter.

9.4.2 Hændelseswebhooks

Vores hændelseswebhooks køres i forbindelse med forskellige hændelser i systemet, det kan være et webhook der kører når stamdata på en kunde rettes eller lignende.


9.4.2.1 Booking webhook: Opret/ret/slet

Dette webhook kan benyttes til at sende data fra bookinger når de oprettes, ændres og/eller slettes.

Eksempel på JSON der kan sendes:


		{
"BOOKING": "CREATED",
    "BOOKINGID": [BOOKINGID],
    "BOOKINGDATE": "[BOOKINGDATE_DD-MM-YYYY]",
    "BOOKINGSTARTIME": "[BOOKINGREALTIMEFROM]",
    "BOOKINGENDTIME": "[BOOKINGREALTIMETO]",
    "SERVICE": "[SERVICENAME]",
    "CUSTOMERID": [CUSTOMERID]
}

I kan selv opbygge jeres data ved at benytte erstatningskoder fra følgende kategorier:


9.4.2.2 Kasse webhook: Gennemført salg

Dette webhook kan benyttes til at sende data når et køb gennemføres i kassesystemet.

Eksempel på JSON der kan sendes:


		{
"cashRegisterId": [cashRegisterId],
"cashRegisterName": "[cashRegisterName]",
"tellerId": [tellerId],
"tellerName": "[tellerName]",
"tellerNo": "[tellerNo]",
"receiptId": [receiptId],
"receiptDate": "[receiptDate]",
"receiptTid": "[receiptTid]",
"receiptDateTime": "[receiptDateTime]",
"receiptTotal": "[receiptTotal]",
"receiptWithoutVat": "[receiptWithoutVat]",
"receiptVatTotal": "[receiptVatTotal]",
"receiptVatFreeTotal": "[receiptVatFreeTotal]",
"receiptTotalProducts": "[receiptTotalProducts]",
"receiptTotalServices": "[receiptTotalServices]",
"itemLines": [
[RECEIPTLINE_BEGIN]
{
"lineId": [lineId],
"itemNo": "[itemNo]",
"itemName": "[itemName]",
"itemCount": "[itemCount]",
"itemPrice": "[itemPrice]",
"itemPriceTotal": "[itemPriceTotal]",
"itemPriceExVat": "[itemPriceExVat]",
"itemPriceTotalExVat": "[itemPriceTotalExVat]",
"itemCategory": "[itemCategory]",
"employeeId": [employeeId],
"employeeName": "[employeeName]",
"employeeNo": "[employeeNo]"
}[lineBreak]
[RECEIPTLINE_END]
]
}

Erstatningskoderne i eksemplet ovenfor vil blive erstattet med følgende data når det specifikke webhook køres:

  • [cashRegisterId] erstattes med det unikke Id for kasseapparatet hvori salget blev gennemført.
  • [cashRegisterName] erstattes med navnet på kasseapparatet hvori salget blev gennemført.
  • [tellerId] erstattes med det unikke Id for medarbejderen der blev valgt som ekspedient for salget.
  • [tellerName] erstattes med navnet på medarbejderen der blev valgt som ekspedient for salget.
  • [tellerNo] erstattes med nummeret, hvis et sådan er sat, på medarbejderen der blev valgt som ekspedient for salget.
  • [receiptId] erstattes med salgets unikke Id, bonId'et
  • [receiptDate] erstattes med datoen for salget i formatet DD/MM-ÅÅÅÅ
  • [receiptTid] erstattes med tidspunktet for salget i formatet TT:MM:SS
  • [receiptDateTime] erstattes med dato og tidspunkt for salget i formatet DD/MM-ÅÅÅÅ TT:MM:SS
  • [receiptTotal] erstattes med den samlede værdi af salget inklusiv moms.
  • [receiptWithoutVat] erstattes med den samlede værdi af salget eksklusiv moms.
  • [receiptVatTotal] erstattes med den samlede værdi af momsen på salget.
  • [receiptTotalProducts] erstattes med den samlede værdi af varerne fra varegrupper med markeringen 'Produkt'
  • [receiptTotalServices] erstattes med den samlede værdi af varerne fra varegrupper markeret med 'Ydelse'
  • [RECEIPTLINE_BEGIN] [lineBreak][RECEIPTLINE_END] benyttes til at gentage data for hver varelinje hvor nedenstående erstatningskoder vil kunne benyttes:
    • [lineId] erstattes med det unikke Id for varelinjen
    • [itemNo] erstattes med varelinjens valgte vares varenummer
    • [itemName] erstattes med varelinjens valgte vares varenavn
    • [itemCount] erstattes med varelinjens valgte vareantal
    • [itemPrice] erstattes med varelinjens stk.pris
    • [itemPriceTotal] erstattes med varelinjens samlede pris inklusiv moms
    • [itemPriceExVat] erstattes med varelinjens samlede moms
    • [itemPriceTotalExVat] erstattes med varelinjens samlede pris eksklusiv moms
    • [itemCategory] erstattes med varelinjens vares varegruppe
    • [employeeId] erstattes med det unikke Id for den valgte medarbejder på varelinjen
    • [employeeName] erstattes med navnet på den valgte medarbejder på varelinjen
    • [employeeNo] erstattes med nummeret, hvis det er sat, på den valgte medarbejder på varelinjen
Udover ovenstående kan I også benytte erstatningskoder fra følgende kategorier til at lave jeres eget:

9.4.2.3 Kasse webhook: Gennemført salg - per varelinje

Dette webhook kan benyttes til at sende seperate data pr. varelinje fra salg der gennemføres i kassesystemet. 

Eksempel på JSON der kan sendes:


		{
"cashRegisterId": [cashRegisterId],
"cashRegisterName": "[cashRegisterName]",
"tellerId": [tellerId],
"tellerName": "[tellerName]",
"tellerNo": "[tellerNo]",
"receiptId": "[receiptId]",
"receiptDate": "[receiptDate]",
"receiptTid": "[receiptTid]",
"receiptDateTime": "[receiptDateTime]",
"lineId": [lineId],
"itemNo": "[itemNo]",
"itemName": "[itemName]",
"itemCount": [itemCount],
"itemPrice": "[itemPrice]",
"itemPriceTotal": "[itemPriceTotal]",
"itemPriceExVat": "[itemPriceExVat]",
"itemPriceTotalExVat": "[itemPriceTotalExVat]",
"itemCategory": "[itemCategory]",
"employeeId": [employeeId],
"employeeName": "[employeeName]",
"employeeNo": "[employeeNo]"
}

Erstatningskoderne i eksemplet ovenfor vil blive erstattet med følgende data når det specifikke webhook køres:

  • [cashRegisterId] erstattes med det unikke Id for kasseapparatet hvori salget blev gennemført.
  • [cashRegisterName] erstattes med navnet på kasseapparatet hvori salget blev gennemført.
  • [tellerId] erstattes med det unikke Id for medarbejderen der blev valgt som ekspedient for salget.
  • [tellerName] erstattes med navnet på medarbejderen der blev valgt som ekspedient for salget.
  • [tellerNo] erstattes med nummeret, hvis et sådan er sat, på medarbejderen der blev valgt som ekspedient for salget.
  • [receiptId] erstattes med salgets unikke Id, bonId'et
  • [receiptDate] erstattes med datoen for salget i formatet DD/MM-ÅÅÅÅ
  • [receiptTid] erstattes med tidspunktet for salget i formatet TT:MM:SS
  • [receiptDateTime] erstattes med dato og tidspunkt for salget i formatet DD/MM-ÅÅÅÅ DD:MM:SS
  • [lineId] erstattes med det unikke Id for varelinjen
  • [itemNo] erstattes med varelinjens valgte vares varenummer
  • [itemName] erstattes med varelinjens valgte vares varenavn
  • [itemCount] erstattes med varelinjens valgte vareantal
  • [itemPrice] erstattes med varelinjens stk.pris
  • [itemPriceTotal] erstattes med varelinjens samlede pris inklusiv moms
  • [itemPriceExVat] erstattes med varelinjens samlede moms
  • [itemPriceTotalExVat] erstattes med varelinjens samlede pris eksklusiv moms
  • [itemCategory] erstattes med varelinjens vares varegruppe
  • [employeeId] erstattes med det unikke Id for den valgte medarbejder på varelinjen
  • [employeeName] erstattes med navnet på den valgte medarbejder på varelinjen
  • [employeeNo] erstattes med nummeret, hvis det er sat, på den valgte medarbejder på varelinjen

9.4.2.4 Kasse webhook: Kasseafstemning

Dette webhook kan benyttes til at sende data når et kasseapparat lukkes og kasseafstemningen opgøres.

Eksempel på JSON der kan sendes:


		{
"cashRegisterId": [cashRegisterId],
"cashRegisterName": "[cashRegisterName]",
"cashRegisterStatementId": [cashRegisterStatementId],
"cashRegisterStatementPeriod": {
"From": "[cashRegisterStatementPeriodFrom]",
"To": "[cashRegisterStatementPeriodTo]"
},
"salesTotalProducts": "[salesTotalProducts]",
"salesTotalServices": "[salesTotalServices]",
"lukketaf": "[cashRegisterClosedBy]",
"closednote": "[cashRegisterClosedNote]",
"opensaldo": "[cashRegisterBalancePrimo]",
"opendifference": "[cashRegisterOpenedDifference]",
"lukketsaldo": "[cashRegisterBalanceUltimo]",
"lukketdifference": "[cashRegisterClosedDifference]",
"itemGroups": [
[ITEMGROUP_BEGIN]
{
"itemGroupId": [itemGroupId],
"itemGroupName": "[itemGroupName]",
"itemGroupDebet": "[itemGroupDebet]",
"itemGroupKredit": "[itemGroupKredit]",
"itemGroupVat": "[itemGroupVat]",
"itemGroupCurrency": "[itemGroupCurrency]"
}[lineBreak]
[ITEMGROUP_END]
],
"paymentTypes": [
[PAYMENTTYPE_BEGIN]
{
"paymentTypeId": [paymentTypeId],
"paymentTypeName": "[paymentTypeName]",
"paymentTypeDebet": "[paymentTypeDebet]",
"paymentTypeKredit": "[paymentTypeKredit]",
"paymentTypeVat": "[paymentTypeVat]",
"paymentTypeCurrency": "[paymentTypeCurrency]"
}[lineBreak]
[PAYMENTTYPE_END]
],
"onlinePaymentTypes": [
[ONLINEPAYMENTTYPE_BEGIN]
{
"onlinePaymentTypeId": [onlinePaymentTypeId],
"onlinePaymentTypeName": "[onlinePaymentTypeName]",
"onlinePaymentTypeDebet": "[onlinePaymentTypeDebet]",
"onlinePaymentTypeKredit": "[onlinePaymentTypeKredit]",
"onlinePaymentTypeVat": "[onlinePaymentTypeVat]",
"onlinePaymentTypeCurrency": "[onlinePaymentTypeCurrency]"
}[lineBreak]
[ONLINEPAYMENTTYPE_END]
],
"variousValues": [
[VARIOUS_BEGIN]
{
"variousTypeName": "[variousTypeName]",
"variousDebet": "[variousDebet]",
"variousKredit": "[variousKredit]",
"variousVat": "[variousVat]",
"variousCurrency": "[variousCurrency]"
}[lineBreak]
[VARIOUS_END]
]
}

9.4.2.5 Kunde webhook: Stamdata opdateret

Dette webhook kan benyttes til at sende data når en kunde opdateres.

Eksempel på JSON der kan sendes:


		{
"CUSTOMERID": [CUSTOMERID],
"CUSTOMERNAME": "[CUSTOMERNAME]",
"CUSTOMERFIRSTNAME": "[CUSTOMERFIRSTNAME]",
"CUSTOMERLASTNAME": "[CUSTOMERLASTNAME]",
"CUSTOMERSEXVALUE": "[CUSTOMERSEXVALUE]",
"CUSTOMERBIRTHDAY": "[customerBirthdateDay]/[customerBirthdateMonth]-[customerBirthdateYear]",
"CUSTOMEREMAIL": "[CUSTOMEREMAIL]",
"CUSTOMERMOBILE": "[CUSTOMERMOBILE]",
"CUSTOMERPOSTALCODE": "[CUSTOMERPOSTALCODE]",
"ORDERSTOTALCOUNT": "[ORDERSTOTALCOUNT]",
"ORDERSTOTALVALUE": "[ORDERSTOTALVALUE]",
"ORDERSTOTALVALUEEXVAT": "[ORDERSTOTALVALUEEXVAT]",
"ORDERSLASTDATE": "[ORDERSLASTDATE]",
"CUSTOMERLASTBOOKINGDATE": "[CUSTOMERLASTBOOKINGDATE]",
"CUSTOMERLASTBOOKINGSERVICE": "[CUSTOMERLASTBOOKINGSERVICE]",
"CUSTOMERNEXTBOOKINGDATE": "[CUSTOMERNEXTBOOKINGDATE]",
"CUSTOMERNEXTBOOKINGSERVICE": "[CUSTOMERNEXTBOOKINGSERVICE]",
"CUSTOMERACCEPTSMARKETINGEMAIL": "[CUSTOMERACCEPTSMARKETINGEMAIL]",
"CUSTOMERACCEPTSMARKETINGSMS": "[CUSTOMERACCEPTSMARKETINGSMS]",
"CUSTOMERTAGS": [
[CUSTOMERTAG_BEGIN]
{
"CUSTOMERTAGID": [CUSTOMERTAGID],
"CUSTOMERTAGNAME": "[CUSTOMERTAGNAME]",
"CUSTOMERTAGVALUE": "[CUSTOMERTAGVALUE]"
}[lineBreak]
[CUSTOMERTAG_END]
]
}

Udover ovenstående erstatningskoder kan I frit benytte erstatningskoder fra følgende kategori for at opbygge jeres egne data:


9.4.2.6 Online betaling webhook: Betalte/annullerede ordrer med kunde tilknyttet

		{
"CUSTOMERID": [CUSTOMERID],
"CUSTOMERNAME": "[CUSTOMERNAME]",
"CUSTOMERFIRSTNAME": "[CUSTOMERFIRSTNAME]",
"CUSTOMERLASTNAME": "[CUSTOMERLASTNAME]",
"CUSTOMERSEXVALUE": "[CUSTOMERSEXVALUE]",
"CUSTOMERBIRTHDAY": "[customerBirthdateDay]/[customerBirthdateMonth]-[customerBirthdateYear]",
"CUSTOMEREMAIL": "[CUSTOMEREMAIL]",
"CUSTOMERMOBILE": "[CUSTOMERMOBILE]",
"CUSTOMERPOSTALCODE": "[CUSTOMERPOSTALCODE]",
"ORDERSTOTALCOUNT": "[ORDERSTOTALCOUNT]",
"ORDERSTOTALVALUE": "[ORDERSTOTALVALUE]",
"ORDERSTOTALVALUEEXVAT": "[ORDERSTOTALVALUEEXVAT]",
"ORDERSLASTDATE": "[ORDERSLASTDATE]",
"CUSTOMERLASTBOOKINGDATE": "[CUSTOMERLASTBOOKINGDATE]",
"CUSTOMERLASTBOOKINGSERVICE": "[CUSTOMERLASTBOOKINGSERVICE]",
"CUSTOMERNEXTBOOKINGDATE": "[CUSTOMERNEXTBOOKINGDATE]",
"CUSTOMERNEXTBOOKINGSERVICE": "[CUSTOMERNEXTBOOKINGSERVICE]",
"CUSTOMERACCEPTSMARKETINGEMAIL": "[CUSTOMERACCEPTSMARKETINGEMAIL]",
"CUSTOMERACCEPTSMARKETINGSMS": "[CUSTOMERACCEPTSMARKETINGSMS]",
"CUSTOMERTAGS": [
[CUSTOMERTAG_BEGIN]
{
"CUSTOMERTAGID": [CUSTOMERTAGID],
"CUSTOMERTAGNAME": "[CUSTOMERTAGNAME]",
"CUSTOMERTAGVALUE": "[CUSTOMERTAGVALUE]"
}[lineBreak]
[CUSTOMERTAG_END]
]
}

 


Prøv en gratis og uforpligtende demo af GECKO Booking

Udfyld formularen, og vi sender dig en demo hurtigst muligt.

 

Felter markeret med * er påkrævede