Hi,
I am brand new to using Celigo.
The setup I have inherited includes a flow whose mapping consists of hundreds of entries. The only way I know to manipulate the mapping configuration is through the web-UI. That is... a little too old fashioned and dangerous for my liking. Ideally I'd like to be able to export/import the config as a json|xml file. But I would settle for anything that is NOT the web-UI. Does anyone have any pointers?
The way to do this without the UI is to use our import API, and there are a couple of ways to access this. I do want to note that this can be tricky depending on your mappings. With our mapper, you have various options for complex mappings that involve handlebars, lookups against the destination import, static lookup tables, lookup caches, and others. With each of these complex settings, the structure of the mapping document gets more complex. If you only have simple standard mappings, then this is straightforward. Lastly, there is a difference in structure between mapper 1.0 and mapper 2.0. When you see mapping
as the array object, then you need to use the mapper 1.0 structure. If you see mappings
, then you need to use mapper 2.0. To see the difference between structures, I typically just make some samples in the UI and then see what the underlying JSON document looks like.
With all that said, here are the couple of options.
-
The first way, and this is the way I prefer, is to use the Zangabox chrome extension. This is an extension that our partner, Zangabee, created, and it allows you to be in the UI but edit any resource you are on via API. For example, if you go to your import that has the mappings you want to update, then click this extension, it will show you the underlying JSON document of what makes an import step. From there, you can find either the mapping
or mappings
array, edit the JSON, then click the PUT
button to make the update request via API. Once you do that, the screen will refresh, and you should see your updated mappings.
-
The second option would be to use Postman and do the same thing there. For this option, you can download the Postman collection in the article linked above. After that, create yourself an API token by signing in to Celigo, going to Resources, then API tokens, then Create API Token in the top right. You'll take that token and put it in your Postman collection as a bearer token authentication. Once you have that setup, you'll want to make a GET
request to Get a specific import. For this, you'll need the ID of the import, which you can get from looking in the URL of your browser while having the import open. After you make the request, copy the entire response body and paste it into the request body of the Update a specific import request. From there, modify the mapping
or mappings
array, put the ID of the import in your API request URL, then send.
2 Likes
Thank you for your detailed reply. This sounds exactly like the type of solution I was imagining.
Unfortunately I got stuck at step #1. I'm pretty sure I'm on the same "page" (manually editing mapping). The only visual difference is that I do not see a Mapper 1.0 Mapper 2.0 toggle. The plugin loads some data, starts with
{
"_id": "5xxxxxxxxxxxxxxxxxxxxxxx",
"lastModified": "2025-01-15T14:29:45.315Z",
"name": "Magento 2 - NetSuite",
"_connectorId": "57xxxxxxxxxxxxxxxx",
but there is no array called mapping or mappings in there
I probably shouldn't trouble shoot this in a public forum
Question: Does Celigo support cover issues related to this plugin?
Support does not cover issues with the plugin as it was made by one of our partners. I think you may be in the wrong place, though. Here is how to get to it:
@basvanditzhuijzen, the developer of ZangaBox will offer you some support if you email coding@zangabee.com. I had an issue a year or so ago and they were very helpful.
3 Likes