Webhooks, Integrations, and How Systems Communicate
Part 5 of the APIs for Non-Engineers Series
Part 5 of the “APIs for Non-Engineers” Series
In the previous article, we explored "Understanding API Authentication: Keys, Tokens, Secrets, in Plain English," including how APIs authenticate callers and manage security. Up to this point, most examples have followed a simple pattern: one system asks, another system responds.
In practice, systems do more than just wait to be asked. Sometimes they need to notify other systems when something happens. Sometimes they need to stay in sync continuously. This is where webhooks and integrations come into play.
This article explains how systems communicate with each other over time, using APIs and webhooks together, in clear, non-technical terms.
If you come across unfamiliar terms, you can refer to the glossary here.
What an Integration Really Means
When people say, “This system is integrated with that system,” they are usually describing an ongoing communication relationship.
An integration simply means:
- two or more systems are connected
- they exchange information in a structured way
- they stay in sync as things change
For example:
- a payroll system connected to a bank
- a product connected to a payment provider
- a CRM connected to an email service
Integrations are not single actions. They are relationships that operate continuously. APIs and webhooks are the main tools used to build these relationships.
Together, they enable systems to request information when needed and receive automatic notifications when events occur, creating a seamless flow of communication between different platforms and services.
Two Ways Systems Communicate
There are two primary communication patterns used in integrations:
- Request-based communication (pull)
- Event-based communication (push)
Understanding this distinction is key.
Request-Based Communication (Pull)
This is the model you are already familiar with from earlier articles.
In request-based communication:
- System A asks System B for information
- System B responds
- The interaction ends
For example:
- “Give me the latest transactions.”
- “What is the status of this order?”
- “Fetch the customer details.”
This approach works well when information is needed on demand, updates are not frequent, or the requesting system controls the timing. However, it has limitations. If System A wants to know when something changes, it must keep asking repeatedly, which becomes inefficient when changes happen frequently or when real-time updates are important.
This constant checking, known as polling, creates unnecessary load on both systems and introduces delays between when something changes and when the requesting system learns about it.
Why Constant Polling Is Inefficient
Imagine refreshing your email inbox every five seconds to see if a new message has arrived. Most of the time, nothing has changed.
This is similar to what happens when a system repeatedly calls an API to check for updates. This approach is known as polling.
- increases unnecessary requests
- wastes resources
- introduces delays
- can trigger rate limits
To solve this problem, systems use webhooks.
Event-Based Communication (Push)
Unlike request-based communication, where one system must ask for information, event-based communication works in reverse.
In event-based communication:
- System B automatically sends information to System A when something happens
- System A receives the notification without needing to ask
- The interaction is initiated by the system where the event occurred
For example:
- A payment just completed, here’s the notification.
- An order was cancelled, sending you the details.
- A delivery was updated, here’s the new status.
This approach works well when:
- real-time updates are important
- changes happen frequently or unpredictably
- the system where events occur should control when notifications are sent
Webhooks are the primary mechanism used to implement event-based communication. They allow systems to push information automatically, eliminating the need for constant checking.
What a Webhook Is (In Simple Terms)
A webhook is a way for a system to send information automatically when something happens.
Instead of being asked repeatedly, the system says: “When this event occurs, I will notify you.”
A simple analogy:
- APIs are like calling someone to ask for updates.
- Webhooks are like giving someone your phone number and asking them to call you when something changes.
How Webhooks Work Conceptually
The process is straightforward:
- System A tells System B where to send notifications.
- System B saves that address.
- When a specific event occurs, System B sends a message to that address.
- System A receives the update and reacts accordingly.
For example:
- a payment succeeds
- a subscription is cancelled
- a delivery is completed
- a document is approved
The notification is sent automatically, without System A needing to ask.
What Webhook Messages Contain
Webhook messages usually include:
- the type of event that occurred
- an identifier for the affected object
- relevant details about the event
- a timestamp
The message is structured so the receiving system can process it reliably.
An example webhook message might look like:
{
"event": "payment.completed",
"id": "pay_1234567890",
"amount": 99.99,
"currency": "USD",
"timestamp": "2025-12-22T10:30:00Z"
}
For non-engineers, the key idea is this, webhooks describe what happened and provide enough information to respond.
APIs and Webhooks Are Usually Used Together
APIs and webhooks are not competing tools. They complement each other.
A common pattern looks like this:
- a webhook notifies your system that something happened
- your system then calls an API to fetch full details
For example:
- a webhook says “payment completed”
- your system calls the payments API to retrieve the full transaction record
This keeps systems efficient and responsive.
Why Webhooks Sometimes Fail
Webhook issues are common and usually have practical explanations.
Common causes include:
- the receiving system is temporarily unavailable
- network issues
- invalid or expired authentication
- slow responses
- retries being blocked
Most webhook systems retry delivery multiple times to ensure the message is eventually received.
A missed webhook does not usually mean data is lost permanently. Systems are designed to recover from these situations.
Security and Trust in Webhooks
Because webhooks allow systems to send data automatically, security is important.
Unlike API requests where your system initiates the communication, webhooks come from external systems to yours. This means you need ways to verify that incoming messages are genuine and haven’t been tampered with.
Common protections include:
- shared secrets
- signature verification
- IP allowlists
- timestamp checks
These measures ensure that webhook messages are genuine and not tampered with.
From a non-technical perspective, the takeaway here is that webhooks are designed with trust and verification in mind, not as open channels.
Why Integrations Can Feel Fragile
If you’ve worked with integrations, you may have noticed they can seem delicate or unpredictable. A change that seems small can cause unexpected issues, and what worked yesterday might break today. This isn’t because integrations are poorly built, it’s because they depend on many interconnected pieces working together.
Integrations depend on:
- network stability
- correct configuration
- compatible data formats
- reliable authentication
- clear error handling
If one part changes, others can be affected. This is why integrations require monitoring, documentation, and clear communication between teams.
Understanding this helps explain:
- why integration timelines vary
- why testing is essential
- why changes must be coordinated
Why This Matters for Non-Engineers
You don’t need to write code or build integrations yourself to benefit from understanding how they work. Whether you’re planning features, supporting customers, managing projects, or making product decisions, this knowledge helps you navigate the technical landscape more confidently.
Understanding APIs, webhooks, and integrations helps non-engineers:
- plan features more realistically
- understand system dependencies
- interpret delays or failures accurately
- communicate better with engineering teams
- explain system behaviour to customers
- make informed product decisions
You do not need to build integrations to benefit from understanding how they work.
Next in the Series
The next article focuses on how to read API documentation without feeling overwhelmed. It will walk through how to approach documentation confidently, what sections matter most, what can be safely ignored at first, and how to make sense of examples and references without a technical background.
This will set the foundation for the final article in the series, where we bring everything together by making a first API call without writing any code.
Test Your Knowledge
Take a quiz to test your knowledge of webhooks, integrations, and how systems communicate by clicking this button: