What is sent
One request per conversion, within a minute of it being recorded: a join to your Telegram group, channel or Discord server, a first message to your bot, a deposit or purchase, a lead or sign-up, and, if you choose, a member who is still there after the days you set or who left. Each carries the ad it came from (campaign, source, ad, sub-ids, country), the link, the click id, a hashed person id that stays the same for that person across events, and for deposits the amount and currency. Choose the groups you want on Connections; the rest are not sent.
Nothing a person wrote is ever sent, and no Telegram or Discord profile data: the person id is a SHA-256 hash, the same one that goes to Meta. If your platform reported an email or phone with a deposit, those stay hashed too.
Zapier, step by step
- In Zapier, create a Zap with the trigger Webhooks by Zapier → Catch Hook. Copy the webhook address it shows.
- In Tellmetric, open Settings → Connections → Forward conversions to another tool. Paste the address, choose POST, tick the groups you want (joins, messages, deposits, leads, membership) and save.
- Press Send a test. Zapier receives a sample conversion with every field filled; pick it as the sample record in the trigger step.
- Add the action: Google Sheets → Create Spreadsheet Row and map the fields (event, occurred_at, utm_campaign, payout, currency…), or HubSpot, Slack, Airtable, Notion, Mailchimp, whatever you use. A filter step on
event or status keeps deposits and joins in separate Zaps.
- Turn the Zap on. From now on every conversion of the chosen groups lands there within a minute; Recent calls on Connections shows each one and what Zapier answered.
Make (Integromat)
Create a scenario with the Webhooks → Custom webhook module, copy its address, save it on Connections as above and press Send a test so Make can determine the data structure. Then add the modules you need: Google Sheets → Add a row, a CRM, Telegram Bot → Send a message to your team chat, a router to split joins from deposits. Make keeps the webhook listening even when the scenario is off and queues the calls.
The fields
| Field | What it holds |
event, status | The conversion: Joiner/join, AdminDM/message, Deposit/dep, FTD/ftd, Purchase/sale, Lead/lead, CompleteRegistration/reg, Contact/contact, Retained/retained, Leave/left. |
event_id, occurred_at | A unique id (send the same one twice and your tool can deduplicate) and the time, ISO 8601, UTC. |
clickid, short_code | The ad click this person arrived with and the tracking link they used. |
utm_source, utm_campaign, utm_content, utm_medium, sub1…sub5, country | The campaign parameters of that click and the country it came from. |
community, join_via | telegram or discord, and how a join was matched (invite link, bot start, Discord authorise). |
external_id | A SHA-256 hash of the person's Telegram or Discord user id: the same for every event of that person, never the id itself. |
payout, currency, txid | For deposits and purchases: the amount, the currency and your transaction id. |
Trusting the calls
Every POST carries two headers. X-Tellmetric-Event names the event, so a filter needs no body parsing. X-Tellmetric-Signature is sha256= followed by an HMAC-SHA256 of the exact body with the signing secret shown on Connections; a server of your own should recompute it and compare before acting, so nobody can post a fake deposit to your endpoint. Zapier and Make have no need to check it; the address they give you is itself a secret.
If your tool is down, the call is retried after 1, 5, 30 minutes, then 2 and 12 hours, and each attempt with the reply is listed under Recent calls. A call your tool rejected with an error code is retried the same way; one it accepted with any 2xx is done.
Trackers and GET postbacks
A tracker such as Keitaro, Binom or RedTrack wants a GET with the values in the address. Choose GET and write the address with placeholders, for example https://your-tracker/postback?cid={clickid}&status={status}&sum={payout}; the postback guide covers that side, and the developer page lists every placeholder.
Frequently asked
Can I send only deposits?
Yes. Untick the other groups on Connections, or keep them and filter on event in Zapier or Make.
Does Google Sheets need Zapier?
A Sheet cannot receive a webhook on its own, so Zapier, Make or a Google Apps Script web app in between is needed. The Apps Script route is free: publish a script with a doPost that appends the JSON fields to a row, and paste its address on Connections.
Is the person's name or username included?
No. Only the hashed id, so you can count and join events per person without holding profile data from a webhook. Names live in Tellmetric's own group view.
Will old conversions be sent when I switch it on?
No. Forwarding starts with conversions recorded after you save the address; earlier ones are in the CSV exports.