Setting up Custom Webhooks (Advanced)
Webhooks allow you to receive automatic notifications when specific events happen in your photobooth experience. When an event occurs, we'll send data to a URL you specify, letting you integrate with your own systems in real-time.
Setting Up Webhooks
Go to your event settings in the dashboard
Navigate to the Webhooks section
Enter your webhook URL (must be HTTPS)
Click Verify to test the connection
Use the Send Test button to receive sample data
Webhook Types
Session Webhook
When it's sent: Each time a photo, GIF, video, or AI-generated image is captured.
What you receive:
Unique session identifier
Direct link to the media file
Link to the microsite page where the photo can be viewed/shared
Type of session (still photo, GIF, video, or AI-generated)
Device information (which device captured the session)
Template IDs used
Example:
{
"type": "session",
"event_id": 1,
"session": {
"id": "abc123xyz",
"direct_url": "https://cdn.example.com/sessions/photo.jpg",
"site_url": "https://photos.example.com/view/abc123xyz",
"type": "still",
"device": {
"id": 42,
"name": "iPad Pro - Main Booth",
"device_info": "iOS 17.0"
},
"still_template_id": 123,
"gif_template_id": 456
}
}
Share Webhook
When it's sent: Each time someone shares their photo via email or SMS.
What you receive:
Session details (ID, URLs, type)
How it was shared (email or SMS)
The recipient's contact information
Any data capture form responses collected
Example:
{
"type": "share",
"event_id": 1,
"session": {
"id": "abc123xyz",
"direct_url": "https://cdn.example.com/sessions/photo.jpg",
"site_url": "https://photos.example.com/view/abc123xyz",
"type": "still"
},
"share": {
"id": "share789",
"type": "email",
"value": "[email protected]"
},
"data_capture": {
"sections": [
{
"title": "Contact Information",
"position": 0, "fields": [
{
"field_id": "email_1",
"field_title": "Email Address",
"field_type": "email",
"value": "[email protected]",
"required": true
}
]
}
]
}
}
Survey Webhook
When it's sent: Each time someone completes a survey or data capture form.
What you receive:
Session details (ID, URLs, type)
When the survey was completed
All form responses organized by section
Example:
{
"type": "survey",
"event_id": 1,
"session": {
"id": "abc123xyz",
"direct_url": "https://cdn.example.com/sessions/photo.jpg",
"site_url": "https://photos.example.com/view/abc123xyz",
"type": "still"
},
"survey": {
"completed_at": "2025-01-15T14:30:00+00:00",
"data_capture": {
"sections": [
{
"title": "Feedback",
"position": 0,
"fields": [
{
"field_id": "rating_1",
"field_title": "How was your experience?",
"field_type": "rating",
"value": "5",
"required": true
},
{
"field_id": "text_1",
"field_title": "Any comments?",
"field_type": "text",
"value": "Had a great time!",
"required": false
}
]
}
]
}
}
}
Competition Win Webhook
When it's sent: Each time someone wins a prize in a competition (e.g., scratch card game).
What you receive:
Session details (ID, URLs, type)
Competition information
Prize details (name, images, winning message)
Winner's contact information
Prize redemption QR code URL
Any data capture form responses
Example:
{
"type": "competition_win",
"event_id": 1,
"session": {
"id": "abc123xyz",
"direct_url": "https://cdn.example.com/sessions/photo.jpg",
"site_url": "https://photos.example.com/view/abc123xyz",
"type": "still"
},
"competition": {
"id": 1,
"type": "scratch"
},
"prize_win": {
"id": "win456",
"uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"win_id": "WIN001",
"date": "2025-01-15T14:30:00+00:00",
"valid": true,
"win_image_qr_url": "https://cdn.example.com/prizes/qr/win456.png"
},
"prize": {
"id": 1,
"name": "Free Coffee",
"winning_text": "Congratulations! You've won a free coffee!",
"image_url": "https://cdn.example.com/prizes/coffee.png",
"winning_image_url": "https://cdn.example.com/prizes/coffee-winner.png"
},
"winner": {
"type": "email",
"value": "[email protected]"
},
"data_capture": {
"sections": []
}
}
Common Data Fields
Field | Description |
| The webhook type: |
| Your event's unique identifier |
| Unique identifier for the photo session |
| Direct link to download the media file |
| Link to the microsite page for viewing/sharing |
| Type of content: |
Session Types
Type | Description |
| A single photo |
| An animated GIF |
| A video recording |
| An AI-generated or AI-enhanced image |
Retry Policy
If your webhook endpoint doesn't respond with a success code (200-299), we'll automatically retry the delivery:
Up to 3 retry attempts
10 second delay between retries
After 3 failed attempts, the webhook is marked as failed
You can manually retry failed webhooks from the Webhooks section in your event settings.
Security
Each webhook request includes an X-Signature header containing an HMAC-SHA256 signature. You can use this along with your secret key (shown in the webhook settings) to verify that requests are genuinely from our system.
