Booth.Events supports webhooks for integrating with third-party services such as IFTTT, Zapier, or any platform that can receive an HTTP POST call.
Important: Webhooks are advanced functionality. We recommend using them only if you’re technically skilled and very comfortable with technology. Booth.Events does not provide setup support for integrations with third-party services via webhooks.
Requirements
Pro+ subscription (includes a free 14-day trial).
A third-party service capable of receiving webhook calls.
Types of Webhooks
Booth.Events offers two webhook options. You can use one or both:
1. Upload Webhook
Triggered every time a file is uploaded to one of your galleries.
Includes:
URL to the media page
Direct download link for the media file
Best for: Copying media to a storage service like Dropbox or Google Drive.
2. Share Webhook (added February 2025)
Triggered every time a guest enters their phone number or email address on the share screen of the iOS app.
Includes:
Contact information entered by guests
Event details
Choosing the Right Webhook
Your Goal | Recommended Webhook |
Save/copy media to another service (e.g., Dropbox) | Upload Webhook |
Collect guest contact details when Data Collection is ON | Either Upload or Share Webhook |
Collect guest contact details when Data Collection is OFF | Share Webhook |
Tip: If you need both media URLs and guest contact details, you may want to enable both webhooks.
How to set your Webhook URLs
To turn it on go to your Account page, and in the Sharing Settings section hit Open on the Webhook block:
Sharing Settings on the Account page
In the popup, paste in the URL where you wish the webhook request to be made to.
Showing a configured Share Webhook
How to Test
Visit webhook.site and copy your personal webhook URL.
In the Booth.Events dashboard, open the Webhook popup.
Paste your webhook.site URL into the appropriate webhook field.
Launch your event in the iOS app (testing in Preview will not trigger the webhook).
Take a photo or perform the action that should trigger the webhook.
Check your webhook.site page to see the incoming POST request and data.
How to Turn Off a Webhook
Open the Webhook popup in the dashboard.
Delete any URLs from the webhook fields so they are blank.
Click Save Changes.
Technical Details
Each webhook request is an HTTP POST request with a JSON body, with Content-Type set to application/json
Upload Webhook Technical Details
Payload Values (JSON)
contentType (string):image/jpegorvideo/mp4dataCollectionResponse (object): if the data collection feature is turned on this contains the response of the usereventId (string): the ID of the event for this galleryeventIdUser (string): if you set a custom ID for this event then it will be present here, otherwise nullgalleryDate (string of ISO 8601 date format): the date set on the event of the gallerygalleryId (string): the unique gallery IDgalleryName & value3 (string): The gallery namegalleryPageUrl (string): The URL of your gallery page on Shared.GallerygallerySlug (string): The gallery slug, originally derived from the gallery nameheight (number): pixel heightisCollage (boolean): true if this is generated from a templatekBytes: (number): size in kilobytes of filekBytesThumb: (number): size in kilobytes of thumbnail of filemediaPageUrl (string): the URL of the Shared.Gallery media page for this filesessionPageUrl (string): the URL of the Shared.Gallery page for the session this file is inshutterDate & value2 (string, ISO 8601 date format): the date and time the photo/video was takenurl & value1 (string): the publicly accessible URL to download the fileurlThumb (string): the publicly accessible URL to download the thumbnail of filewidth (number): pixel width
Payload Example (JSON), WITHOUT dataCollectionResponse
{ "contentType": "image/jpeg", "isCollage": false, "width": 3024, "height": 4032, "kBytes": 3696, "kBytesThumb": 18, "url": "https://solo-s.b-cdn.net/sharedgallery.appspot.com/abc123/VFRGsI39SnCH6NKUBOmd/0013-My_Event_Name-d3.jpg?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=firebase-adminsdk-9elxx%40sharedgallery.iam.gserviceaccount.com%2F20240324%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20240324T195357Z&X-Goog-Expires=604000&X-Goog-SignedHeaders=host&X-Goog-Signature=36a68d5113b444620f5e78d8ee96f72b8088826dd22a2b52065ffeff1b6eaa55a450fefbb28986a8cb4e496d94bc5cc6436fb227555546651d706870b720e94d2dc8c7191512a8aa21a890a9da1f131924399d6c178df7abcc4e6981517b25563091475dd6daa82697b8a31ad63ac966c0349bf1327b88a477dd233c93566af5b17b12f2a236f94bfa84af804f50533dfe7c3cd5ece2978038aaa5c6230101001b35c47b70e28653084ebd83a22cb1d453aa847c82d0c4228022db9407c78140dc1341468b3fb63f2592e458df29461c5d91c5db9abb77507f74e59e121ee143a086f21891b23a365bc43a367912dfacf4b30ad271d722dc1f806b35489548e3z", "urlThumb": "https://solo-s.b-cdn.net/sharedgallery.appspot.com/abc123/VFRGsI39SnCH6NKUBOmd/0013-My_Event_Name-d3_genThumb.jpg?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=firebase-adminsdk-9elxx%40sharedgallery.iam.gserviceaccount.com%2F20240324%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20240324T195357Z&X-Goog-Expires=604000&X-Goog-SignedHeaders=host&X-Goog-Signature=9f441b36c34c8ed9c0be7d4f7c162d71ae4037f6ee81a1d6e67e9c496ab23bb2c4c800615bf7cb8261e3f0f9d6ed6102758c331a08d484b631378211ea38a3e1fe37d0cb9cfe7ab3cda70bb4c58f82fb9ba30c1ad4a377a0e035260aa7d28704d3ad141fde510e9ddef2040756152c3f2f737072bd5376572c37ae8d19a17cd7f5a137d9a87bd414e2b44e8b1612634e2f1fa7cc3f1d917a43b9a332fc2d637ebbd3aef6de192bbcaad08320a3c6c6c8333191f7eb336b066368fc0d501a97abc2b7ed0111c16fe009b3b13ab004c9ff270f25c61d1fa55a28243f7c912ab03521afc09f2bcf45366f7ce71d81d717352b4d2cc1c358dd509b878eec5abd8898z", "eventId": "zYrJegcdonasZm9zp131", "eventIdUser": null, "shutterDate": "2024-03-24T15:53:48-04:00", "galleryId": "VFRGsI39SnCH6NKUBOmd", "galleryName": "My Event Name", "gallerySlug": "my-event-name", "galleryDate": "2024-03-09T22:30:47.000Z", "galleryPageUrl": "https://shared.gallery/of/abc123/my-event-name", "mediaPageUrl": "https://shared.gallery/of/abc123/my-event-name/m/pMvsCmU2iQmApFmlzQHd", "sessionPageUrl": "https://shared.gallery/of/abc123/my-event-name/s/eH7NdRY59g6OE6tw83wj", "value1": "https://solo-s.b-cdn.net/sharedgallery.appspot.com/abc123/VFRGsI39SnCH6NKUBOmd/0013-My_Event_Name-d3.jpg?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=firebase-adminsdk-9elxx%40sharedgallery.iam.gserviceaccount.com%2F20240324%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20240324T195357Z&X-Goog-Expires=604000&X-Goog-SignedHeaders=host&X-Goog-Signature=36a68d5113b444620f5e78d8ee96f72b8088826dd22a2b52065ffeff1b6eaa55a450fefbb28986a8cb4e496d94bc5cc6436fb227555546651d706870b720e94d2dc8c7191512a8aa21a890a9da1f131924399d6c178df7abcc4e6981517b25563091475dd6daa82697b8a31ad63ac966c0349bf1327b88a477dd233c93566af5b17b12f2a236f94bfa84af804f50533dfe7c3cd5ece2978038aaa5c6230101001b35c47b70e28653084ebd83a22cb1d453aa847c82d0c4228022db9407c78140dc1341468b3fb63f2592e458df29461c5d91c5db9abb77507f74e59e121ee143a086f21891b23a365bc43a367912dfacf4b30ad271d722dc1f806b35489548e3z", "value2": "2024-03-24T15:53:48-04:00", "value3": "My Event Name" }
Payload Example, WITH dataCollectionResponse
{ "contentType": "image/jpeg", "isCollage": false, "width": 3024, "height": 4032, "kBytes": 3103, "kBytesThumb": 125, "url": "https://solo-s.b-cdn.....", "urlThumb": "https://solo-s.b-cdn....", "dataCollectionResponse": { "createdDate": "2025-01-15T11:23:06-05:00", "responses": [ { "question": { "optional": true, "type": "string", "name": "First Name", "text": "First Name" } }, { "question": { "text": "Last Name", "type": "string", "name": "Last Name", "optional": true } }, { "question": { "text": "I agree to the terms and conditions", "type": "checkbox", "name": "I agree to the terms and conditions", "optional": true } }, { "answer": "tim@boot...", "question": { "optional": false, "type": "email", "name": "Email", "text": "Email" } }, { "answer": "1(234) 567-8900", "question": { "text": "Phone Number", "type": "phone_number", "name": "Phone Number", "optional": false } } ] }, "eventId": "0ajuds2IODblW79dobzm", "eventIdUser": null, "shutterDate": "2025-01-15T11:23:29-05:00", "captureType": "photo", "galleryId": "9VDWZqryjdqxKgUaiE8U", "galleryName": "upcoming event.", "gallerySlug": "upcoming-event", "galleryDate": "2026-07-04T16:00:00.000Z", "galleryPageUrl": "https://gallery.timcarrphoto.co...", "mediaPageUrl": "https://gallery.timcarrphoto.co...", "sessionPageUrl": "https://gallery.timcarrphoto.co...", "value1": "https://solo-s.b-cdn.n...", "value2": "2025-01-15T11:23:29-05:00", "value3": "upcoming event.", "sessionId": "iTaKk6G6BI2Q7xOxMK6p", "sessionIndex": 0 }
Share Webhook Technical Details
Please note that since this webhook runs each time a guest enters an email or phone number, and since guests can enter multiple email addresses & phone numbers, that means that you can receive multiple share webhook calls for one single guest session. You can key on the sessionId field to de-duplicate or overwrite data, as the newest call for a given session will have all of the data.
Payload Values (JSON)
createdDate (string): the date the session was created, in ISO 8601 formatdataCollectionResponse (object): if the data collection feature is turned on this contains the response of the userphoneNumber (array of strings): all of the phone numbers entered on the share screen of the iOS app for this session so far, in E.164 format. Note: phone numbers entered with the Data Collection feature are not included, usedataCollectionResponsefor thisemail (array of strings): all of the email addresses entered on the share screen of the iOS app for this session so far. Note: email addresses entered with the Data Collection feature are not included, usedataCollectionResponsefor thisgalleryId (string): the ID of the gallery, which uniquely identifies this gallerygalleryName (string): the name of the gallery (same as the event name)gallerySlug (string): the slug of the gallery (originally derived from the gallery name)galleryDate (string): the date of the gallery (same as the event date), in ISO 8601 formatgalleryPageUrl (string): the URL of the gallerysessionPageUrl (string): the URL of the sessionsessionId (string): the ID of the session, which uniquely identifies this sessionsessionIndex (number): a monotonically increasing index number of the session; this value does not relate to when the session was created, it relates to when the session was uploadedmedia (array of strings): the media IDs that are in this sessionmediaObjects (array of objects): the media in this sessionvalue1: same assessionPageUrlvalue2: same asemailvalue3: same asphoneNumber
Payload Example, WITH dataCollectionResponse
{ "createdDate": "2025-02-03T21:25:21.000Z", "dataCollectionResponse": { "createdDate": "2025-02-03T16:25:01-05:00", "responses": [ { "question": { "text": "I agree to the terms and conditions", "name": "I agree to the terms and conditions", "type": "checkbox", "optional": true } }, { "answer": "[email protected]", "question": { "optional": true, "type": "email", "name": "Email", "text": "Email" } }, { "question": { "text": "Phone Number", "type": "phone_number", "name": "Phone Number", "optional": true } } ] }, "phoneNumber": [ "+12891234567" ], "email": null, "galleryId": "ayuwM4hFkmRtQrE6Oabc", "galleryName": "upcoming event", "gallerySlug": "upcoming-event", "galleryDate": "2025-02-01T17:00:00.000Z", "galleryPageUrl": "https://timcarrphoto.com/upcoming-event", "sessionPageUrl": "https://timcarrphoto.com/upcoming-event/s/f66uAOitdoDv8ACezNms", "sessionId": "f66uAOitdoDv8ACezNms", "sessionIndex": 13, "media": [ "3rwpfma8N6MAnS2kvqEQ", "PocakN6oa3j2AVtO2LvM" ], "mediaObjects": [ { "createdDate": "2025-02-03T21:25:21.000Z", "contentType": "image/jpeg", "path": "solodigitalis/ayuwM4hFkmRtQrE6Oafe/0031-upcoming_event-d100.jpg", "kBytes": 1440, "pathThumb": "solodigitalis/ayuwM4hFkmRtQrE6Oafe/0031-upcoming_event-d100_genThumb.jpg", "kBytesThumb": 117, "isCollage": false, "width": 3088, "height": 2316, "filename": "0031-upcoming_event-d100.jpg", "origPath": "solodigitalis/ayuwM4hFkmRtQrE6Oafe/22A68D61-5046-42E7-941D-91CD11704834_1.jpg", "blurData": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAMElEQVR4nGNYMjHPyVp7Qme5ihQzw74NUwqz4j7//2tqrMbQVV+wOTUyLymYgYkBADRkDuQSSfWuAAAAAElFTkSuQmCC", "templateId": "klRQiS3GPyZT2RvAj2Mc", "captureType": "photo", "id": "3rwpfma8N6MAnS2kvqEQ" }, { "createdDate": "2025-02-03T21:25:26.000Z", "contentType": "image/jpeg", "path": "solodigitalis/ayuwM4hFkmRtQrE6Oafe/0032-upcoming_event-d100-template.jpg", "kBytes": 561, "pathThumb": "solodigitalis/ayuwM4hFkmRtQrE6Oafe/0032-upcoming_event-d100-template_genThumb.jpg", "kBytesThumb": 94, "isCollage": true, "width": 1844, "height": 1240, "filename": "0032-upcoming_event-d100-template.jpg", "origPath": "solodigitalis/ayuwM4hFkmRtQrE6Oafe/22A68D61-5046-42E7-941D-91CD11704834_2.jpg", "blurData": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAMElEQVR4nGNYNa3Y01F/Wn+tuhQzw961k0ozEz7+/2Ogp8zQ11K8Li08JyOUkYkBADrODxal2eoGAAAAAElFTkSuQmCC", "templateId": "klRQiS3GPyZT2RvAj2Mc", "captureType": "photo", "id": "PocakN6oa3j2AVtO2LvM" } ], "value1": "https://timcarrphoto.com/upcoming-event/s/f66uAOitdoDv8ACezNms", "value2": null, "value3": [ "+12891234567" ] }Use Webhooks with Dropbox
Use Webhooks with Dropbox
You can connect many different services like Google Drive, Box, OneDrive etc - but we'll focus on Dropbox in this article.
IFTTT is a third-party service: we cannot make any guarantee about the accuracy of the content of this article with respect to third-parties.
Please note we do not offer support for third-party services like IFTTT.
See also
IFTTT Subscription / Plan levels
At the time of writing there are three plan levels available on IFTTT: free, Pro, and Pro+.
This article has two options for creating the IFTTT Applet:
Easier: IFTTT "Receive a web request" Applet
this easier option requires a IFTTT Pro subscription which is cheaper than the IFTTT Pro+ subscription
you have less control, for example you cannot choose how files are named
Advanced: IFTTT "Receive a web request with a JSON payload" Applet with Filter Code
this advanced option requires a IFTTT Pro+ subscription
you have full control; for example you can change how files are named and name them differently if they are templates/collages versus originals; this assumes you are able to understand & update the JavaScript code we give you in the article below
So, pick ONE of the following two sections. Not sure which? Then definitely pick the easier one!
Easier: IFTTT "Receive a web request" Applet
This option requires a Booth.Events Pro+ subscription and an IFTTT Pro subscription.
First you need to get your webhook URL from IFTTT and paste it into Booth.Events:
Open this IFTTT page: https://ifttt.com/maker_webhooks
Hit the "Documentation" button:
"Documentation" button
On the resulting page scroll down to the section titled "To trigger an Event with 3 JSON values", type in an event name like
boothevents_uploadinto the placeholder as shown in the screenshot below, and then copy the whole URL to your clipboard. The URL will look like this:https://maker.ifttt.com/trigger/boothevents_upload/with/key/kvub0DQfNV0RjOuGFmd7MwwoJsfiwoAaF89VRQJzzzz
Keep note of this event name (boothevents_upload in our example above), as you will use it later below. You can use any event name you want (it's not related to events on Booth.Events)
On the Booth.Events account page, open the webhook block, paste the URL in, and hit Save Changes:
Next we need to create the actual Applet on IFTTT.
Create a new Applet on IFTTT and hit the "Add" button:
Search for "webhook" and hit the "Webhooks" service:
Choose the service called "Receive a web request":
In "Event Name" enter the event name from the previous section, then hit "Create trigger". In our example we used
boothevents_upload:
In the "Then That" box hit "Add":
In the list of available connections choose Dropbox (you can search for it or scroll down to it):
Choose "Add file form URL":
On the action settings screen you need to set all 4 values:
Dropbox account: connect your Dropbox account first
File URL: hit Add Ingredient and then choose Value1
File name: erase what's there, hit Add Ingredient, and then choose Value2
Dropbox folder path: erase what's there, type in a path like
IFTTT/Booth.Events/, then hit Add Ingredient and choose Value3Then hit Create Action.
If you've done this correctly you'll see something like this:
On the next screen hit Continue
Give the Applet a title you like (doesn't matter what it is), and hit Finish
That's it! Now try shooting some photos on the iOS App and then reload the IFTTT page: you should see that the Applet runs. Then check your Dropbox and you should see the files have been saved at the folder path you entered.
Advanced: IFTTT "Receive a web request with a JSON payload" Applet with Filter Code
This option requires a Booth.Events Pro+ subscription and an IFTTT Pro+ subscription.
First we need to get our webhook URL from IFTTT and paste it into Booth.Events. Note that this is not the same URL as the Eaiser path above.
Follow these steps:
Open this IFTTT page: https://ifttt.com/maker_webhooks
Hit the "Documentation" button:
"Documentation" button
On the resulting page scroll down to the section titled "To trigger an Event with an arbitrary JSON payload", type in an event name like
boothevents_uploadinto the placeholder as shown in the screenshot below, and then copy the whole URL to your clipboard. The URL will look like this:https://maker.ifttt.com/trigger/boothevents_upload/json/with/key/kvub0DQfNV0RjOuGFmd7MwwoJsfiwoAaF89VRQJzzzz
Keep note of this event name (boothevents_upload in our example above), as you will use it later below. You can use any event name you want (it's not related to events on Booth.Events)
On the Booth.Events account page, open the webhook block, paste the URL in, and hit Save Changes:
Next we need to create the actual Applet on IFTTT.
Create a new Applet on IFTTT and hit the "Add" button:
Search for "webhook" and hit the "Webhooks" service:
Choose the service called "Receive a web request with a JSON payload":
In "Event Name" enter the event name from the previous section, then hit "Create trigger". In our example we used
boothevents_upload:
In the "Then That" box hit "Add":
In the list of available connections choose Dropbox (you can search for it or scroll down to it):
Choose "Add file form URL":
On the action settings screen you need to set the values like this:
Dropbox account: connect your Dropbox account first
File URL: the value you enter here is not going to be used (it will be replaced by Filter Code), but you must enter a value. So enter "temp"
File name: this value is also not going to be used. Luckily there's already a default value for you, so you can just use that.
Dropbox folder path: this value is also not going to be used. Luckily there's already a default value for you, so you can just use that.
Then hit Create Action.
Hit the "+" between "If" and "Then":
Hit the "+" next to Filter Code
On the left side, paste in this TypeScript (JavaScript) code:
const payload = JSON.parse(MakerWebhooks.jsonEvent.JsonPayload) // Here we set the filename differently if it is a collage or not const isVideo = payload.contentType !== 'image/jpeg' const filename = `${Meta.triggerTime}${payload.isCollage || isVideo ? `-template` : `-original`}` Dropbox.addFileFromUrl.setFilename(filename) Dropbox.addFileFromUrl.setUrl(payload.url) Dropbox.addFileFromUrl.setPath(`IFTTT/Booth.Events/${payload.galleryName}`)... and then hit Add filter:
On the next screen hit Continue
Give the Applet a title you like (doesn't matter what it is), and hit Finish
That's it! Now try shooting some photos on the iOS App and then reload the IFTTT page: you should see that the Applet runs. Then check your Dropbox and you should see the files have been saved.
You can modify the Filter Code of course, to change where the files are saved or to change the filenames.

























