All articlesGuides

Form Webhooks, API Access and Zapier: Which One You Actually Need

Three ways to get a form submission into another system, and they are not interchangeable. A decision guide for people who do not want to build more than the job requires.

BotForms TeamUpdated 6 min read
A large monitor and keyboard on a desk at night lit by a single desk lamp, hands resting on the keys

Short answer: use a no-code connector like Zapier when the job is moving a submission into another product, a webhook when your own system has to react in real time, and the API when you need to pull data on your own schedule. As of September 2026 BotForms includes API access from the Pro plan at $79/month, with the built-in delivery paths available from $29/month.

Most teams pick one of these because it was the one they had heard of, and then spend six months working around the mismatch. They are not tiers of sophistication. They answer different questions.

The three mechanisms, precisely

A no-code connector — Zapier, Make, n8n and the rest — sits between two products you did not write. You configure it in a browser: when a submission arrives here, create a record there, map these fields to those fields. It polls or receives, then acts. You pay per task or per operation.

A webhook is the form platform making an HTTP request to a URL you own the moment something happens. You get the submission as JSON, in near real time, and what happens next is entirely your code. Nobody else is in the path.

An API is you asking the platform for data when you want it. Fetch the submissions since a timestamp, pull a specific record, reconcile what your database is missing. It runs on your schedule, not on the event's.

The confusion is that all three can be described as "connecting the form to something else". The distinction that matters is who initiates and who owns the logic.

Choosing, in one table

If you need to... Use Why not the others
Create a CRM contact per submission No-code connector A webhook means building and hosting what the connector already does
Trigger your own internal workflow in real time Webhook A connector adds a minute of latency and a middleman for something you already control
Backfill last quarter's submissions into a warehouse API Webhooks only fire going forward; there is no replaying the past
Notify a Slack channel No-code connector Genuinely a solved problem, not worth code
Route submissions differently based on ten rules Webhook Branching logic in a connector becomes unmaintainable around rule four
Handle 50,000 submissions a month Webhook Per-task pricing dominates at volume
Sync bidirectionally with your own database API + webhook Push for changes, pull for reconciliation — you need both

Read it as a cost question rather than a capability one. All three can do most of these. Only one does each cheaply.

The case for not writing code

Engineering teams underrate the no-code path, and it costs them.

A Zap that creates a CRM record from a submission is configured once and then maintained by whoever owns the CRM. The equivalent webhook receiver needs a URL, hosting, deployment, monitoring, retry logic, an on-call story and someone who remembers how the field mapping works in eighteen months when the person who wrote it has left. The connector's per-task fee is usually far less than the annual carrying cost of that.

The threshold where this flips is roughly: several thousand submissions a month, or logic complex enough that you are fighting the connector's branching, or a latency requirement measured in seconds. Below that, the browser-configured version is the right answer and the practical setup — including field mapping and the parts that break — is covered in connecting AI form builders to a CRM and Zapier.

Building a receiver properly

If you do go direct, four things separate a webhook integration that survives from one that quietly corrupts data.

Acknowledge before you process. Store the raw payload, return 200, then do the work asynchronously. A receiver that calls a CRM, a mailer and a database before responding will eventually exceed the sender's timeout. The sender then retries — correctly, it has no way of knowing you succeeded — and you have created a duplicate. Slow receivers are the number one source of duplicate records in webhook integrations.

Be idempotent. Retries are normal, not exceptional. Key every incoming submission on its own identifier and make a second delivery of the same one a no-op. This is the difference between retries being a safety feature and retries being an outage.

Verify the sender. The URL is public. Anything that can reach the internet can post to it. Check a shared secret or a signature header before you trust a single field, and reject rather than log-and-continue on failure. Obscurity is not authentication.

Log the raw body. Keep the payload exactly as received, for a bounded period. When something goes wrong at three in the morning, the difference between a ten-minute fix and a day of guessing is whether you can see what actually arrived rather than what your parser made of it.

What the API is for

Webhooks are blind to the past. They fire on events after you set them up, and if your receiver was down for an hour, that hour is gone unless the sender retried into the window.

That is where a pull API earns its place:

Reconciliation. A nightly job that fetches submissions since yesterday and confirms every one exists in your database catches the gaps webhooks leave. Most teams discover they had gaps only after building this.

