How to Create a Webhook Destination with TacTile
A webhook destination fires an HTTP POST with a JSON tap-event payload to an endpoint you control the instant a tap occurs. Two paths: Build (TacTile hosts the endpoint config) or Link (supply your own URL — a Lambda function, a Cloudflare Worker, a custom API route). Prefer no-code? Use a Zap destination instead.
Create your webhook free →What is a webhook destination?
A webhook destination is a tap or scan event delivered as an outbound HTTP POST request carrying a JSON payload to a URL you specify. It's an event-driven callback — TacTile is the producer, your endpoint is the consumer, and the tap itself is the event.
65% of organizations building on APIs now generate direct revenue from them, up from 62% the year before.
How to create a webhook destination
TacTile hosts the endpoint config — fastest way to prototype.Recommended
- In the TacTile app, tap Create → New Destination.
- From the Category picker, choose Developer, then select Webhook from the Type picker.
- Choose the Build path.
- TacTile generates a unique endpoint identifier tied to this destination and displays your target configuration screen.
- Configure request options natively: custom headers, an auth token or secret, and retry behavior, if exposed in this version of the builder.
- Set the destination URL where TacTile should forward the event — this can be your own backend endpoint that TacTile calls out to after receiving the tap.
- Send a test event from the builder to confirm your endpoint returns a 200 OK.
- Tap Save to activate the destination.
Bring your own endpoint — a Lambda, a Worker, or an existing API route.
- In the TacTile app, tap Create → New Destination, select Developer → Webhook, then choose the Link path.
- Paste your existing endpoint URL — an AWS Lambda function URL, a Cloudflare Worker route, or any API route you control.
- Optionally add a bearer token or shared secret so TacTile can authenticate itself against your endpoint's expectations.
- Send a test event to confirm your endpoint accepts the payload and responds with a 200 status.
- Tap Save. From this point, every tap POSTs directly to your URL — no intermediate TacTile-hosted step.
Which path should I use?
Use Build if you want TacTile to manage endpoint plumbing (headers, retries, and a generated identifier) without standing up your own route first — useful for prototyping quickly. Use Link if you already have production infrastructure — a Lambda, a Worker, an existing API gateway route — and just want TacTile to POST directly into it with no intermediate layer. Most teams shipping to production infrastructure will prefer Link; Build is the faster path for a proof of concept.
Common use cases
Event warehousing
A Cloudflare Worker receives every tap event and writes it into Postgres or BigQuery for internal analytics, independent of TacTile's own dashboard.
Custom bot notifications
A lightweight serverless function parses the payload and posts a formatted message into an internal Slack or Discord channel with tap metadata (tag ID, timestamp, approximate location).
Self-hosted trigger actions
A tap POSTs to a self-hosted endpoint that then triggers a downstream action in your own systems — for example, updating a dashboard view your team already uses. Treat this as a data-trigger pattern, not an access-control or physical-unlock mechanism; TacTile is not a verified access-control system, and any security-sensitive action downstream is your endpoint's responsibility to gate correctly.
No-connector CRM integration
Internal tools without a native Zapier connector can still ingest tap events directly via a custom endpoint you write and maintain.
Server-side redirect testing
Your endpoint inspects the incoming payload (device type, location, time) and computes which variant a visitor should see before responding — useful for A/B-testing redirect logic outside of TacTile's native routing.
Webhook + analytics
Webhook destinations still report standard tap analytics to your TacTile dashboard — total taps, unique visitors, device breakdown, timing. The metric specific to this type is delivery success rate: the percentage of POST requests that received a 2xx response from your endpoint versus those that timed out or errored, which is your first signal that something downstream broke.
Frequently asked questions
What's the payload schema? Can I see a sample JSON body?
How do I verify the request actually came from TacTile?
What response code should my endpoint return?
Is there a request timeout?
Can I test this without a physical tag?
Does TacTile retry failed webhook deliveries?
Are there rate limits per tag or per account?
Create your webhook destination — free
Start on the free tier: real, fully functional, no credit card.
Create your free account →