惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Cloudflare Blog
U
Unit 42
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
腾讯CDC
罗磊的独立博客
博客园 - 聂微东
博客园_首页
雷峰网
雷峰网
云风的 BLOG
云风的 BLOG
Jina AI
Jina AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
D
DataBreaches.Net
The GitHub Blog
The GitHub Blog
人人都是产品经理
人人都是产品经理
Y
Y Combinator Blog
量子位
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
小众软件
小众软件
月光博客
月光博客
T
The Exploit Database - CXSecurity.com
Google DeepMind News
Google DeepMind News
H
Help Net Security
O
OpenAI News
Blog — PlanetScale
Blog — PlanetScale
S
Security Affairs
S
Security @ Cisco Blogs
Microsoft Security Blog
Microsoft Security Blog
T
The Blog of Author Tim Ferriss
AI
AI
MongoDB | Blog
MongoDB | Blog
G
Google Developers Blog
MyScale Blog
MyScale Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
D
Docker
Hugging Face - Blog
Hugging Face - Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Schneier on Security
Cloudbric
Cloudbric
H
Heimdal Security Blog
J
Java Code Geeks
N
News and Events Feed by Topic
Hacker News - Newest:
Hacker News - Newest: "LLM"
宝玉的分享
宝玉的分享
有赞技术团队
有赞技术团队
S
SegmentFault 最新的问题
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
I
Intezer
GbyAI
GbyAI

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
How to Track Where Your Form Submissions Are Coming From
Allen Jones · 2026-04-29 · via DEV Community

You are getting form submissions.

People are filling in your contact form, your registration form, and your quote request form.
The submissions are arriving in your inbox and your dashboard.

But here is the question most small business owners never think to ask:

Where are these people coming from?

Did they find your form through your Instagram bio? Did someone share your link in a WhatsApp group? Did they click a link in your email newsletter? Did they find you through a Google search?

If you do not know the answer to that question, you are making marketing decisions blindly. You are spending time on channels that might not be sending you any leads at all, while ignoring the one channel that is sending you your best customers.

This guide shows you how to track exactly where every form submission comes from using a simple system called UTM tracking and how Formgrid makes it automatic.


Why This Matters More Than You Think

Imagine you are sharing your contact form
in three places:
Your Instagram bio
A WhatsApp group for your industry
Your monthly email newsletter

After a month, you have 40 submissions. But you have no idea which channel sent which submissions.

Without source tracking:
You guess Instagram is working because you post there most often.
You stop sending the newsletter because it feels like a lot of effort.
You leave the WhatsApp group because it seems inactive.

With source tracking, you discover:
Instagram: 4 submissions
WhatsApp: 28 submissions
Newsletter: 8 submissions

WhatsApp was sending you 70 percent of your leads, and you almost stopped using it.

That is the difference source tracking makes.


What UTM Tracking Is

UTM stands for Urchin Tracking Module. The name does not matter. What matters is what it does.

UTM tracking is a simple way to add invisible labels to your links so you can see which link a person clicked before they filled in your form.

You create different versions of your form link for each place you share it. Every version looks the same to the person clicking it. But behind the scenes, each version carries a label that tells you where it came from.

When someone clicks your WhatsApp link and fills in your form, Formgrid reads that label automatically and attaches it to the submission. No form fields needed. No technical setup required.
It just works.


How UTM Links Work

Your normal Formgrid form link looks
like this:
https://formgrid.dev/f/your-form-id

A UTM tracked version of the same link
looks like this:
https://formgrid.dev/f/your-form-id?utm_source=whatsapp&utm_medium=social

The part after the question mark is the
UTM parameter. It tells Formgrid two things:
utm_source=whatsapp where the link was shared.
In this case, WhatsApp.
utm_medium=social
How the link was shared.
In this case through social media.

The person clicking the link sees nothing different. They open your form. They fill it in. They submit it.

Behind the scenes, Formgrid reads the UTM parameters from the URL and saves them to the submission automatically.

No visible fields. No extra steps.
No technical knowledge is needed from the person filling in your form.


The Three UTM Parameters

You only need to understand three:
utm_source
Where the traffic came from.
Examples:
whatsapp
twitter
instagram
linkedin
facebook
email
google
reddit

utm_medium
How the traffic arrived.
Examples:
social (shared on social media)
email (sent in an email)
paid (from a paid ad)
organic (from search)
referral (linked from another site)

utm_campaign
Which specific campaign or piece
of content sent to them.
Examples:
summer_launch
newsletter_april
instagram_bio
horse_ride_outreach

You do not need all three on every link.
Source and medium are enough for most small businesses.


How to Create Tracked Links in Formgrid

Formgrid generates tracked links automatically for you. You do not need to edit URLs manually or understand the technical details.

Here is how it works.

Step 1: Create and Save Your Form

Go to formgrid.dev
and sign up. No credit card required.

Formgrid signup page

Create a new form using the drag and drop builder or connect your existing HTML form to a Formgrid endpoint.

Formgrid dashboard and new form creation

Give your form a name and click Save.

Step 2: Open the Share Modal

Once your form is saved, open it in the form builder. In the top toolbar, you will see four buttons:
Embed Preview Share Save Changes

Click Share.

A modal opens showing your form link and six pre-built tracked links for the most common channels.

