String Resources
Introduction
When working with picklist and multiselect values in Aprimo Marketing Operations, options are represented as key/resourceid pairs, with the resourceid being a second key that allows you to look up the string value.
There are two types of strings in the application:
- Static strings, which are built into the product, for example, time zones and currency codes.
- Dynamic strings, which get created specifically for your tenant through configuration, such as extended attribute picklist options and system type values.
A static string can be identified in an API response as any resourceId value in the formĀ mo-replacement-strings-X where X is an integer value.
A dynamic resource can be identified in an API response as any resourceId value in the formĀ mo-encoded-titles-X where X is an integer value.
Looking up String Picklists & Multiselects
A string dropdown example in Aprimo Marketing Operations is Timezone. When retrieving a record associated with a timezone in the API, for example, an activity, you will get back the integer ID value representing the timezone, for example:
“timeZoneId”: 43
To understand what timezone this corresponds to the system, you can use the lookup list endpoints.
To find the string associated with a resourceId, you may use any of the following methods:
Look up all static strings (static strings only)
If your integration needs to frequently look up static strings, you may call the GET /api/resources/static endpoint, which returns all mo-replacement-string-X ids and values in the application. We recommend you cache this response in your application and only refresh it periodically, as static strings rarely change.
Look up a single string
If you only need the value for a single static string, you may use the GET /api/resources/{resourceid} endpoint. For example, /api/resources/mo-replacement-strings-848894 will return the below response:
{
"id": "mo-replacement-strings-848894",
"value": "(GMT-05:00) Eastern Time (US & Canada)",
"_links": {
"self": {
"href": "resources/mo-replacement-strings-848894",
"type": "application/vnd.td-apps.operations.resources"
}
}
}
Querying for strings
If you have multiple strings to look up, you may use the POST /api/resources/query endpoint, with a POST body containing a query property with comma separated list of all strings you’d like to return. Ensure you also provide a Content-Type header of application/json for this call. You may look up both static and dynamic strings in a single call.
Here’s an example. Note that this may not work in your environment, given dynamic string IDs are environment-specific.
{
"query" : "mo-replacement-strings-848894,mo-encoded-titles-911832"
}
This will return something like:
{
"resources": [
{
"id": "mo-replacement-strings-848894",
"value": "(GMT-05:00) Eastern Time (US & Canada)"
},
{
"id": "mo-encoded-titles-911832",
"value": "Integrated Activity"
}
]
}