📢 Advertisement (728×90)

Build a Webhook Automation Agent with Zapier, Email & Telegram

📢 Advertisement — Large Rectangle (336×280)

Imagine this: someone signs up on your website, and within 5 seconds their details are saved in a database, you get an email, and your phone pings with a Telegram alert — fully automatic, zero code required. This guide shows you exactly how to build it.

1. What You'll Build

This is a 4-step no-code automation workflow built on Zapier. Every time someone submits a form or action on your website, the following happens in real time:

1

🪝 Webhook Trigger

Your website sends a POST request with user data (name + email) to a unique Zapier URL — the entry point for everything.

2

💾 Zapier Tables — Store the Record

The data is parsed and saved as a new row in a Zapier Table (your database). Every signup gets a unique Record ID.

3

📧 Email Notification

An email with the user's name, email, and Record ID is sent instantly to your inbox.

4

💬 Telegram Alert

A formatted message is delivered to your Telegram — instant mobile visibility wherever you are.

StepActionOutputTime
1Webhook receives POST requestRaw JSON bodyInstant
2Table stores the recordRecord ID + user fields~1 sec
3Email notification sentEmail to your inbox~2 sec
4Telegram message deliveredMobile notification~4 sec

2. What You'll Need

💡 No Website? No Problem

You can test this entire workflow using cURL, JavaScript, or Python from your terminal or browser console — no live website required to get started.

📢 Advertisement — In-Article Responsive

3. Step 1 — Create the Webhook Trigger

Log in to zapier.com and create a new Zap. In the Trigger step, search for Webhooks by Zapier and select the event Catch Raw Hook. Zapier will generate a unique webhook URL for you.

⚠️ Keep Your Webhook URL Private

Anyone with this URL can send data to your Zap. Do not publish it publicly. Treat it like an API key.

Send a Test Payload

Zapier needs to receive at least one test request before you can continue. Use any of the methods below:

Method A — cURL (Terminal)

bash
# Replace YOUR_WEBHOOK_URL with the URL from Zapier
curl -X POST YOUR_WEBHOOK_URL \
  -H "Content-Type: application/json" \
  -d '{"name": "Jane Smith", "email": "jane@example.com"}'

Method B — JavaScript (Browser or Node.js)

javascript
fetch('YOUR_WEBHOOK_URL', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    name: 'Jane Smith',
    email: 'jane@example.com'
  })
});

Method C — Python

python
import requests

requests.post(
    'YOUR_WEBHOOK_URL',
    json={'name': 'Jane Smith', 'email': 'jane@example.com'}
)

After sending, go back to Zapier and click Test Trigger. You should see the JSON data appear. Click Continue.

4. Step 2 — Store Data in Zapier Tables

Zapier Tables is a built-in database that stores your records permanently. First, create your table:

  1. Go to tables.zapier.com and click Create Table.

  2. Name it something like "User Signups" and add two columns: User Name (text) and Email (email).

  3. Save the table. Copy the Table ID from the URL bar.

  4. Back in your Zap, add an Action step → Zapier TablesCreate Record.

Configure Field Mapping with Inline Formulas

Because the webhook captures raw JSON, you need inline formulas to extract each field. This is the most important technical step:

Zapier Inline Formula — User Name field
{{=Object.get(JSON.parse(YOUR_STEP_ID__raw_body), "name")}}
Zapier Inline Formula — Email field
{{=Object.get(JSON.parse(YOUR_STEP_ID__raw_body), "email")}}
🔑 How to Find YOUR_STEP_ID

In Zapier, each step has a numeric ID. Hover over your webhook trigger step — the step ID is shown in the output panel (e.g. 364374425). Replace YOUR_STEP_ID in the formula with this number. Example: {{=Object.get(JSON.parse(364374425__raw_body), "name")}}

Click Test Action. A new row should appear in your Zapier Table. Click Continue.

📢 Advertisement — Large Rectangle (336×280)

5. Step 3 — Send Email Notification

  1. Add a new Action step → search Email by ZapierSend Outbound Email.

  2. In the To field, enter your email address where you want alerts.

  3. Set Subject: New Signup: [User Name] — use the dynamic field from the Tables step.

  4. Paste this into the Body field and map each value dynamically:

Email Body Template
Hello,

A new user has signed up. Here are the details:

Name:       [User Name]
Email:      [Email Address]
Record ID:  [Record ID from Tables step]
Time:       [Current Date/Time]