Step 3: Copy Your Tracked Links

The Share modal shows:
Your form link:
formgrid.dev/f/your-form-id
[Copy]
Share with tracking:
[Twitter] [Copy]
[WhatsApp] [Copy]
[Email] [Copy]
[Instagram] [Copy]
[LinkedIn] [Copy]
[Facebook] [Copy]
Custom source:
[ ] [Copy]

Each button copies a different tracked version of your form link to your clipboard.
Twitter link:
formgrid.dev/f/your-form-id
?utm_source=twitter&utm_medium=social
WhatsApp link:
formgrid.dev/f/your-form-id
?utm_source=whatsapp&utm_medium=social
Email link:
formgrid.dev/f/your-form-id
?utm_source=email&utm_medium=newsletter

You copy the link for wherever you are sharing. Paste it. Done.

Step 4: Share Each Link in the

Right Place
Paste the Twitter link in your
Twitter bio or tweet
Paste the WhatsApp link in your
WhatsApp group or status
Paste the Email link in your
newsletter or email signature
Paste the Instagram link in your
Instagram bio

Each link goes to the same form.
The person filling it in sees nothing different.
But Formgrid knows which link they clicked.

Step 5: See Where Your Submissions

Are Coming From

When submissions arrive in your dashboard, each one shows where it came from.

Open any submission, and you will see:
Source: WhatsApp via social

Or:
Source: Twitter via social

Or:
Source: email via newsletter

After a few weeks of sharing your tracked links, you can see at a glance which channel is sending you the most submissions and which channel is sending you the leads that actually convert.


A Real Example: How This Changes

Your Decisions

Sarah runs a photography studio. She shares
her booking enquiry form in four places:
Her Instagram bio
Her WhatsApp group for local businesses
Her monthly email newsletter
Her Twitter profile

After using tracked links for one month, her Formgrid dashboard shows:
Instagram: 6 submissions
WhatsApp: 19 submissions
Newsletter: 3 submissions
Twitter: 2 submissions

She was spending two hours per week creating content for Twitter. She had 2 submissions to show for it.

She was spending 10 minutes per week in the local business WhatsApp group. She had 19 submissions to show for it.

She stopped posting on Twitter. She started engaging more in the WhatsApp group.
Her submission volume increased by 40 percent without creating any
more content.

That decision was only possible because she could see the data.


What About Custom Channels

Not every channel fits neatly into the six default options. Maybe you share your form in a Reddit community.
Maybe you put it in a blog post. Maybe a podcast mentions your business.

The Share modal in Formgrid has a custom
source field at the bottom:
Custom source:
[reddit ] [Copy]

Type your source name and click Copy.
Formgrid generates a tracked link for that exact source:
formgrid.dev/f/your-form-id
?utm_source=reddit&utm_medium=custom

You can create tracked links for any channel you use.


What To Do With This Information

Once you have a few weeks of tracked submissions in your dashboard, ask yourself these questions:
Which channel sends the most submissions?
Double down on that channel.
Which channel sends zero submissions?
Stop spending time there, or try a different approach.
Which channel sends submissions that actually convert to customers?
That is your most valuable channel regardless of volume.

The last question is the most powerful one. Volume is vanity. Conversion is what matters.

A channel that sends 5 submissions, and 4 of them become customers is
worth more than a channel that sends 30 submissions and none of them convert.

With Formgrid's lead pipeline, you can track both. You see the source on each submission, and you see whether that submission became
New, Contacted, or Converted.
WhatsApp submissions:
19 total
14 contacted
8 converted (42% conversion rate)
Instagram submissions:
6 total
4 contacted
1 converted (17% conversion rate)

WhatsApp is not just sending more leads.
It is sending better leads. You would never know that without source tracking.


Why Most Form Tools Do Not Do This

Most form backends receive your submission and send you an email. That is where their job ends.

They have no concept of where the submission came from.
They have no pipeline to track what happens after.
They have no way to connect a lead back to the channel that generated it.

Formgrid captures UTM parameters automatically from every submission.
It stores the source, medium, and campaign on every lead record. It shows you the source in the lead detail view so you always know where each person came from.

No plugin. No Zapier integration.
No third-party analytics tool.
It is just built in.


Getting Started

If you already have a form on your website, you can connect it to Formgrid by replacing the form action URL with your Formgrid endpoint. One line change. Everything else stays the same.

<form 
  action="https://formgrid.dev/api/f/your-form-id" 
  method="POST"
>
  <input 
    type="text" 
    name="name" 
    placeholder="Your Name" 
    required 
  />
  <input 
    type="email" 
    name="email" 
    placeholder="Your Email" 
    required 
  />
  <textarea 
    name="message" 
    placeholder="Your Message"
  ></textarea>
  <button type="submit">Send</button>
</form>

Enter fullscreen mode Exit fullscreen mode

If you are starting from scratch, use the drag-and-drop form builder to get a shareable link in under 2 minutes. No website needed.

Either way, the moment you start sharing tracked links, Formgrid automatically shows you where every submission came from.

👉 Start free at formgrid.dev

No credit card required. Free plan available.
The Share modal with tracked links is available on all plans, including free.


Have questions about UTM tracking
or setting up source tracking for
your specific form? Email
allen@formgrid.dev, and I will
help you get it working.