Alteryx Server is a fantastic way to automate Alteryx workflows and collaborate with others. Many organizations choose to do production and pre-production environments of the server, which means a question we often get is how to manage migrating content from one server to another. While manually republishing a workflow between a pre-prod and prod environment isn’t a massive lift overall, it can be difficult to scale. Luckily, Alteryx Server has a feature that allows for marking content as “Ready to Migrate,” making them easy to call out via the Alteryx Gallery API.
What is the Alteryx Gallery API?
The Alteryx Gallery API allows for systematically accessing resources stored on Alteryx Server from other applications. It allows us to get details about workflows, current jobs, subscriptions, and more. This allows us to automate some tasks that may otherwise be manual.
There is plenty of documentation on the API itself, which I will list at the end of this blog, but in this post, we will specifically be talking about the migratable endpoint:
How to Flag and Access Ready to Migrate Workflows
In order to call out workflows as migratable, you will need to turn on the setting in your configuration. This will require Curator privileges.
Turning on the “Ready to Migrate” Flag
Within the Admin section of the Alteryx Gallery, navigate to the Configuration tab. Under workflow settings, turn on “Curators Can Flag Workflows for Promotion.”
Enabling this setting will allow Curators to flag workflows that should be accessible at the migratable endpoint.
This can be done either in the Workflows tab of the Admin section or in the non-admin area on any workflow’s page; simply select “Workflow Settings” and check the ready to migrate box.
Accessing your API Keys
To get started with the API, you will need API access – this, again, will require a Curator to give you those permissions. You can take a look at your access in your “My Profile” tab, found in the top right corner of Alteryx Gallery.
If given the API permission, you will also find your API access key and secret in the “Keys” tab of the My Profile page. This is what you will use to authenticate with the API.
Getting Started: An Example using the API and Migratable Endpoint
Once you have your “Ready to Migrate” flag and API access set, you are ready to get started. You can leverage the API using traditional programming languages such as Python or C# to build out the automation, or you can get started by playing in Alteryx Designer.
You can find several tools on Alteryx Community already available for leveraging the API. In my opinion, the easiest way to get used to the API and its various endpoints is utilizing Patrick Digan’s Gallery API macro, found in this community post. This allows for easy authentication for each of the macros, without a ton of upfront effort.
Once you have the macro, simply feed in a few details:
- The endpoint URL: [Server URL]/api/admin/v1/workflows/migratable/ – this can be brought in with a Text Input tool.
- Key: the access key from your My Profile page
- Secret: secret associate with the key, also on the My Profile page
This will give you a JSON (or blob) output that contains details about our migratable workflows. You can use the JSON parse tool and a bit of data transformation to get the IDs of the workflows in a usable format.
Once we have these IDs, we can get more detailed information about the workflows by getting all workflows from the workflow endpoint. We can use the exact same tactic as the migratable endpoint, but instead use:
If we join these two flows in on our ids, we can see the names of the workflows we tagged as ready to migrate and details about their owners. In this simple example, I am using the owner’s email to feed into an email tool, sending the owner of ready to migrate workflows a notification to migrate their workbook to Production. You can find this example workflow here.
This was a simple example but hopefully shows you the power of utilizing the Gallery API for speeding up your migration and other Alteryx Server processes. If you need more resources on getting started with the Alteryx Gallery API, I recommend the above link from Patrick Digan and any of the following: