Custom API Integration: Scope the Handoff Before You Build
Define the business event, data ownership, exceptions, and recovery path before connecting your systems.
Oct 1, 2026

Table of Contents
- Start with the business handoff
- Decide which system owns each fact
- Choose delivery around the workflow
- Scope duplicates, delay, and correction
- Give someone an operating view
- Treat access and sensitive data as scope
- Define a useful first integration
- Agree evidence of a working handoff
Custom API integration starts with the business handoff
A website enquiry reaches an inbox. Someone copies the contact into a CRM, forwards the request to a colleague, and adds a row to a project tracker. The systems all work individually. The uncertainty sits between them: which request belongs to which customer, who owns the next action, and whether the information arrived intact.
It is tempting to describe the solution as connecting the website to the CRM. That names two systems but leaves the product decision unresolved. A useful custom API integration must define the event that matters, the record it changes, the person responsible, and the evidence that the handoff completed.
Consider a service company receiving project requests. The website collects contact details, a company name, a project description, and an approximate timeline. The team needs a contact record, an enquiry assigned to the right person, and a way to see requests that could not be delivered. These are related outcomes. They should be scoped together.
Write the handoff in ordinary language first: when a valid project request is submitted, preserve its original context, identify or create the appropriate contact, create one enquiry, and make the next action visible to its owner. Now the API connection has a business purpose and a boundary that can be tested.
Decide which system owns each fact
Before mapping fields, decide who has authority to change them. A website submission might supply a new contact address, while the CRM owns the company's account status and assigned salesperson. A project system may own delivery dates after the enquiry becomes an accepted project. Synchronizing all of those values in both directions can create conflicts that no screen explains.
Ownership is often specific to a field or lifecycle stage. The original request should remain available even if the CRM contact later changes. An updated company name may be a correction to the contact, not permission to rewrite every historical enquiry. An accepted project should not quietly return to an early sales state because an older event arrives late.
- Identity: Which identifiers connect a person, company, request, and destination record? What happens when the address already exists?
- Authority: Which system owns each field, and when can another system propose a change?
- Lifecycle: Which state transitions are allowed, and which ones require a person to decide?
- History: Which original facts must remain available after the current record changes?
An email address can be useful matching information, but it does not answer every identity question. Shared addresses, changed addresses, and several requests from the same person need deliberate treatment. The integration should preserve the distinction between a contact and an individual enquiry.
For an owner, the value is being able to understand the current state without asking staff to reconstruct it. That is the same product principle behind designing useful operational visibility: the record should support a decision, not just demonstrate that data was stored.
Choose delivery around the workflow
A direct API call, a webhook, a scheduled sync, and an automation-platform connector serve different needs. Choose according to when the business needs the result, how much delay it can tolerate, and what should happen if the destination is unavailable.
A direct request may be appropriate when the next customer action depends on an immediate answer. It also couples the customer experience to the destination's response. If an enquiry can be safely accepted first and delivered afterward, the interface can acknowledge receipt while the system records delivery as a separate state.
Webhooks can notify a product about external changes, while scheduled checks can reconcile records or collect changes where event delivery is unavailable. The delivery method is only part of the design. You still need to define what an event means, whether it is authoritative, and which action it can trigger.
In Calendy's product implementation, owner-subscription billing and transactional email are distinct handoffs. An external billing event concerns the business owner's subscription; sending an appointment email concerns a client communication. Treating them as separate responsibilities prevents one technical connection from becoming a misleading product promise.
For your project, ask a concrete question: if this connection takes longer than expected, what should the customer see and what can the team safely do? The answer is more useful than selecting a delivery technology because it appears modern.
Scope duplicates, delay, and correction
The ordinary path is easy to draw: receive a request, create a record, notify an owner. The exceptions determine whether staff can trust it. A destination may accept the record but fail to return an acknowledgement. A delivery may be repeated. A person may correct the original request while an older version is still pending.
The integration needs a way to recognize that the same business operation has already happened. Retrying delivery should not automatically create another enquiry or repeat an irreversible action. The source request and the destination result need enough durable identity to connect those attempts.
Delay creates a different problem. Events can arrive after the operation has moved on. Decide whether the integration should apply the old event, ignore it, or route it for review. That decision depends on the workflow; one general rule will rarely fit contact updates, cancellations, and subscription changes equally well.
Corrections also need an explicit path. A missing required field may be repairable by an operator. A revoked permission may need an account owner. A record that cannot be matched confidently may need a human decision. Retrying all three in the same way hides the real work.
- Classify failures that can be retried and those that require intervention.
- Record the current attempt and its relationship to the original business request.
- Make partial completion visible, including a record created before a later step failed.
- Define how corrected work is replayed without repeating completed actions.
- Agree how to compare source requests with destination records and find omissions.
Reconciliation is that last check. It asks whether the business records agree, rather than whether the connector logged a successful call. This is especially useful after an outage, a provider change, or a repair to the integration.
Give someone an operating view
An integration that fails quietly transfers its support burden to whoever happens to notice. A usable operating view should show what was received, what completed, what remains pending, and which cases need a decision. The person looking at it should understand the next action without decoding a technical log.
For the enquiry example, that might be a small queue with the original submission, assigned owner, delivery state, and a concise reason for failure. A permission error and an incomplete company record deserve different explanations. Access to retry or edit should match the person's authority.
Keep the original customer acknowledgement distinct from an internal completion message. Receiving a form is not the same as accepting a project. Creating a CRM contact is not the same as assigning the enquiry. Clear language prevents the interface from promising a state the operation has not reached.
Agree who reviews unresolved work and when. A monitoring alert without an owner is another disconnected handoff. The first release can use a simple operating process, provided it is visible, realistic, and part of acceptance.
Treat access and sensitive data as scope
Check the actual account and API capabilities before committing to a connection. The product may expose an API but limit the required action by plan, permission, or record type. A connector may support contact creation while omitting the enquiry assignment your team needs.
Define which system credentials are used, who owns them, and how account changes will be handled. The integration should have the access it needs for its purpose. A new staff member or a changed provider account should not require guessing which personal login keeps the handoff alive.
Decide which customer fields cross the boundary, where they are stored, and what belongs in logs. Operators need enough context to correct a failed request, but a troubleshooting view does not need every piece of sensitive data collected by the source. Retention, deletion, and access expectations should be agreed with the relevant business owners.
These decisions belong beside the workflow and recovery rules. Discovering them after the interface is finished can change the scope of the product substantially.
Define a useful first integration
Begin with a specific record type, a named source and destination, and one direction of responsibility. For the service-company example, the first version might accept validated enquiries, match contacts using agreed rules, create an enquiry record, assign an owner, and expose failed handoffs for correction.
It does not have to synchronize every historical field, replace the CRM, or build a reporting platform. Historical imports and ongoing events have different failure patterns and should be scoped separately. Two-way synchronization also adds ownership decisions that a first release may not need.
A native connector may already handle the ordinary path and the important exceptions. If so, use it. Custom development should address the gap that matters: unusual approval rules, identity matching, an unsupported destination, or recovery that the standard connector cannot provide.
Before a build, the brief should identify the records and fields, their owners, the trigger, acceptable delay, duplicate behavior, failure states, operating responsibility, and acceptance examples. That is enough structure to have a productive architecture and cost conversation.
Agree evidence of a working handoff
Testing should follow business cases, including a valid request, an existing contact, a repeated event, missing information, an unavailable destination, and a corrected failure. Confirm both the resulting records and what the customer and operator can see. A successful API response alone cannot establish all of that.
After release, review unresolved work, delivery delays, duplicate records, and the manual corrections staff still perform. Those observations help decide whether to improve the integration or change the operating process. They are more useful than counting connected systems.
Our software and API integration services start with that handoff, its constraints, and the amount of custom work it actually needs. Bring the systems involved and a few real examples so the discussion can move from a connection request to a dependable workflow.
Have a handoff that keeps losing context or creating manual work? Discuss the integration and its first-release scope with Ascenta.