Commerce integration guide
Shippo + UbiGrowth workflows
Shippo is a multi-carrier shipping API and platform covering label creation and tracking. This guide covers the records that matter, how the connection should be scoped, and what the first bounded workflow should be.
Introduction
Make Shippo part of the workflow, not another silo.
Validate connector availability for your workspace
This guide covers how a team designs a commerce workflow around Shippo with UbiGrowth: which records stay authoritative, how the connection should be scoped, what the first bounded workflow should be, and how to tell whether it worked.
The records that matter are Shipment, Rate, Transaction, Label, Tracking Status, Address, and Parcel. Shippo separates the Shipment (intent) from the Transaction (the purchased label), so a shipment can exist with no label and rates expire between the two.
Shippo is not currently on UbiVibe's verified connector list. This page is an implementation design reference: use it to specify the workflow, then validate whether the connection is available and correctly scoped for your workspace before you make it a dependency. The verified UbiVibe connections today are Salesforce, HubSpot, Gmail, Google Drive, Slack, and GitHub.
Grow is the usual destination for this connection, because the value shows up as outreach, reply handling, scheduling, and pipeline execution against the connected records.
Why teams evaluate this connection
Integrations create value when they remove operating friction.
The first design decision is not which API endpoint to call; it is which system owns the record, what event should trigger work, who owns the exception path, and what successful completion means.
Commerce platforms generate a continuous stream of events, and most merchants use almost none of it. Shippo records what was ordered and by whom, but the follow-up, retention, and service work that should follow from that record usually happens in a different tool with a different view of the customer.
The result is that the same customer is treated as new by marketing, as an order number by fulfilment, and as an unknown by support, which is exactly the experience that erodes repeat purchase rates.
You're likely here because
- Order data and customer follow-up live in separate tools
- Support answers order questions without order context
- Lifecycle campaigns run against stale exported segments
Record model
What a Shippo integration actually reads and writes.
Integration design starts from the objects the system really exposes, not from a generic connector diagram. These are Shippo's.
Identity and matching
Shippo separates the Shipment (intent) from the Transaction (the purchased label), so a shipment can exist with no label and rates expire between the two.
Start here
Consume Tracking Status webhooks and route exceptions — stalled, returned, delayed — to support before the customer asks, with the order and recipient address already attached.
What this will not do
It will not choose the right service. Rate shopping optimises cost; delivery promise is a commercial decision the workflow should be given, not make.
The constraint to plan around
Address validation is advisory for some carriers and blocking for others, so the same address can produce a label with one carrier and a hard failure with another.
Build notes
What you actually have to reason about in Shippo.
The fields that carry meaning, how the connection authenticates, and whether the event surface can be trusted. This is the part that decides whether the integration works in month three.
| Field | Why it matters |
|---|---|
| shipment vs transaction | intent versus the purchased label, with rates expiring between them |
| rate object_id | the specific rate being purchased, time-limited |
| tracking_status | the delivery lifecycle including exception states worth acting on |
| address validation results | advisory for some carriers, blocking for others |
| parcel dimensions | wrong dimensions produce carrier adjustments billed after the fact |
Authentication
API token with test and live modes clearly separated. Test mode produces labels that are not real, which is exactly the right development boundary.
Events and delivery
Webhooks deliver tracking updates and transaction events. Tracking exceptions are the highest-value subscription because they let support act before the customer complains.
Workflow
How the Shippo workflow runs.
The operating sequence, from reading the source system through to the result landing back where it belongs.
Step 01
Read order and customer state
Connected Shippo data provides the real order, customer, and fulfilment state rather than a periodic export.
Step 02
Resolve the customer
The customer is matched across order, marketing, and support systems using a defined rule, including the ambiguous case.
Step 03
Trigger from a real event
Follow-up is driven by an actual order or fulfilment event, so the message matches the customer experience.
Step 04
Run the lifecycle action
Post-purchase, exception, or repeat-purchase follow-up runs with the product and timing context attached, under review while it is being proven.
Design decisions
The commerce decisions this connection forces.
Each of these has to be settled before the Shippo workflow is allowed to write anything.
Step 01
Resolve the customer across channels
Decide how a customer in Shippo is matched to the same person in marketing, support, and any other channel, including what happens when the match is ambiguous.
Step 02
Treat order state as the trigger
Follow-up should be driven by real order and fulfilment state rather than by a periodic export, otherwise the message and the customer experience diverge.
Implementation path
How to implement the Shippo workflow.
- 01
Decide which records Shippo owns and which the workflow may act on, starting read-only.
- 02
Define the customer identity match across order, marketing, and support systems before enabling any follow-up.
- 03
Pick one lifecycle moment — post-purchase, fulfilment exception, or repeat-purchase timing — and instrument only that.
- 04
Once tracking exceptions route to support, add proactive customer notification so the customer hears from you before they ask.
Governance
Controls that matter.
Control 01
Order, refund, and fulfilment changes require explicit authorization rather than automated convenience.
Control 02
Customer messaging honours consent, preference, and channel rules.
Control 03
Payment and personal data stay in the systems that already govern them, at scoped access.
Failure modes
How a Shippo integration breaks in production.
Not generic integration advice. These follow from how this system actually behaves, which is why they look nothing like the list on the next guide over.
Symptom 01
Carrier adjustment charges appear weeks later.
Cause
Parcel dimensions or weight were wrong at label purchase.
Fix
Validate dimensions against the actual product data before purchasing.
Symptom 02
A label purchase fails for one carrier and works for another.
Cause
Address validation is blocking for some carriers and advisory for others.
Fix
Validate the address first and handle the carrier-specific outcome explicitly.
Symptom 03
A rate is rejected at purchase time.
Cause
The rate expired between quoting and buying.
Fix
Re-quote if the gap exceeds the validity window rather than retrying the stale rate.
What changes at scale
Label volume drives cost directly. Tracking webhooks scale well; rate shopping on every order is the expensive part and can often be cached by lane.
Examples
What a working Shippo workflow looks like.
Bounded scenarios rather than a feature list. Each one can be verified against work the team already does.
Shipping workflows
With Shippo connected, follow-up runs against real order and customer state rather than a segment exported last month.
Post-purchase lifecycle
A specific order event in Shippo triggers follow-up with the product and timing context attached, instead of a generic scheduled campaign.
Limitations and considerations
What to validate before you depend on this.
- Address validation is advisory for some carriers and blocking for others, so the same address can produce a label with one carrier and a hard failure with another.
- Purchasing a label is a real charge, and carrier adjustments for incorrect dimensions arrive weeks later. Automated purchasing needs dimension validation before it needs retry logic.
- When service selection is a commercial decision. Rate shopping optimises cost; the delivery promise made at checkout should be given to the workflow rather than chosen by it.
- Marketplace and platform policies constrain what can be automated around Shippo, particularly for customer contact; check the rules before designing the workflow.
- Order, refund, and fulfilment writes carry direct customer and financial consequences and need explicit authorization.
FAQ
Shippo integration questions.
What records does a Shippo integration actually work with?
The primary records are Shipment, Rate, Transaction, Label, Tracking Status, Address, and Parcel. Shippo separates the Shipment (intent) from the Transaction (the purchased label), so a shipment can exist with no label and rates expire between the two.
What should the first Shippo workflow be?
Consume Tracking Status webhooks and route exceptions — stalled, returned, delayed — to support before the customer asks, with the order and recipient address already attached.
What will a Shippo integration not do?
It will not choose the right service. Rate shopping optimises cost; delivery promise is a commercial decision the workflow should be given, not make.
What is the main constraint to plan around?
Address validation is advisory for some carriers and blocking for others, so the same address can produce a label with one carrier and a hard failure with another.
What changes about a Shippo integration at scale?
Label volume drives cost directly. Tracking webhooks scale well; rate shopping on every order is the expensive part and can often be cached by lane.
How does authentication work for Shippo?
API token with test and live modes clearly separated. Test mode produces labels that are not real, which is exactly the right development boundary.
Does Shippo support webhooks, and can they be trusted?
Webhooks deliver tracking updates and transaction events. Tracking exceptions are the highest-value subscription because they let support act before the customer complains.
What is the risk of writing to Shippo?
Purchasing a label is a real charge, and carrier adjustments for incorrect dimensions arrive weeks later. Automated purchasing needs dimension validation before it needs retry logic.
When is connecting Shippo the wrong call?
When service selection is a commercial decision. Rate shopping optimises cost; the delivery promise made at checkout should be given to the workflow rather than chosen by it.
What should a Shippo integration automate first?
Start with one bounded workflow that removes a measurable handoff, duplicate-entry step, reporting delay, or follow-up gap. Expand only after the first workflow is reliable.
Does UbiGrowth require Shippo to be replaced?
No. The operating model is designed around connecting to systems that should remain authoritative and building workflows around them rather than forcing a wholesale replacement.
Is connector availability identical for every workspace?
No. Availability can depend on provider configuration, authentication, scopes, workspace setup, and deployment state. Validate the required connection before treating it as an operational dependency.
Can follow-up be triggered by Shippo order events?
Yes, and it should be. Follow-up driven by real order and fulfilment state is materially more accurate than a periodic exported segment.
Can the workflow change orders or issue refunds?
Those actions carry direct customer and financial consequences and require explicit human authorization rather than automated convenience.
How is the same customer recognised across channels?
Through an identity match rule you define, including what happens when a match is ambiguous. Resolution is rarely perfect, so design for the ambiguous case.
How this access is governed
What ARIA is allowed to do in Shippo, and who decides.
Connecting Shippo is a permission decision, not just a setup step. These are the controls that decide what ARIA can reach, what it can change, what gets recorded, and how you take the access back.
Required permissions
ARIA works through the scopes the connection was granted, and no others. Authorization happens at the provider, so the permissions being requested are shown by the system itself before anything is connected.
What it can reach
Reachable systems are the intersection of what your organization approved in the connector registry and what the requesting identity is permitted to use. Identity resolves before execution, not after.
What it can do
Actions run through explicit execution paths with state, spend, and failure boundaries — a bounded worker path rather than an open-ended agent loop with a credential.
Credential handling
Credentials live in the governed connection layer and are resolved through canonical connection identity. They are not pasted into individual workflows, prompts, or generated artifacts.
Action logging
Execution carries state and traces: what triggered the work, which connection it used, and what came back — including an explicit failure when something did not run.
Approval and revocation
Consequential actions can be made to require a person to approve them. Access can be changed or revoked at the connection, and ARIA loses that reach without unpicking the work already completed.
Start with ARIA
Ask ARIA to run this integration.
Describe the outcome you need across this system. ARIA works out the scopes, data, and actions the job requires, and operates inside the access you grant — which you can change or revoke.
- ARIA acts only through the systems and permissions you connect.
- Connections use scoped credentials you can change or revoke.
- Actions are recorded, and consequential ones can require approval.
Start here
Turn the integration into a working business outcome.
Start with ARIA to describe the outcome, then continue into the product path that fits the workflow. Connector availability and required scopes should be validated for the specific workspace before production use.