This is an automated notification.

Click Test Action — a real email should arrive in your inbox within seconds. Click Continue.

6. Step 4 — Send Telegram Alert

One-Time: Create a Telegram Bot

  1. Open Telegram, search for @BotFather, and start a chat.

  2. Type /newbot and follow the prompts — give your bot a name and username (must end in "bot").

  3. BotFather will give you a Bot Token — save it securely.

  4. Search for your new bot and click Start to activate it.

Find Your Chat ID

Visit this URL in your browser, replacing YOUR_BOT_TOKEN with your actual token:

Find your Chat ID
https://api.telegram.org/botYOUR_BOT_TOKEN/getUpdates

In the JSON response, find the chat object and note the id field — that's your Chat ID.

Add Telegram to Your Zap

  1. Add Action step → Telegram BotSend Text Message.

  2. Connect your account using your Bot Token when prompted.

  3. Enter your Chat ID in the Chat ID field.

  4. Paste the message template below and map fields dynamically:

Telegram Message Template
🤖 New Signup Alert!

Name:       [User Name]
Email:      [Email Address]
Record ID:  [Record ID]

Source: Automated via Zapier

Click Test Action — a message should appear on your phone instantly. Click Continue.

7. Publish & Test Your Automation

  1. Click Publish in the top-right corner of the Zap editor.

  2. Toggle the Zap to ON.

  3. Send a fresh test payload to your webhook URL and watch all 4 steps fire in sequence.

✅ Your Automation Is Live

Check Zapier's Zap History tab anytime to see every run — success or error — with full details on what data was received and which step executed.

Integrate with Your Website

Add this snippet to your form's submit handler to trigger the automation automatically:

javascript — website integration
// Add to your form submit handler
async function handleSignup(name, email) {
  const WEBHOOK_URL = 'YOUR_ZAPIER_WEBHOOK_URL';
  try {
    await fetch(WEBHOOK_URL, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ name, email })
    });
    console.log('Signup tracked!');
  } catch (err) {
    console.error('Webhook error:', err);
  }
}

// Wire to your form:
document.getElementById('signup-form')
  .addEventListener('submit', (e) => {
    e.preventDefault();
    handleSignup(
      document.getElementById('name').value,
      document.getElementById('email').value
    );
  });

8. Customise & Extend

This 4-step workflow is a foundation. Here are practical ways to extend it:

EnhancementHow to Do It
Add more fields (phone, city, plan)Add to JSON payload + new columns in Zapier Table + extra formulas
Filter alerts (skip test emails)Add a Zapier Filter step between Step 2 and Step 3
Sync to a CRMAdd HubSpot / Salesforce / Notion as an extra action step
Send SMS tooAdd a Twilio action step after Telegram
Route by user typeUse Zapier Paths (Premium) to send different messages per plan

9. Implementation Checklist

✅ Track Your Progress

Zapier account created
New Zap created with a name
Webhook trigger configured (Catch Raw Hook)
Test payload sent and received
Zapier Table created with correct columns
Inline formulas configured for JSON parsing
Email action configured and tested
Telegram bot created and Chat ID found
Telegram action configured and tested
Full end-to-end test completed
Zap published and turned ON

10. Troubleshooting

Webhook not receiving data
Double-check the webhook URL is copied correctly and you're sending to HTTPS. If using fetch() from a browser, ensure there are no CORS restrictions. Try cURL from your terminal first.
Table fields are empty after the step runs
The most common cause is an incorrect Step ID in the inline formula. The Step ID must match the exact numeric ID of your webhook trigger step. Find it by hovering over the step in Zapier's output panel.
Email not arriving in my inbox
Check your spam folder first. Then verify the "To" field in Zapier is correct. Email by Zapier sends from a Zapier domain, which some spam filters may flag on the first run.
Telegram message not delivered
Make sure you have started a conversation with your bot (search for it in Telegram and click Start). Re-verify your Chat ID by visiting the getUpdates URL and checking the chat.id field in the response.
The Zap is not triggering at all
Check the Zap toggle is set to ON. Go to Zap History to see if requests are being received but failing silently. Also check your Zapier plan task limit — free plans have a 100 task/month limit.

Calculate Your In-Hand Salary Too

While you're automating your workflow, check what actually lands in your bank account each month — free, no login required.

💰 Open Salary Calculator →
📢 Advertisement — Footer Leaderboard (728×90)