Automating Shipping in Veeqo
In this article, I will outline what you’ll need to fully automate Shipping in Veeqo. We will be making use of Veeqo’s well documented API to integrate a shipping carrier or courier – provided that they also have a public API we can use. We will be using Integromat to make Veeqo and a Shipping Carrier talk with each other.
Currently, Veeqo supports 24(just 23 actually) carriers and they’re directly integrated into the platform. Using any of the below carriers, you can order a shipment without leaving the Veeqo platform and Veeqo will take care of sending out requests to the Shipping Carrier you use (so long as you’ve set them up beforehand). Any other carriers not mentioned below are still usable with Veeqo and this is covered by the third option “3. Other” shown below.
(The number will be important later as they’re the ids required to send API requests to Veeqo)
Veeqo supported Shipping Carriers
1: Royal Mail
2: FedEx
3: Other
4: DPD
5: UPS
6: CityLink
7: USPS
8: Interlink Express
9: DHL
10: MyHermes
11: Australia Post
12: Parcelforce
13: TNT
14: Yodel
15: APC
16: DX
17: UK Mail
18: Israel Post
19: Canada Post
23: Hermes World
24: DHL DE (Deutsche Post)
Using “Other” shipping carriers means that you will have to export the data out of Veeqo and import it into your shipping carrier’s system. This means you will have to work with CSVs (again), tidy up the data to conform with what’s expected, and fill out the data manually for missing information. Depending on the volume of orders and shipments you process each day, this could mean hours of mentally intensive, unrewarding, and exhausting work.
What if there was a way to make Veeqo and any Shipping Carrier talk to each other?
There is a way!
We’re already provided a way on the Veeqo side of things to manage orders, shipments, tags, etc outside of their User Interface thru their API. What you need to find out is if your preferred Shipping company has a public facing API – preferably a REST API.
What you’ll need
- Veeqo API Key
- Integromat free account (register here)
- Your Shipping Carrier Documentation & Relevant API keys/secrets
How it works
- Create a custom tag in Veeqo (example: “Ship this order” tag)
- Apply the “Ship this order” tag to Veeqo orders – make sure the orders are in “Ready to Ship” stage/status
- From Integromat, do a GET request using HTTP modules for orders in “Ready to Ship” that has the tag “Ship this”
- Do a POST request to your preferred Shipping carrier’s API to create a shipping order with them
- Do a POST request to Veeqo Shipments API to ‘move’ the order into “Shipped” status
- (Optional) leave notes or send custom emails
Getting your Veeqo API Key
Log into your Veeqo account and navigate to Settings > Users. Select a user by clicking the “edit” pencil button. Scroll down and find the API Key section. Take note of the API key and save it somewhere safe. DON’T SHARE IT WITH ANYBODY
Veeqo API Documentation here: https://developer.veeqo.com/docs
Integromat Setup (Free)
Create an account here: https://www.integromat.com/?pc=autoxyz
Getting your Shipping Carrier’s API keys
Most of the modern shipping carriers will have a “public” API that any authorized user can query. To get “authorized”, you will need an API key. Depending on the shipping carrier, you might already have an API key included in your account; you may search the settings page for it. If not, you might have to talk to a service representative or your account manager.
Once you’ve got your API keys, head over to their API documentation for information about what kind of format their APIs expect.
Sample API docs from Parcel2Go: https://www.parcel2go.com/api/docs/
Writing the automation in Integromat
To better understand how automation works in integromat, we need to keep two words in mind: Trigger and Action(s). On a particular workflow (called “scenario” in Integromat), there would be exactly 1 trigger which will be followed by action(s) when the trigger condition is satisfied.
For our case, our trigger would be scheduled to run every day before 12noon. So the only condition to satisfy is if it is 12:00 pm – then the whole automation will run.
As you can see above, we’ll only need a minimum of 5 modules to make this automation work.
Tag orders > Create Shipping Orders for them
First Module: GET Veeqo Orders
The first module ‘GET Veeqo Orders’ will return JSON data.
Second Module: JSON (Parse JSON)
The second module will divide the data into bundles; each bundle containing 1 order.
Third Module: POST Shipping Order to Carrier
3rd module: for each bundle created by the parser from module 2, we POST (request) for a Shipping order to be created. Depending on the authentication method or the format their API expects, more modules might be needed to Transform the data to something that their API understands.
The Veeqo GET Order from the first module also already includes the information about the product line items. Information about the Product Name, weight, volume, and SKUs are already included in the Response object returned. Most of the time, It will only be a matter of plugging them into the request to properly send the products with the Shipping Order request.
Fourth Module: Create Veeqo Shipment
Send a POST request to the Veeqo Shipment API to move the orders from awaiting_fulfillment or “Ready to Ship” into “Shipped”. Equivalent to adding a Tracking number on the UI.
Fifth Module: Remove “Ship this order” tag
We’ll need to remove the tag so that it doesn’t get triggered again on the next run. Well, technically, it won’t be fetched on the next run because the order would have moved out of “Ready to Ship” which we queried on module #1.
Note:
To find the id of your tags, you will have to call the Veeqo Tags API. A simple GET request to https://api.veeqo.com/tags with no parameters and no payload will return a list of all tags with their IDs and names. To do this, use an HTTP module in integromat and send a GET request to https://api.veeqo.com/tags. Make sure to tick the checkbox for “Parse response” to get data in a prettier format.
Conclusion
By applying tags to orders, we “marked” orders for Shipping Order creation. Automations in Integromat searches for those orders and send the Shipping Order requests for each one. Finally, after the Shipping Orders are sent, the Orders in Veeqo are moved from “Ready to Ship” into “Shipped” by inserting a Tracking Number into the Order via Veeqo Shipment API.
For the person managing the shipments, all that needs to be done will be to apply a tag before a “deadline” or schedule that you set your automations to run. For businesses that process hundreds of orders a day, this could mean man-hours savings of a couple of hours each day. For smaller business that process less, this means that an employee will never have to deal with spreadsheets and the probability of human errors that come with it. No more copy-pasting; no more working with CSVs; no more errors that you will have to fix down the line, taking up more of your time.
Let the machines talk to each other so you can focus on the things that add value to your business
Stay tune for Part 2! Shipment Tracking at-a-glance with Veeqo Tags
SECTIONS
- Getting your Veeqo API Key
- Navigate to Settings > Users
- Select a User
- Copy API Key
- Use Veeqo API Docs for reference
- Automation Triggers/Action
4. Write API requests to create orders to your preferred shipping carrier (Integromat)
5. Marking orders as “Shipped” in Veeqo
6. Creating Notes/Tags to provide more info
Adrian Peck
Owner, Entrepreneur & Author
Adrian Peck - Founder of Digital Teams and Author of "How To Fall Back In Love With Your Business; The Entrepreneur's Guide To Rediscovering Your Mojo And Enjoying Every Day By Living Your Dream"
Adrian’s first book, How To Fall Back In Love With Your Business was published in 2019 has been an Amazon Best Seller. It has inspired many more Business Owners to fall back in love with their business.
Adrian's greatest passion and life mission...
"To enable ambitious Entrepreneurs to build successful businesses and together we change lives"
Digital Teams are experts in delivering digital solutions that will revitalise your business. Our digital applications include bespoke customized dashboards, app modernisation and even attendance management solutions. Contact us today to begin your digital revolution.
RECENT BLOG
Automating Your Business: What you Need to Know
The world is becoming increasingly automated. This is not just because of the rise of artificial intelligence, but also because of the integration of digital technologies into every aspect of our lives. This article will explore how automation can help your business...
Efficiency – Step 4: Train & Implement
Today we see the fourth and last step to becoming faster, slicker, and efficient - Train & Implement. If you have missed the first three steps, read them here: step 1, step 2, step3 Train & Implement One of the biggest mistakes businesses make when...
Efficiency – Step 3: Map New and Add Technology
Let’s dive right in, into step 3 (find step 1 and step 2 here). Map New It’s time to re-map your customers’ journey. The objective is to take as many steps out of the process as possible. Steps are the bends on your race track, they’re going to slow you down. The...
Efficiency – Step 2: Business Review
You’re here I assume because you already read the first step to becoming faster, slicker, and efficient and have done mapping your current processes. Ready for business review? Here is the second step: Business Review Every business tells me “But this is our industry...
Efficiency – Step 1: Map Your Current Processes
So, I have been talking about the efficiency of business processes in the previous blog (read it here), and here is the first step to becoming faster, slicker, and more efficient. Here is a simple four-step process to follow to become efficient: Map your current...
Business Automation: 4 Ways To Become More Efficient
Business automation can play and should play a big part in your business. So much more can be achieved for less cost by using technology and business automation tools. “It is not the most intellectual of the species that survives; it is not the strongest that...