Transformational IT Summit

May 25, 2022   |   9am PT   Register Now

In this session, we walk through how to build an integration flow with Celigo This session is good for all users (business or technical) whether you are new to or want a refresh. During the demonstration, our Solutions Consultant walks through a common use case for ecommerce companies: connecting an ecommerce platform to a logistics provider. This is a great opportunity to see our new user experience in action.

Thousands of ecommerce companies rely on Celigo’s integration platform to enable smoother, more efficient operations with fewer technical resources. With Celigo’s library of pre-built temples and connectors you can get started quickly and expand. 

Topics discussed include:

  • An introduction to the Celigo (new User Interface)
  • Overview of templates, application, and universal connectors
  • Live demo: building an integration flow
  • Overview of Advanced Capabilities
Full Webinar Transcript
Welcome and thank you for joining our session, Intro to Ecommerce Integration, Build a Flow with Celigo My name is Kristie Conner. I am the Director of Product Marketing for Celigo and I’ll be moderating the session. The main attraction is Adel Haider, one of our talented solutions consultants. He is going to demonstrate how to build a flow from start to finish. We selected a common use case for e-commerce companies, connecting an e-commerce platform to a logistics provider. This is a great session whether you are new to Celigo or have been using IO. And if you have not already signed up for a free edition account, we’ll highlight at the end of the call during the Q&A how you can sign up for a free account. And if you have not yet tested the full power of, we’ll highlight how you can activate a free trial for 30 days. This session will be recorded and available on demand. We look forward to your questions, so please start posting them now and we will answer them during the Q&A. So let’s get going, Adel. All right. So thank you for that, Kristie. Good morning. Good afternoon. Good evening, everyone. Hope everyone is doing well today. The agenda for today’s session is, as you see there, we’re going to be discussing a use case, which Kristie has already mentioned. I’ll also be explaining how you piece the building blocks together to build that. And then, at the end, we’ll talk about the actual trying it out. So let’s get started, as Kristie says. The first thing I’d like to do is to provide you with an overview of Celigo. Just Celigo at a glance there. And this is for the benefit of those who perhaps are unfamiliar with us or might be the first time you might be hearing about us. So who are we and what do we do? Well, we are a NetSuite platinum partner. We are also listed in the Gartner Magic Quadrant, which in itself is a feat. And last but not least, we are also a G2 iPaaS leader. Now what is an iPaaS? That leads me or leads us also in this journey onto what we actually do. So we provide an integration platform as a service. That is a fancy word to explain that we are providing a platform which allows you to connect several business applications. Now with that– that’s not the only thing we provide. We provide many other things on top of that. But one of the other things very, very important as well is our deep expertise in e-commerce. So we have built integrations within the e-commerce space many, many, many different– many, many times with several different use cases. So we really understand how it all fits in together. Now that platform that I was saying before, that is built for IT and operational type teams and departments. But it’s also– and that’s and there– for line of business employees, line of business people as well. And the idea here is trying to cater for both ends of the equation. Last but not least, we do provide best in class integrations for SaaS application. This is cloud-based applications you’ll be running within your organization for a number of different purposes. Right. Now, there are typically two landscapes when it comes to integration, broadly speaking. There’s the e-commerce landscape, which is what we will be covering today. And then, there is the software landscape. Now the e-commerce one, as you can see, has all things related to e-commerce, things like storefronts, points of sale, trading partners, marketplaces, and a number of others as well. Now, even though today we will focus on one particular use case which will imply obviously two platforms, two systems, to SaaS,] be an e-commerce platform and a logistics platform, we can connect to any number of applications. So the ones you see on the screen this is just a subset of the ones we can connect to. And also bear in mind at the bottom in the center there you will see generic connectors which means anything which is not on here or you don’t see on our website we can still connect to so long as they support one of the communication mechanisms or interfaces that you see there. And if you’re in doubt or for whatever reason whether we can’t support it please reach out to us. Now even though today is about building a flow from scratch it is not necessary to actually do so. Without platform with Celigo – We do offer pre-built integrations. That’s what we call integration apps. These are off the shelf solutions which live exactly on our same platform and the idea is that you can use them as they are or make some slight adjustments like configurations to cater for a specific integration use case. They rely on best practices from a business perspective as well as from a technical perspective, a technological perspective. So you do not have to worry about that in that sense and as the platform is very user-friendly, as you will see, it really does make for a fast-like experience for a platform as a service. It’s one very unique thing out there in the market. On top of that, we offer templates as well. Templates you can think of as blueprints. They’re similar to integration apps but actually what they are is– where they differ, I should say, is that you have full flexibility in what you can do with templates. You feel free not to use them at all if you don’t want to or you can use them and to leverage that as a means of learning and learning experience of how to integrate on our platform or you can even take it a step further and use that to learn of specific use cases or the way in which you should implement a use case that you might have in mind. Okay. Now on to today’s use case which is the main attraction. So we will be focusing on Magento and ShipStation. That’s going to be the two systems. The two platforms in question. Magento being the e-comm platform and ShipStation being the logistics one. You might be thinking why connect these two? What use cases? Well, if you haven’t guessed it already here are two common use cases that you’ll see when integrating these two systems. One is moving orders from Magento over to ShipStation for delivery and then the other one is bringing back the fulfillment information or shipment information back into Magento such that any emails can be triggered off from there over to your customers. Today’s particular use case we’ll be focusing on the one at the top which is bringing the orders over from Magento to ShipStation. Now without any further ado, I shall now move over to the platform so we can actually implement our flow. Before doing so let me walk you through the platform just in case this is the first time that you are looking at the platform or the first time seeing this. When you first login after signing up for a free account, for example, or even for a paid subscription what you will see is what you see here on the screen with the exception of these tiles. These tiles are on my account and one reason I’ve placed them there is for your benefit for you to see– or rather for your benefit, pardon me, for you to see how things are placed. Let’s start with a little bit of a walkthrough on the left-hand side here. When you first login as I said you will see this set of options. First one here is the tools. Now there are a number of tools that are at your disposal for several different things some of which are the flow builder which is building flows of information between two systems and that’s actually what we’re going to be using later on when we start building our flow. There is also the data loader that’s useful for bulk loading of information. The use case there is if you’ve onboard a new application or even replaced an existing application and you need to migrate information in bulk. Then you can use data loaded for that. And other use cases also if you happen to have things in a file-based, happen to have information in file-based format, and you need to convert that into something more meaningful, and push that across to a specific business application. Last, but not least, is the developer playground that’s useful for the more adventurous amongst us, the more technical. Those who really want to get their hands dirty with the nitty-gritty things as well. Now, in terms of resources, these are the actual building blocks within Celigo, apart from, obviously, the previous integrations, as I mentioned before, and the templates. Everything is built upon these building blocks. Pardon me. Now, these building blocks are reusable across the platforms. So things like connections, imports, and exports, you build them once, and you can reason across different places. And when I say build, you’re actually just going through a menu and configuring and inputting certain details that platform requires. And I will walk you through each of those as well, as in when we are actually building the flow. There’s also such things as scripts and agents for on-premise use. Scripts are for the, again, more advanced functionality you might want to do. So, for example, if you want to implement something very technical, very advanced, you can actually do so with javascript. So on our platform and hook that up in certain places, which, again, I will show you when building the flow. Now, the platform wouldn’t be complete without a way to ask for help, and that’s exactly why the help section here is in place. Now, there are two main things to highlight here. The help center itself, which is actually a place where you will find a number of different articles. It’s a knowledge-base, as it’s sometimes called. A number of articles written by people from Celigo, but also from some of our partners with some comments as well from existing customers, as well on how things are actually done. It’s a good resource to search, in case you get stuck on actually implementing something, or even if you just want to explore. If you do, in fact, encounter something which is very complicated or you have not been able to find the answer for in the help center, by all means, please submit a ticket straight to our support team, and they will get in touch with you to provide you some further assistance. Now, if you are looking for something a bit more structured, there is the Celigo University where you will be able to get learning paths there. You can follow those. And once you finish the learning path, and you’ve got more acquainted with the platform, you really do understand how things work, you actually do get certified as well. It’s a fantastic way to learn but, also, to feel a sense of accomplishment and achievement. In fact, all of our certified partners do go through this learning path themselves, in order to know how to use the platform and how best to design integrations. Last, but not least, again something which is quite unique to Celigo is the marketplace. As the name suggests, it is a place where you can find a number of different integrations that you can use. The templates and the prebuilt integrations that I mentioned about before, this is where you would actually find them. What you would do, for example, if I was to search for Magento 2, then I can find a number of prebuilt integrations, the integration apps, but also the templates themselves. And the same thing would apply for ShipStation as well, as you can see here. Right. Now that we’ve seen the lay of the land, shall we say, let’s start with actually building and integration. Now, the first step is perhaps this. First step is to create here a tile. This is what one of these things is called. These squares are called tiles. The purpose of that is to group a number of flows of integrations, flows of data between two systems. I’m just curious. I’m going to put it as Magento 2 to ShipStation, and I’ll put it as part of the build a flow – let’s do that. All right. Anyway, now that we are ready to start building flows themselves, we can start by selecting this. And this is an empty canvas of flow. What you do in order to start working on this is creating a source which is where you create what’s known as an export of information extracting information from a specific system. Once that is done, you then create an import which is the opposite, of course, importing information into a system. And then finally a mapping between the two. And we’re going to go through each of those steps individually. Let’s start by adding a source. Now, you can see here that the first thing it’s asking me to do and the first thing it will ask you to do as well is to select a specific application. At the very top, you see the most generic ones for databases and for universal connectivity as well. But as you go down the list of 150+ applications, you will see several of them here. All of which are also listed on our website. Now, for simplicity, you can of course type ahead searching for an actual system in question. If you do find that system here, that means we have a pre-built connector for it which means we can communicate. We can talk to that system very, very easily. Now, in this case, I already have a connection to Magento. But for the purposes of completeness, I shall show you how you actually create a connection. As I mentioned before, building is essentially filling in the details. So in this case, if I want to create a connection to Magento, I will fill in the base URI, the username, and the password along with the token as well, and you will do exactly the same thing. All you would need is to verify this information– obtain that this information, I should say, from your Magento instance. And once that’s done, you can test the connection as you see here on the bottom right hand corner. And then assuming that is successful, you can then save and close. Now, in the interest of time, I have as I said already one connection in place, and this is where you start to see the artifacts and the components of the building blocks being reusable. Now, I mentioned before the concept of an export because what we’re building now. You’ll see here I can actually select a preexisting one if I wanted to. And you’ll be able to do the exact same thing on the platform as well. This is where you start to see the modularity of the platform where you can really reuse what you’ve created making the best use of your time. However, for the purposes of today, we shall be building together in actual export rather than reusing one. First step is to add a name to this. I use this convention because it makes it easier. I put an abbreviation of the system and then the name of the operation itself. This will be getting the order or orders in this case in plural. Now, in going down, as you have the option of adding a description, this detail is already filled in for you the connection. However, you can change it if you need to. So again, same approach. And then we have here the form view. This is very important. By default, it will be on whatever the application is selected. However, there is the option of using a REST API form. This means you can have access to the back end of what’s actually happening in terms of the technical aspect of setting up things like the HDP headers, relative URI, and things of this nature. This also applies if you’re using the generic connector, the generic REST API or HTTP connectors if you’re looking to connect a system which we do not have a connector for. Right. Now, going back to the form here which does help. In using the form view for the Magento 2, you will see the API name and the operation which you have to choose in creating an export. The API name pretty self-explanatory here. You just have to select orders in this case. In going down the list, you will see there are several of them. This is all that’s available on the Magento API itself and by selecting order here, then you will be able to choose the operation in question in relation to the orders. Now if you’re not familiar with this and you’re not familiar with the API Magento, I do encourage you to read the documentation. It’s very easy to understand as it will give you some further context into this. Now in this case here, the operations are the ones you see there. The most relevant of which is to search for a sales order as it’s called on the Magento side. Now in doing so. There is then the option to configure search parameters. We are talking about a search operation in the end. And if you launch this, you’ll see this– this, again, is the form that you would go ahead and fill in. However, you are not left blank in trying to figure out what to put in there. There is some help as well which explains a few key details, but there’s also a neat little trick which you can do as well which is by going down to here in the configuration of the export type. Now what this defines is how to extract the information, all of it, a delta based on a specific date and time or just a test record or just a test order in this case from Magento. Now if I select delta and go back to the launch, you’ll notice here that there’s now an export, the last export date and time. So the platform is giving you a hint as to what you can use for a variable name, one that would actually be for the delta. And this will be also highlighted in the knowledge base with the help center as I mentioned before, so it can give you some hints there into how that actually works. And once you get familiarized with that, it will be very, very easy for you to start building things quickly. Now in this case, because I know that I’m looking for one particular store, I am– particular orders from a specific store, that’s what I will put here, and I know the ID of the store simply because I have reconfigured that in my Magento instance where you can, of course, do the same for your case as well. And I will change this to test record rather than the delta. And what we’ll do now is select here the preview. Now you can select the number of records to be extracted. In this case, there is only a single order on that specific store which has been placed. And there you go, you’ll see immediately the data being returned from Magento into here. It is in [JSON?] format, it makes it much easier to read in this format . And, of course, it’s much easier to manipulate as well on the platform. And that’s it. With regards to an export, you do, of course, have some advanced functionality which I do encourage those more and more technically inclined amongst you to explore these kinds of details. And in fact, if you do want to understand them better, feel free to reach out or even experiment with them as well as I said. But just to give an insight into what this is, if you need to specify the number of orders to be processed in a single batch, then you can do so via here as well. Just one of the features there to start fine-tuning how your integrations work. Now in saving this, the export is created. And as I mentioned, the next step there is to create an import. So import the data into, in this case, ShipStation. So we’ll go ahead and do that. As you see, it’s a repeat of the process that we did before. The same list available here. If you choose or if you type ahead ShipStation, this is what you’ll see. Now in this case here, there is a slight change and this is because of the nature of what this building block or component actually is. Contrary to an export, import requires importing data but there is also the option of performing a lookup. So imagine if you have a scenario where you need to, you get the orders from Magento and then you would like to also get some further customer information as well. You can do that in a separate step by performing a lookup, an additional step, a lookup for additional records into Magento itself or any other application for that matter. In this case, in keeping it in line with simplicity, we’ll go with importing records into ShipStation. And similar to before, I also have a connection ready for us to use. But as before, I shall also show you how easy it is to add the information. Again, this detail is available in your ShipStation account. If you do not find that, then please reach out to your representative on the ShipStation side to get that information for you. Now, I shall select the pre-existing one. And once again here, you can see that it’s possible to use pre-existing inputs. However, for the sake of completeness, I shall create one on the fly. All right. Now in this case, I’ll give it a naming convention as I mentioned from before and this is creating an order. Going down the list here, we have again the option of modifying the connection. And also an interesting one here is the one-too-many approach. In the event that a single item, for example, in the order would have to generate multiple records on ShipStation, then we could flip the switch here and do that as well. However, this is not necessary in this case, so we will keep it simple. Same as before, you also have the REST API view as well as the ShipStation, just the form view there. And, again, similar to before, you simply have to choose the API name. In this case, it is orders. And lastly, the operation which is to create,. In this case, ShipStation offers a create slash and update. So a two-in-one, if you will, with the operation. And in fact, in order to reflect this in the name, I shall also change this here as well just for the sake of completeness and orderly fashion. Now that that is done, save and close. That is step two. Now step three, if you recall, is to create a mapping. So we’ve exported the data, we’ve defined how we can export the data, we defined how you’re going to input the data, but now you need to define how to actually translate, how to map data between the two. That’s where this step comes into play, the input mapping. Now the input mapping itself is where you define the fields in question. Now to keep this quite exemplary, what I’m going to use here is the approach that I typically do and also the implementation to teams which is working backwards. Working from the target system, understanding what are the mandatory fields there. And, again, you can check the documentation of ShipStation in this case or whatever target system you’re using to figure out what are the mandatory fields. Now, I do know that the name is one of the mandatory ones. There are also the customer emails. I’ll place all of them here. There is the phone as well. And this one is not mandatory, however, it is useful to have. And there’s two [inaudible] there, the [inaudible]. The reason for that is to show you how you can map a single field into multiple fields there. The postcode, the street address – just choose one for the sake of simplicity – and the city as well, any notes regarding the customer that [inaudible], and last but not least, details of the item itself. Again, that is where a new little thing has been popped up, and I’ll explain what that is in a moment. Now that we have this in question here on the right-hand side, we then need to populate on the left-hand side. Now, the first thing here that we see is the name. Well, if you type name, you get a first name and last name. How do you choose which one? Well, you don’t have to choose which one. You can, in fact, concatenate both of them using what’s known as a multi-field option. And this is a good place to see that you have four different ways in which you can map fields. Standard is just moving across the data without making any changes. Hardcoded is, as the name suggests, hardcoding it to one specific value. Lookup is something of a domain value mapping. So A, B, C to 1, 2, 3, for example. And then last on our list is the multi-field which is what we’re looking for. Now, here you have the option of applying functions, for example. Think of it as what you’d see in Excel, for example. Those are similar functions that you have here. You also have the actual fields themselves. So remember, here, the idea is to concatenate the first name with the last name. So if we type ahead first name– whoops. Rather, if we select first name to be more specific here, and we use customer first name. And if you add a space and then select customer last name, there we are. We now have the two in line– we have the two fields side by side with the space in them. And that’s exactly what’s going to be sent across over to the– in the mapping in ShipStation itself. Oops. There has been an error, but nothing to be concerned about here. This is also a way to show how the platform actually provides some feedback immediately in the event that something is incorrect. Now, the customer email, this is rather easy. If we just use customer email, that’s what we get here. Then for the telephone, I do know that that is the nomenclature to be using. And here, I would like to show that you can actually map the same fields to multiple fields here. This could be useful, specifically, in a scenario like this where it’s useful to have the phone number of the bill to sign but also who is going to be receiving the package. Postcode, again, these are all basic mappings or standard mappings as we call them. Nothing out of the ordinary there. Same for the city and also for the notes. Last but not least is the items. And there is actually one missing mapping here that I forgot to put in place which is the order number. And this is good to explain the following. So we have items here. However, this looks somewhat different. If you go all the way to the bottom, you’ll see that there is an asterisk there. And the reason being that the items are a collection. They are an array of multiple items. Of course, an order would be one or more items. Now, if [you?] wanted to get the actual ID of the order, you’ll notice that if you type ahead order_ID, which is just the backend name of the order on the ID on the Magento side, there is this Items* Order. Now, this is saying that it’s going to get every single item from this list and get the order ID of that and map it into order ID. However, what would be more accurate is actually to put a zero simply because if this is a single order, then all the order IDs will be the same in this case. Now for the rest of them, for the SKU and the name, that’s as simple as just doing this here. Of course, searching for item name which is shown at the bottom. It is a bit hidden, but it is there, I reassure you. And there we are. We have now a mapping done and ready to go. Now, that would give us enough to actually execute this flow. However, I’m going to give you some bonus information here. So let’s say, you actually wanted to excuse me, to perform a filtering. Let’s say that you only want to descend to shipstation, the items whose values were greater than a certain amount. Well, what you can do is use what’s known as an input filter. So to the step, which is sending the importing data into ShipStation, you can apply an input filter. Now, this looks as you see here. Now, in this case, as I mentioned, we’re looking for the actual amounts, or in this case, what Magento calls the grand total. So if we go all the way down, we can find here a record grand total, which is exactly the same as what you see here in the grand total as well. Now, if you were to say, for example, that orders above 50, and we’re going to change this to greater than all orders above 50, should be sent to shipstation. And if we preview this, this actually says through the record will be processed. If we then change this and say that actually, only orders above 100 shall go into shipstation. And we preview this, then this is immediately going to change over to– oh, it should have changed over to false, but it didn’t want to, it seems. Let me try and preview that again. Ah, that seems to be a little mistake on my end, or may have misunderstood this. Let’s try with a different field to see if this is more accurate here. And there we go. That was my mistake. There we are. Now we can see again, using the same terminology, same way of working the grand total, in this case, 105, rather than the 75 was before. So this is actually a more accurate number to use. In this case, the amount being above 100. Let’s say I should change this to is equal to above 100. And let’s reset that if we do a preview this will be processed. If I change this to 110 and preview this, then it immediately changes to false, which means the record would not be sent. In other words, the order would not go to shipstation. This is particularly useful in the event that you have multiple logistics partners, and only some of them handle higher priority ones. Others handle the lower priority ones as well. And you might have several criteria, they’re not just one. You can add as many rules as you like. The other bonus that I shall give to you is let’s say that you would like to cut down on the amount of information that you see here. This is quite a lot of information you see in the mapping itself. And you want to make sure there’s only a subset of that to keep it simple. What you can do is apply what’s known as a transformation. In other words, it’s a bit of a cleanup. So this is the input of data that you will see and it will show up in a moment. And what you can actually do is to start to modify that data on the fly, such that it reduces the amount of information that you actually see and to show up on to the transformation itself. Now, let me cancel out from this and reset because this for some reason is now giving me the loading page, which is not ideal given our scenario here. But just bear with me for a moment. I shall now do a refresh of this. And there we are. Let’s try this one more time. So as I was mentioning, if you go into the transformation here, and here we are, we have the data now. And what you can do is effectively modify this. So let’s say we only wanted the grand total itself and I just use here grand– oops, grand total. Or you can change the camel case. And let’s say I want the customer email only. There we go. Customer email. And by performing a preview, you will see that this reduces by a large quantity all of the actual information that’s available in the input really does help to keep things simple. But of course, there is no limit to the number of mappings and rules as it says here that you can have of transformation. Having said that, if you do want to perform some very, very advanced functionality– I did mention it before. There is the possibility of using JavaScript and then hooking it up in certain places on the platform. This is what this J is for here. And you will see the exact same J here as well. So you can hook up in specific places. And in doing so, you choose where within the hook to actually do that, whether it’s the prior to the mapping, so pre-map stage, the post map, after performing the mapping, which you’ve defined here, and last but definitely not least, after submission, so post submit. What this means is after importing the data into ShipStation execute a specific function. This is for more advanced situations or for those who are more technical, want to do some very, very highly skilled features or functionalities into the platform. You have the flexibility to do so here. All you need to do is essentially create a script or select a pre-existing one. For example, [hey?], my script here. And you can immediately start to edit. And you’ll notice that in the scripts even though this one already has some stubs and some data in there, they do come pretty clean. You can introduce any data that you’d like to have or any functions you want to have. If you are still getting acquainted with how JavaScript works or you’re not quite sure what functions you can use here, we do provide you with some stubs or skeletons to get you on your way as well as some very well documented information on the comment itself. Rig