Zapier, Make, and n8n
upload.ad works with automation platforms today through two building blocks: the signed webhook as a trigger, and the REST API as actions. No app install is needed; each platform's generic webhook trigger receives upload.ad events directly.
Triggering on upload.ad events
Every platform has a "receive a webhook" trigger that gives you a URL. Paste that URL as your webhook endpoint on the API keys page, and pick which events it receives on the notifications page.
Zapier
- Create a Zap with the trigger Webhooks by Zapier, event Catch Hook.
- Copy the custom webhook URL Zapier shows you.
- Save it as your endpoint on the API keys page, then click Send test event so Zapier has a sample to map fields from.
Make
- Add a Webhooks module, Custom webhook, and create a new webhook.
- Copy the address Make shows you and save it on the API keys page.
- Click Send test event while Make is listening to determine the data structure.
n8n
- Add a Webhook node with method POST.
- Copy the production URL and save it on the API keys page.
- Use Listen for test event together with the Send test event button to capture a sample payload.
Working with the payload
Events arrive as JSON. The event type is in type (upload.completed, upload.failed, ad.created, rule.triggered) and the details are in data; see the webhook payload reference. Use the platform's filter step to branch on type when your endpoint receives more than one event.
Deliveries can occasionally arrive more than once, so deduplicate on the event id if the destination is sensitive to duplicates.
Verifying deliveries
Every delivery is signed with the uploadad-signature header, and your signing secret is shown on the API keys page. Zapier, Make, and n8n all accept unauthenticated webhooks, so verification is optional there; the URL itself is unguessable. If you want to verify anyway, add a code step that recomputes the HMAC as shown in verifying signatures.
Recipe ideas
- Log every completed upload to Airtable or a database, with the Facebook image hash or video id from
data.upload.facebook. - Page the media buyer on
rule.triggeredwhen a rule pauses ads, via SMS or an incident tool. - On
upload.failed, create a task in your project tracker with the file name and error. - Chain
ad.createdinto your reporting stack so new ads are annotated in dashboards.
Calling the API from automations
For actions (uploading a creative, creating ads, reading upload status), call the REST API from the platform's HTTP module with the header Authorization: Bearer ua_live_.... API keys are created on the API keys page.