Automatically score leads, launch email sequences, and update database records the moment someone clicks your branded links or scans your custom QR codes.
Don't wait on static exports. Route clicks and QR scans to your CRM, dashboards, and triggers the second they happen.
Detect high-value clicks (such as pricing or checkout links) instantly. Send updates directly to HubSpot, Salesforce, or notify sales reps on Slack in real-time to contact hot leads immediately.
Route visitor analytics (city-level geolocation, browser specifications, and UTM campaign tags) directly into your database for custom attribution modeling.
Kick off lifecycle campaigns in Mailchimp or Customer.io. Deliver automated discounts or guides right when the prospect is actively engaging with your brand asset.
Set webhook limits or get triggers when traffic on a link spikes beyond your threshold. Instantly capture geographic locations, browsers, and devices to stream directly into Tableau or your own dashboards.
JMPY provides standard JSON schemas that developers love, while offering direct integrations and filters that marketers need to drive pipelines.
Directly sync events to Zapier, Make.com, or Slack without touch typing a single line of backend server code.
Configure subscription triggers to run only when clicks match targeted marketing campaigns.
Trigger events exclusively for unique clicks to prevent duplicate database leads or spammy notifications.
Subscribe to individual topics or monitor all link actions. Filter events before they reach your pipeline.
Fires instantly when a shortened link is clicked. Sends comprehensive analytics, device data, and custom parameters.
Analytics TriggerFires only on unique visitor clicks (deduplicated over 24 hours). Avoids triggering duplicate automation for the same lead.
Marketer TriggerFires only when the clicked short URL has UTM campaign parameters present. Ideal for tracking marketing campaigns.
Marketer TriggerTriggered when a dynamic QR Code is scanned. Includes scan counters, location details, and active layout context.
Scan TriggerFires only when a QR code is scanned by a unique visitor. Perfect for clean offline engagement calculations.
Marketer TriggerFires whenever your workspace creates a new short URL. Sync with internal databases or CRM registers.
Sync TriggerFires when a new dynamic QR code is generated. Perfect for automating dynamic print layouts or labels.
Sync TriggerAvoid server overload and save execution quotas on Zapier or Make. Set filters directly inside the JMPY dashboard so you only dispatch requests that matter.
Verify callbacks with HMAC signatures, filter out noise, and rely on automatic retries if your server goes offline.
Verify payload signatures. JMPY hashes notifications with SHA-256 HMAC and delivers them via the x-jmpy-signature header so you know callbacks are genuine.
Prevent dropouts. If your server is down or times out, JMPY queues notifications and retries up to 5 times over a 24-hour window using exponential backoff.
Maintain clean registers. Every callback includes a unique event_id, allowing you to reject duplicate deliveries on retry attempts safely.
Select events to view mock JSON schemas, copy test commands, or review signature matching code.
{
"event_id": "evt_7d82b01c34a9",
"event": "link.clicked",
"subscription_id": "sub_d8c72b10a239",
"timestamp": "2026-07-09T04:30:00.000Z",
"data": {
"id": "click_1234567890ab",
"interaction_id": "click_1234567890ab",
"interaction_click": "Click",
"interaction_scan": null,
"interaction_type": "Click",
"click_id": "click_1234567890ab",
"scan_id": null,
"click_detail": "click",
"short_id": "link_abc123xyz789",
"link_id": "link_abc123xyz789",
"short_code": "bfcm-deals",
"short_url": "https://jmpy.me/bfcm-deals",
"original_url": "https://yourshop.com/black-friday-sale?utm_source=jmpy",
"language": "en-US",
"is_unique": true,
"session_id": "sess_888888888888",
"geo": {
"country": "United States",
"country_code": "US",
"region": "California",
"city": "Mountain View",
"timezone": "America/Los_Angeles"
},
"device": {
"device_type": "mobile",
"device_brand": "Apple",
"device_model": "iPhone",
"browser": "Safari",
"browser_version": "17.4",
"os": "iOS",
"os_version": "17.4",
"os_platform": "iPhone"
},
"traffic": {
"traffic_source": "instagram",
"traffic_medium": "social",
"organic_vs_paid": "organic",
"referer": "https://instagram.com/",
"referrer_domain": "instagram.com"
},
"utm": {
"utm_source": "jmpy",
"utm_medium": null,
"utm_campaign": null,
"utm_term": null,
"utm_content": null
},
"ab_test": {
"ab_test_id": null,
"variant_id": null,
"variant_name": null
},
"clicked_at": "2026-07-09T04:30:00.000Z",
"campaign_id": null,
"campaign_name": null,
"url_type": "standard",
"link_branding": "standard",
"branded_domain": null,
"subdomain": null,
"is_dynamic": false,
"is_password_protected": false,
"expires_at": null,
"custom_alias": null,
"tags": [],
"has_utm_params": true,
"is_qr_scan": false
}
}curl -X POST https://api.jmpy.me/webhooks \
-H "Content-Type: application/json" \
-H "x-jmpy-signature: 8a7f920bc48375..." \
-d '{
"event": "link.clicked",
"timestamp": "2026-07-09T04:30:00.000Z",
"data": {
"short_code": "promo",
"domain": "jmpy.me",
"destination_url": "https://myshop.com"
}
}'const crypto = require('crypto');
function verifyJmpySignature(payload, signatureHeader, signingSecret) {
const computedSignature = crypto
.createHmac('sha256', signingSecret)
.update(JSON.stringify(payload))
.digest('hex');
return computedSignature === signatureHeader;
}Don't let integrations fail silently. Inspect Latency graphs, HTTP header details, and JSON response bodies directly inside your account to debug listeners without logs guessworks.
Log body responses and latency profiles for the last 45 days.
Retry individual failed callbacks directly from dashboard registers.
Receive system warnings if endpoints return sustained 5xx issues.
Link link engagement events natively inside standard automation platforms.
Set up trigger points instantly on click notifications. Send customized onboarding emails, update contacts, or dispatch sheets updates automatically.
Incorporate webhooks directly inside self-hosted or cloud nodes. Build complex, automated multi-step logic flows instantly with our native community integrations.
Stream click-attribution details to Make scenarios instantly. Map routing criteria and automate email sequences when traffic hits key URLs.
Trigger 1-click automations when links are clicked or scanned. Sync webhook payloads across 1,000+ apps effortlessly with zero technical setup.
Everything you need to know about setting up and scaling real-time click deliveries.
A webhook is a real-time HTTP POST notification pushed from JMPY directly to your server. Instead of polling our API for click updates, JMPY triggers instant event payloads (containing detailed device, geographic, and attribution UTM attributes) the millisecond a visitor interacts with your links.
No. If you want a no-code pipeline, JMPY integrates natively with workflow automation tools like Zapier, Make.com, and n8n. If you want custom software integration, developers can receive standard JSON payloads directly at any HTTP POST endpoint.
If your target endpoint is down or fails to return an HTTP 200 OK within 5 seconds, JMPY's dispatcher schedules retries automatically. We use an exponential backoff retry mechanism, executing up to 5 attempts over a 24-hour window.
JMPY webhooks are built with enterprise-grade security. All callbacks are sent over HTTPS. Additionally, JMPY computes a cryptographic HMAC SHA-256 signature for each payload and includes it in the 'x-jmpy-signature' header, allowing your server to authenticate request validity.
Yes. JMPY supports subscription-level infrastructure filters. You can restrict webhooks to trigger only on specific short codes, QR code IDs, UTM campaigns, or only unique visitor clicks so your endpoints don't get overloaded.
Webhooks are available on our Business and Enterprise plans. While free and pro accounts can view basic click analytics inside the dashboard, routing event payloads to custom endpoints or third-party servers via webhooks requires a Business tier subscription or higher. However, Free and Pro users can still automate their workflows using our API or integrations via polling mode (regularly fetching new click data).
Connect click attribution data and scan telemetry directly to your dashboards and automation flows in less than 5 minutes.