Backfill. Standing up a new reporting system means loading history, and history only exists behind an API.

Reporting on your own terms. Aggregations, unusual date ranges, joins against your own data. Pulling once a night into your own store is far more flexible than trying to compute from a stream.

On BotForms, API access starts on the Pro plan; the current tiers and limits are on pricing.

The delivery paths you may not need any of this for

Before building anything, check what the platform already does natively. A surprising share of integration projects exist to rebuild something that was a toggle.

Email and SMS notification on submission, generated documents sent to the submitter, submissions flowing into an email audience, restricted views for field staff — these are built-in mechanisms on most modern platforms and on BotForms specifically. The delivery-timing question is covered in SMS versus email form notifications, and the mailing-list path in turning form submissions into an email audience. If one of those covers the requirement, the correct amount of integration work is none.

It is also worth being clear on the vocabulary here, because "bot" gets used for three different things in this space. A bot form is a form that conducts the conversation; an automated filler is something else entirely, as bots that fill out forms covers; and a webhook is neither. Naming them precisely prevents scoping a project against the wrong one.

A sensible layered setup

For a business at moderate volume with some engineering capacity, this arrangement holds up:

Built-in notification handles the immediate human alert, because it needs no infrastructure and fails in obvious ways. A no-code connector maintains the CRM record, owned by the person who owns the CRM. A webhook drives whatever internal system is genuinely yours. And a nightly API pull reconciles everything into reporting, which is also how you find out when one of the other three has been quietly failing.

Each layer is doing the thing it is cheapest at. The failure mode to avoid is a single mechanism carrying all four jobs, which is how you end up with a critical Zap nobody can debug or a webhook receiver that is secretly your reporting pipeline.

Getting started

Write down the actual requirement before choosing a mechanism: what has to happen, how fast, how often, and who maintains it in a year. In most cases that sentence picks the tool for you, and in most cases the answer is smaller than the one you were about to build.

API access is available on the BotForms Pro plan at $79/month and above; every plan includes the built-in notification and delivery paths from $29/month with a 30-day trial. See features for what is native, pricing for the tiers, or start a trial.

Frequently asked questions

What is the difference between a webhook and an API?

Direction. A webhook is the form platform calling you when something happens — a submission arrives, your endpoint receives it immediately. An API is you calling the platform when you want something, such as fetching the last week of submissions. Webhooks are push and are what you want for real-time reactions; APIs are pull and are what you want for syncing, backfills and reporting.

Do I need a developer to use a webhook?

To receive one directly, yes — something has to be listening at a URL and doing something with the payload. If nobody on the team writes code, an automation platform like Zapier or Make is effectively a webhook receiver you configure in a browser, which is why it exists. Paying for that convenience is usually cheaper than paying for a developer and a server.

When is Zapier not good enough?

Three cases. High volume, where per-task pricing overtakes the cost of a small endpoint. Anything needing real logic — conditional branching, calling several systems and reconciling the results, retrying intelligently. And anything where a delay of a minute or two is genuinely unacceptable. Below those thresholds, a no-code connector is the correct engineering decision, not a compromise.

Does BotForms have API access?

Yes. API access is included on the Pro plan at $79/month and above as of September 2026, along with the Business plan at $199/month and Enterprise. The Starter plan at $29/month covers email notifications and the built-in delivery paths rather than programmatic access.

What should a webhook receiver do first?

Acknowledge fast and process later. Return a 200 as soon as you have the payload safely stored, then do the real work in a background job. Receivers that call three slow APIs before responding time out, get retried, and quietly create duplicate records — which is the single most common way a working integration starts corrupting data under load.

How do I stop someone posting fake submissions to my webhook URL?

Treat the endpoint as public, because it is. Verify a shared secret or signature on every request before trusting the body, reject anything that fails, and never take an action with financial consequences purely on the word of an unverified payload. A URL that is hard to guess is not authentication.

Can I use more than one of these at the same time?

Yes, and mature setups usually do. A no-code connector handling the CRM record, a webhook driving an internal notification, and a nightly API pull feeding a reporting warehouse is a perfectly sensible arrangement. They are layers, not competitors.

Build this form in about a minute

Describe what you need to collect — or upload a PDF of the form you already use — and BotForms builds it, hosts it, and routes every submission to your inbox.

Start your 30-day trial

Keep reading