Building Low-code Integrations to Optimizely

Building Low-code Integrations to Optimizely

There aren’t many real world websites that doesn’t have any integration requirements to display content from external sources.

For example, you probably need to show job openings from a third party system, or fetch news items from multiple different sources, or import media content from external mediabank APIs.

You might have resolved these kind of scenarios using custom made scheduled jobs that polls external sources directly and handles the returning responses accordingly to your business needs.

Or you might have created it other way around, with a custom made API endpoint that receives input from another third party service. For example a webhook event that generates a page with content in Optimizely Content Cloud.

All these examples require more or less custom build code to achive relatively simple integration scenarios.

There must be a better way? There is.

Optimizely Content Management API

This is a new release from Optimizely that enables you to create content via REST API and is provided and maintained by Optimizely.

No need to create your custom build APIs anymore.

This means that you have now the ability to create content via a standarized and documented API.

And that also means you have all the modern integration tools at your disposal, including low code and no code solutions. For example Azure Logic Apps.

Low code integrations and Optimizely

Suppose you are building a corporate website that needs to display public announcements that are generated by a third party system.

Announcements are needed to be saved to the Optimizely Content Cloud so they can be approved through workflows and are also searchable in the site.

Company is thinking to include more publication sources and adding those sources should be fast and cost effective. They don’t know if those sources are RSS feeds, APIs, email or a Sharepoint folder.

CTO also dislikes point-to-point integrations and likes visualizations of integration processes.

Planned approach

  1. Install and configure the Content Management API to enable API based content creation in Optimizely Content Cloud.
  2. Understand the publication provider’s data format. Is it a REST api or maybe a RSS feed, or something else?
  3. Utilize a low code integration platform (e.g. Azure Logic Apps) to decouple the integration between Optimizely and publication provider. Handle all integration logic in the integration platform.
  4. Send data to Optimizely Content Management API endpoint

Sounds easy, but how can you build and debug this locally?

You might have noticed a problem if you are using external integration tools. They need to access the application API from a public url. Do you need to deploy a new version everytime when you make change?

That would be tedious. One option is to create a SSH tunnel from localhost instance to a public url.

Here is a demo exposing Alloy .NET 5 site in Docker container via to a public endpoint. Read detailed post here: How to Test Local Environments in Mobile Devices.

Where to go from here?

We can see a clear pattern on how Optimizely architecture is evolving to more API centric design.

This enables us to build more cost effective solutions without the need to build everything from the scratch.

However, from a software developer standpoint of view, this changes the game to more consultative role and the actual (backend) coding is not necessarily the best option for solutions to your customers.

Thank you for reading and watching. Feel free to give me a comment on Twitter.