Enabling Optimize on an Existing Contentstack Stack
Optimize Deprecation
Uniform Optimize has been deprecated and replaced by Context, a more powerful and flexible personalization solution. Optimize is not being discontinued at this time, but it will not receive updates or new features.
We do not recommend starting a new project with Optimize. If you have an existing project that uses Optimize, you can upgrade your project to Context at no cost using our upgrade guide. If you have any issues with this process you can contact our team.
This guide will walk you through adding Uniform Optimize to an existing Contentstack stack as well as linking the Uniform Optimize Contentstack extension to your Uniform Optimize project.
Navigate to https://uniform.app/ and create an account if you have not already and accept the Terms of use and Privacy Policy.

Provide a project name that will allow you to identify this project later. Select Create your first intent. This option bypasses the onboarding flow associated with creating a new starter site. This option will also allow the creation of intents for your existing site.

Name and provide a description, optionally, for your first intent.

Click on the project that you just created from the project list.

The first intent that we created during onboarding should be visible when we click through to the project. We will create an API key that we will use to connect Contentstack to Uniform Optimize.
- Click the Create an API key link near the Publish button.
- Click the (+) button to create a new API key.
- Give the key a descriptive name, such as 'Contentstack'
- Add permissions to the project that you created previously.
- Check off the Uniform Optimize > Read Drafts permission. This will let Contentstack read un-published intent data that it needs.
- Click Create, and save the API key and project ID you are shown for later. If you forget the API key value, you will need to delete and re-create the key; it is only shown once.
Once the API Key is added, use the back button to return to your project, then click Publish to publish our first intent.
Contentstack Extension Installation
In a new tab, open the Contentstack stack you want to enable Uniform Optimize. Next, we will add the Uniform Optimize extension - click the Settings icon in the top navigation, then click Extensions.

On the Contentstack Extensions page, click Add Extension, then Create New.

In the Select Extension Type dialog, select Custom Field.

Provide a name for the extension in the Title field, e.g., "Intent Tags."

Select JSON in the Field data type field.

Select External Hosting in the Hosting method field.

Enter https://uniformoptimize-contentstack.netlify.app in the External hosting URL field.

In the Config Parameter field, enter the following:
{
"OPTIMIZE_API_KEY": "paste api key here",
"OPTIMIZE_PROJECT_ID": "paste project ID here",
"OPTIMIZE_FIELD_TYPE_ID": "unfrm_opt_intent_tag"
}
NOTE: The
OPTIMIZE_API_KEYvalue can be created and/or copied from the Uniform Optimize dashboard. TheOPTIMIZE_PROJECT_IDcan be found within Uniform Optimize on the project's General Settings at the bottom, or in the project's URL.

Click Save to finish installation of the Uniform Optimize extension for Contentstack.
Contentstack Extension Usage
Once the Contentstack Extension is installed, you can add fields to your content types that use the custom Intent Tags field provided by the extension.
Create a new content type or edit an existing content type — select Custom in the fields list.

In the Edit Properties section, select Intent Tags in the Select Extension list.

Enter a name for the field in the Unique ID field, e.g., unfrm_opt_intent_tag.
NOTE: The value you enter in the Unique ID field will be used by developers when referencing the field in application code.

Next, enter a helpful display name for content editors in the Display Name field.
NOTE: The value you enter in the Display Name is what will be shown to content editors when editing within Contentstack.

Click Save or Save and Close to finish adding the Uniform Optimize Intent Tags field to your content type.