Videos » How-To's & Tips | Software

Integration with | ShipHero WMS Guides

Build powerful automations with ease. No coding is required. Discover the benefits of ShipHero modules for queries, orders, shipments, and more. Respond instantly to events like shipments and inventory changes using Make. Connect with Stripe for billing and Weather integration for perishable items. Stay updated in real-time on statuses and holds. Streamline your business processes today with Make and ShipHero.

ShipHero Integration

ShipHero API Developer Resources

Video Transcript
- Hello everyone and welcome to another or new episode of ShipHero Feature Walkthroughs, or maybe Integration Spotlight. I'm joined today by Yosef Haas, our VP of product. So how are you today, Yosef? - I'm doing great, and how are you? - Awesome. I'm doing great. So I'm looking forward to learning more about ShipHero and its amazing features and integrations. So today, we're exploring a new integration. So what is - So is an automation platform, allows you to automate tasks that you may previously have to do manually, one at a time. It's a great platform, you can build integration to pull data from many different sources, and now you can pull data from ShipHero and also do updates in ShipHero. So yeah, it's a great no-code platform. A lot of drag and drop as you'll see. Easy to work with and easy to build some really nice automations. Today, what I'm gonna do is walk you through just an example automation using the ShipHero app. So I'll give you an overview of what the automation does, show it running so you can see it actually works, and then we'll go through and actually build this automation from scratch so you can get an idea of how the process works. So what you see in front of you is what may cause a scenario, and that's just basically an automation that you can build and run. And these automations can be run either manually, one at a time, it can run on schedule, it can run based on some other triggers, so, you know, Make has a lot of different approaches to the scenarios. In this case, we're just gonna, you know, have it run manually so you can see it working. So this scenario basically takes data from a Google Sheet and updates an order in ShipHero. So in this example, let's say I have a bunch of orders in ShipHero and I wanna change the email address in bulk. So I have a Google Sheet, and then using this scenario, it's going to pull the data from the Google Sheet, find the order in ShipHero, update it, and we even have some, you know, exception handling so that if the order's not found or the email's already updated, and so based on the different results, there's different branches of what happens in this scenario. Okay, so let's see this in action. So on my screen, I split my screen and I'm showing a spreadsheet, a Google Sheet, on the left side, on the right side is this Make scenario. And as you can see on the spreadsheet, I have an order number, I have a shop name, I have the email that I wanna update it to, and then I have the status, and that's gonna update with what actually the status or the result of the operation is. So just to show you in ShipHero, you can see that the email address on this order is, and I'm gonna change it to make7. That's just on that first order. So first let me run it, so you can kind of see it in action. Keep an eye on this column here, and then on the right side, you'll see things spinning as the numbers popping up, we'll talk about that, what that all means. But you can kinda see it actually progress as it goes through the operation. So I'm gonna hit run, and see things starting to happen. All right. And then you can see column D, and that's it. So what happened here? So first of all, the scenario ran, it pulled this data from the spreadsheet, it found the order in ShipHero, and it updated it. So the first one it says success updated, just to show you, if I refresh this order, it does indeed say make7, so it worked. The next one says success already updated, and basically that means that the order already had that email address, so we don't bother updating it. We just said it's already been updated. And the last one is just an example of the order is not found, so we looked for the order in ShipHero, couldn't find it, so we put that result here. And all this of course customizable, you can decide to do whatever you want based on different results, but that's just how I built this scenario. So let's just take a little close look at the scenario itself and then we'll go through actually building this from scratch. So all these round circles are essentially modules. Make refers to them as modules, and a module can really be anything. They have over 1,600 integrations that have different modules, and that's how you define what should happen in your scenario. Scenarios, you read from left to right, so this is the beginning, and then you kind of see all these dots connected to modules and then the branches that come out from here. So the first step here is Google Sheets. So Make has a Google integration, you connect to Google, you tell it what sheet, and you basically tell it to pull the data from that sheet. And then we use the iterator module to go through each row on the sheet. Then we use the ShipHero module to get the order itself, and then we use this router to decide what to do, and that's where those different statuses come from. So if we see the order needs to be updated, we go to the update order, and then we output the result. If we see that the order's already been updated, we just go straight here and update that to where it said success already updated, and if we see there's an error, we can't find the order, we go to this branch and we update it to an error. So that's basically the, you know, how the scenario works and the workflow of that scenario. And again, you can build your scenarios to do anything you want. This is just an example of a couple different modules and some of the functionality that Make has. So let's see how to build this module from scratch. So here's a blank scenario on Now the first thing you'll need to access ShipHero is a ShipHero API key. And you can get that by going to your ShipHero account developer users and add a third-party developer. Fill out this form and you'll get a API token and a refresh key. Once you have your refresh token, copy that, and that's all you need. You don't actually need the access token from the developer account. The integration with Make that we built will actually regenerate that using the refresh token. Now, back in Make, we'll start by adding that first Google Sheet module. So click on that plus, and you can see here all the different apps and integrations that Make has, so we'll just search for Google and choose Google Sheets. And then you see the modules that are part of that integration. So within an integration or within an app in Make, there's different modules that have been built, and modules are basically just prepackaged functionality, so you can see some of the different things you have for adding rows, update rows. What we want for now is get range value. Then you need to connect to Google and just do that by clicking Add. It's sign in with Google, and it'll take you through the process of connecting to your Google account. You only have to do that once. Once you have that connection, you can use it in any Make module. The next thing is to find the Google Sheet you wanna use. So easiest way to do it is, you can select from a list, and then click here, choose a file, and you can actually search for the file you wanna use. So I'll choose my Make demo file, and I'll use the order update sheet, again, that's just based on the file I'm using. And the range you wanna look at, you go back to the sheet, it's just gonna be A through D. So it's just these, you know, this range of columns that we wanna use. So we'll do A through D. Let's contain headers and A1 to D1. And that's it. So now we've set up and connected to the sheet we wanna use. So next, we'll add the iterator, and we do that just by clicking Add Another Module, and we can just search for iterator. That's a module that they built. It's part of their flow control. And now we have to tell Make where is that data coming from, what is the array of data that it's using. So click on that and you can see it's actually made it very easy for us. What it does is it pulls in the columns from that Google sheet. So all we have to do is select them. And for our purposes, while we need our order number, shop name, and the update status, and you'll see why we need that in a minute. That's all you have to do is you click on that box, choose the ones you want to use, and it okay. Now, once we want to do is, first of all, we don't want to use the header, right? We have the header column, we wanna ignore that. Obviously we don't need that, that's for our scenario. We also wanna ignore any rules that we've already updated. So what we'll do is we'll click on this little wrench icon here and set up a filter. And what's that's gonna do is allow Make or allow us to tell Make which rows should I ignore, which rows should I actually do something on. So I'll set up the filter, I'll just call it skip, call anything you want. And then we wanna do is we want to, in this case, you wanna look at the row number and say greater than one. So basically we only want to do something on rows that are greater than one. That means we're gonna skip that header, that header column. Now we'll do update status, and we'll say does not equal or does not contain success. What we've done here is we've added a couple of filters where we don't wanna look at the header row and we don't wanna look at any rows where the status success or contains success or contains error. And that basically means if we rerun the scenario again, it's gonna ignore any of the ones we've already done. We don't wanna waste, you know, waste time, and waste operations on updating things again or updating ones that are errored. We just skip those. So now we want to add the ShipHero module. So all we have to do is search ShipHero and choose the module we want to use. So you can see the modules that we've built so far. We do plan on adding more. But right now, the one we want to use is the Get Orders module. Choose the connection to ShipHero. This is where you would put your refresh token in. So you just paste in your refresh token that we got before and give your connection a name, and that's going to authorize at ShipHero and complete the connection. Okay. Now, in the ShipHero Get Order module, what you have to do is define your filters, and that's done easily by clicking on the Add Search Criteria. What we wanna do, if you remember we had the order number in shop name. So we're gonna use those to find the order in ShipHero. So the first filter, we want to use order number, and we have to get that from the spreadsheet, and again, Make makes that very easy to do. So we just click on 'Value' and we choose the order number column from our spreadsheet. And then the second filter is shop name. And again, we'll pull that from the spreadsheet. And since we only really want one result, we'll just change the quantity to one and hit okay. So now so far what we've done is we've set up Make to pull the data from Google, go through each one and find that order in ShipHero. Now we need to add the router to decide which branch to go to. So we just click on our 'Flow Control' down here and go to router. And every time we click, we'll get another branch. So we'll add a couple branches and how we need to define what each branch is gonna do. So we'll do the first branch for the one where we wanna actually update. So first we're gonna do a filter. And again, so we only wanna update if obviously we found the order. So the order exists. And the email on the order doesn't already match what we have, what we wanna update it to. Here we're gonna add the condition where the email from the order, and then this red is from the ShipHero module. So these are the fields that we can look at from the result. So we'll say if the email does not equal, we'll do case insensitive the email from the spreadsheet. So if the email on ShipHero doesn't match the email on the spreadsheet. And we'll just say ID exists, that tells us we actually found the match. So we found the order in ShipHero and it doesn't match the email on the spreadsheet. We wanna run this module. This module is going to be the ShipHero, update order module. And again, we'll use that same connection we already set up. And in the update order, we need to add two pieces of information. First of all, we need the ID of the order. So here, we'll just use the legacy ID, can use the ID as well. And then we need to put in the fields to update. So email address and ShipHero comes under the shipping or billing address. So do field email address, and we wanna update it with the data from the spreadsheet. So we'll just scroll down to our spreadsheet and choose email. So basically all this is doing is going to use the ShipHero API to update the email address of this order. And the last piece is to update the Google spreadsheets. Remember, we update it to say success. So we will add the module, which is Google Sheet, and we'll choose update a cell. So here again, we have to choose the sheet that we wanna update. And now for the cell, remember it's gonna be column D. So in order to define that we just do D and then the row that we're working on the spreadsheet. So we do row numbers. So row number is something that Make exposes in that module. So we wanna update, if we're on the second row, this would be D2, and the value is again, we'll just call it success, updated. Now let's look at one or let's add the branch where the email address has already been updated. So again, we'll make a filter. And in this case, the condition will be where the email equals the email on the spreadsheet. So we'll do case insensitive. So basically if the email address and ShipHero already matches the email on the spreadsheet, we're gonna go on this branch. So we'll just do that same Google Sheet and we'll do update a cell. And then for this one, we'll just do success already update. And our last one, we'll do set up a filter, and this is gonna be for the branch if the order was not found. So we'll call that error. And here, we'll make this a default router. So if for some reason the other ones don't run, this will run, there was some type of error, and then we can go and look at that. So in this case we'll do the ID does not exist, which means the API did not return any results and that order was not found. And then we'll do the same Google Sheet update of cell, and we'll call it our order not found. That's our scenario. Now let's see if it actually works. So lemme go back to my spreadsheet, and I'm just gonna clear these out 'cause again, we had that filter so that if there, you know, if it does hit success or whatever, it's gonna skip it. And lemme change this to make8, just to show that it actually works. Back on the order, you can see it's make7, which we updated to before, and what we would expect and hope is that if we run that module changes to make8. So let's run this module, and we'll watch it a little closer. You can see it's going through getting the order, found it, and it's updating the order in ShipHero. Looks like we had a success. Next one's already updated and this last one we got that error. So I think it worked. Let's go back to the spreadsheet and see, and it did work. And let's double check on the order in ShipHero eight. So it all worked. So, again, a very simple module conceptually, but you can see kind of how that's set up. Now a couple things keep in mind. First of all, just to show you kind of what these numbers mean is. I can go in and see what the actual results were. So if I click on that, I can see each operation and what it actually found. So like in this case it found this order, here's all the details of the order. I can see the operation of updating it. So what I updated it to. So if something weird is happening. You wanna understand what's happening, you can go and actually see what Make did for each one of those operations. If there's an error, it'll show you that as well. So it'll show you either the error from the API or some error in your configuration on Make. So they make it really easy to kind of dive in and see what actually happened when this scenario ran. Another thing to keep in mind is each one of these things that runs is what Make's called an operation. And actually if we go back to our integration or the scenario, we can see history, and see every time we ran and the details. But one thing you wanna keep in mind is that time I ran, it was 11 operations. So each operation, and that's important because operations are how Make charges. So if you go to their pricing page, you can see how many operations are included in their pricing plans. But keep in mind, you know, looking for and updating three orders was 11 operations. So this Make works phenomenally well for doing these types of things, but at huge scale, that's where some of the costs may start adding up because they do charge for operation and doing something even though it's fairly simple, you know, running it once was 11 operations. I definitely recommend looking at your scenarios and understanding how many operations you expect to use. Sometimes you can cut out certain operations, you know, maybe we don't need to update it differently, if it was success, we can just skip that one, or, you know, combine some of these operations. But that is something to keep in mind because even while you're testing and you're developing your scenario, you may go through a lot of operations and that could add up. Another thing Make is really great for is doing proof of concepts for workflows. So if you want to build out some workflow using the API, but you want to just do it fast and just see if it works and, you know, prove it out, Make work great for that, and then if you see it's using too many operations, you can always use the API directly. But being able to do that using this user interface makes it a lot easier than running a lot of code. So it's another great use case for Make. - So clearly this new tool integration has a lot of potential and it's super useful. So Yosef, do you have any recommendations for anyone who wants to start building a new automation or scenario on - Yeah, so Make has what they call templates, and you can, you know, go to templates and just kind of see what's possible. One thing we will be doing is publishing the scenario we just built as a template so you can just, you know, get started with it, and templates allow you basically to use the scenario that's been prebuilt, and, you know, you plug in your authentication, you connect to Google, you use your API key, but you can basically use the exact same, you know, steps that we built. But you can also see Make has many, many prebuilt templates. You can build your own and share them as well. But, you know, the possibilities are endless, limited only by your imagination. But yeah, I definitely recommend just, you know, finding a template that you want to use, creating it, right, creating the scenario, and just looking through it, running it, seeing how it works so you understand kind of that the Make workflow. Another nice thing you can do is every scenario that's built can be pretty easily shared. And the way to do that is if you go into this scenario and export the blueprint, and the blueprint is basically a JSON file that, you know, defines the scenario. So, you know, this can be shared, you can send somebody, they could just import it and, you know, paste it into their scenario builder and it'll add all the modules. So this is a great way of sharing a scenario that maybe you built, you want someone else to use it or someone else to see it. Those blueprints can be exported and sent to anybody. So if you make a really cool scenario, you wanna share it, you can take your scenario and create a template out of it, and then, you know, publish it and share it with the wider community. So if you come up with a great workflow that involves ShipHero, you know, feel free to make a template, and you know, other people can take advantage of the same thing. We did also add a category to our developer community so you can discuss, you know, different scenarios, different workflows that you build, ask questions about the modules, the ShipHero module. We can't really provide support for Make itself. So if you're, you know, if you're having trouble setting up your scenario, Make has their own community, they have, you know, many videos and a help site to help you with that. But if you do have any questions about the actual ShipHero modules or requests, recommendations, feedback, we'd love to hear about it at So that's an overview of Make. Again, I definitely recommend exploring it, creating a free account, seeing what you can do. It's really easy to get started. So use a ShipHero modules, get some orders, update some orders, and think about how you can use this to make your day-to-day job easier and more efficient. - Awesome Yosef. Thank you very much. This integration is really, really amazing, has tons of potential. Like like you mentioned, the possibilities are endless. And so if you'd like to check out other feature walkthroughs on the top right partner right now, and if you're ready to unlock your eCommerce fulfillment superpowers, visit to schedule a call with us. Thank you for watching and have a great day.
Related videos
Title card for Ep11 of Warehouse Operating System Series: How to run a warehouse step-by-step

How to Run a Warehouse: Step-by-Step | Warehouse OS Series Ep 11

Discover how ShipHero's DFW warehouse effortlessly tackles every task - from Receiving to Returns. Operations Managers Gerald Adams and Hilda ...
Title card for Ep10 of Warehouse Operating System Series: Master Special Projects

Breaking Down The Process: Special Projects | Warehouse OS Series Ep 10

Have you ever wondered how Special Projects are handled? Well, you can learn all about the process and guidelines from ...
Title card for Ep09 of Warehouse Operating System Series: Our Warehouse Account Manager Team

Our Warehouse Account Manager Team | Warehouse OS Series Ep 09

In our latest installment of the Warehouse Operating System video series, Aaron is sharing one of our biggest game changers ...
Title card for Ep08 of Warehouse Operating System Series: Creating a winning warehouse

How to Create a Winning Warehouse | Warehouse OS Series Ep 08

Take a peek inside ShipHero’s Jacksonville warehouse with GM Logan Bates and CEO Aaron Rubin. Learn how to create an ...