Make Integration Documentation
Connect Exportlab to thousands of apps via Make.com.
Connect Exportlab to thousands of apps via Make.com. Automate your photography and videography workflows — from contract signatures to video delivery.
Getting Started
1. Create an API Key
- Log in to your Exportlab workspace
- Go to Settings → Integrations → API Keys
- Click Create API Key, give it a name (e.g. "Make.com")
- Copy the key — it starts with
sk_and is shown only once
2. Find your Workspace Slug
Your workspace slug is the subdomain of your Exportlab URL. Example: if your workspace is at mystudio.exportlab.io, your slug is mystudio.
3. Connect in Make.com
When adding an Exportlab module to a scenario, click Add next to the Connection field and enter:
- API Key — your
sk_key from step 1 - Workspace Slug — from step 2
Authentication
All API requests use two headers:
| Header | Description |
|---|---|
X-Api-Key | Your API key (sk_...) |
X-Tenant-Slug | Your workspace slug |
Verify Connection
GET https://api.exportlab.io/v1/integrations/make/connection/verifyReturns { "ok": true, "tenantSlug": "..." } on success, 401 on invalid key.
Trigger Modules
All trigger modules poll the following endpoint:
GET https://api.exportlab.io/v1/integrations/make/eventsQuery Parameters
| Parameter | Required | Description |
|---|---|---|
type | Yes | Event type (see below) |
since | No | ISO 8601 timestamp — only return events after this date |
limit | No | Max results per poll, default 20, max 100 |
Response Format
{
"ok": true,
"events": [ ... ],
"count": 5,
"hasMore": false
}Available Triggers
Watch Video Review Feedback
type: videoReviewFeedback
Fires when a client submits video review feedback.
| Field | Type | Description |
|---|---|---|
eventId | text | Unique event ID |
videoId | text | Video ID |
reviewerName | text | Name of the reviewer |
status | text | Review status (inprogress, closed) |
note | text | Optional note from the reviewer |
commentsText | text | All comments as plain text (newline-separated) |
comments | array | Individual comments with text, author, timestamp |
createdAt | date | When the feedback was submitted |
Watch Gallery Published
type: galleryPublished
Fires when a gallery is published and made visible to clients.
| Field | Type | Description |
|---|---|---|
eventId | text | Unique event ID |
galleryToken | text | Gallery token (8-char ID) |
galleryUrl | url | Direct URL to the gallery |
published | boolean | true = published, false = unpublished |
createdAt | date | When the gallery was published |
Watch Video Processing Complete
type: videoProcessingComplete
Fires when a video has finished processing and is ready to share.
| Field | Type | Description |
|---|---|---|
eventId | text | Unique event ID |
videoId | text | Video ID |
videoUrl | url | Direct URL to the video in Exportlab |
jobId | text | Processing job ID |
renditions | number | Number of renditions created |
createdAt | date | When processing completed |
Watch Client Created
type: clientCreated
Fires when a new client is added to the workspace.
| Field | Type | Description |
|---|---|---|
eventId | text | Unique event ID |
clientId | text | Client ID |
email | Client email address | |
company | text | Company name (if provided) |
status | text | Client status |
createdAt | date | When the client was created |
Watch Project Phase Transition
type: projectPhaseTransition
Fires when a project moves to a new workflow phase (e.g. Shooting → Editing → Delivery).
| Field | Type | Description |
|---|---|---|
eventId | text | Unique event ID |
projectId | text | Project ID |
targetPhaseId | text | The new phase the project moved to |
createdAt | date | When the transition happened |
Watch Contract Signed
type: contractSigned
Fires when a client signs a contract.
| Field | Type | Description |
|---|---|---|
eventId | text | Unique event ID |
contractId | text | Contract ID |
projectId | text | Associated project ID |
clientName | text | Name of the client who signed |
contractTitle | text | Name of the contract template |
createdAt | date | When the contract was signed |
Watch Contract Fully Executed
type: contractFullyExecuted
Fires when all parties have signed and the contract is fully executed.
| Field | Type | Description |
|---|---|---|
eventId | text | Unique event ID |
contractId | text | Contract ID |
projectId | text | Associated project ID |
clientName | text | Name of the client |
contractTitle | text | Name of the contract template |
createdAt | date | When the contract was fully executed |
Error Handling
| Status | Error | Description |
|---|---|---|
401 | unauthorized | Missing or invalid API key |
400 | missing_param | Required query parameter missing |
400 | invalid_event_type | Unknown event type |
503 | not_configured | Feature not enabled for this workspace |
Error response format:
{
"ok": false,
"error": "unauthorized",
"message": "Invalid or disabled API key"
}Example Use Cases
- Contract signed → Send invoice via Stripe or Lexoffice
- Gallery published → Email client with gallery link + PIN
- Video processing complete → Notify via Slack that footage is ready for review
- New client → Create contact in HubSpot, Salesforce, or Airtable
- Project phase: Delivery → Send final files to Google Drive