Demandbase Personalizer: User Guide


What's New

Release Notes (click to expand)

Mar 16, 2021

  • Added Dynamic Stream Title and Dynamic Stream Description settings to allow Streams to be shared without the {placeholders} being visible.

Apr 8, 2020

  • Added details on how to use the Show Always Tag under the Filter Items by Tags option.

Apr 2, 2020

  • Added a Best Practices section.

Mar 18, 2020

  • Added a For Developers section and details about the ufPersonalizerCallback function that developers can leverage.

Mar 3, 2020

  • Added a Remove Logos When No Match Found option to provide more control over the behavior of the Swap Logo option.
  • The app will now also work on Hubs running the new Uberflip front end engine.

Feb 26, 2020

  • Added a Log Mode for Marketers option which enables a simplified debug logging mode.

Feb 3, 2020

  • Changed the format for placeholders from {{placeholder}} to {placeholder} (i.e. from double curly brackets to single curly brackets) to allow them to be used in custom code blocks.
  • Changed the behavior of Swap Logo. Previously when this setting was enabled and no logo match for the current visitor was found on Clearbit, the app would display the "fallback" visitor logo (if configured) in the banner instead. Now, the app will hide both logos from the banner, so it is no longer necessary to set a "fallback" visitor logo.

January 23, 2020

  • Added support for filtering at the Item level. While viewing an Item, the app can now filter the additional Items shown in the carousel and Next Item/Previous Item flyouts.
  • Added the ability to customize the labels of the Next Item/Previous Item flyouts.
  • Added 2 more Search & Replace fields: marketing_alias and region_name.


Before you begin

  • To use this app, you must obtain an API key from Demandbase. To obtain a Demandbase API key, please consult the Demandbase Success Center article on Account Connector.
  • On any Hub where you want to use this app, you must enable the setting Include Item tags for Custom Code. You can find this setting under Hubs > Hub Options > Advanced > Content Experience. To enable, check the box next to Include Item tags for Custom Code.
  • If your Hub uses Front End V2, you must also install the Compatibility Pack app. If you are not sure if your Hub uses Front End V2, see this article for help.


About Demandbase Personalizer

This app personalizes selected Streams using Demandbase data. It can:

  • Dynamically filter a Stream to only show Items that match data on the current visitor from Demandbase (using tags)
  • Automatically populate the visitor’s organization logo on Streams that use the Banner+Logo template
  • Automatically insert values from the visitor’s Demandbase data into variables placed in Hub text: titles, descriptions, body text, CTAs, etc.


Configuring and using the app

You configure settings for this app at the Hub level, which means that your settings will apply to the current Hub only.  If you have multiple Hubs, you must configure this app separately for each Hub.

To configure settings for this app, go to Hubs > Integrations > Apps tab. On this tab, open the app's settings by hovering your mouse over the app, then clicking on the Edit (pencil) button.

You can configure the following settings for this app:


Required Enter your Demandbase API key into this field.

Stream IDs

Required Use this field to specify the Streams that this app will personalize. To add a Stream, type in its Stream ID. Add multiple Streams by separating Stream IDs with commas. All functionality that you configure for this app will be applied to all Streams you specify here, i.e. it's not possible to selectively enable a given feature (Like Filter Items by Tags) for certain Streams but not others.

To find a Stream ID, go to Hubs > Content > Streams tab, click on the Stream, then click on the Metadata tab. The Stream’s Stream ID is listed near the bottom.

Filter Items by Tags

Optional Turn on this setting to personalize the content shown in the specified Stream(s) for each visitor using their Demandbase data and Item tags. When enabled, the Stream(s) will be filtered so that only Items with Attribute Tags that match the visitor's Demandbase data are displayed. For example, if a visitor's Demandbase data indicates that their industry is Software & Technology, then the Stream will be filtered to show Items that you have tagged as relating to the software and tech industry.

  • To be displayed, an Item must have at least one Attribute Tag matching any attribute in the visitor's Demandbase data.
  • If an Item has multiple Attribute Tags, only one of these tags needs to match the visitor's data for that Item to be displayed.
  • By default, the minimum number of matching Items that will be displayed is one. If no Items in the Stream have Attribute Tags that match the visitor's Demandbase data, all Items in the Stream will be shown.
    • Using the Show Always Tag will override this behaviour. In this case, only those Items that have the Show Always Tag will be displayed, and the minimum number of Items that will be displayed is the number of Items that have the Show Always Tag.
  • When a Stream is filtered, the order in which the Items are shown will still be the same as in the unfiltered version, except with the filtered Items hidden. For example, if five Items in a Stream are in the order 1-2-3-4-5 and Items 1 and 4 are filtered out, the Stream will display the remaining Items in the order 2-3-5.


To use this feature, you don't need to tag all the Items in your Hub! To get started, try tagging just the Items in the Streams where this app is enabled.

Using Attribute Tags

To use Filter Items by Tags, you must add Attribute Tags to Items that appear in Streams where the app is enabled. These tags are used to indicate which Demandbase attributes an Item corresponds to (i.e. "if a visitor has this attribute, display Items that have this Attribute Tag"). The tags must be structured using the following format:


Within this basic format, replace [attribute] with the Demandbase attribute, and [value]with the attribute’s desired value. For example, the tag demandbase.audience.SMB would indicate that the tagged Item should be displayed if a visitor’s audience attribute is "SMB", and would therefore be applied to Items relevant to that topic.

Note that values in tag names must match Demandbase values exactly: any spaces, parentheses, etc. that exist in the Demandbase value must also exist in the tag. See Available Demandbase Attributes below for a list of Demandbase attributes and example values.

Using the Show Always Tag

You can choose to always display certain Items, regardless of the visitor's Demandbase data. To do this, use the Show Always Tag:

Items that have this tag will always be shown in Streams where the app is enabled. This is useful for content that is relevant to a very wide audience, as well as to avoid instances where only one or two Items would be shown in the Stream based on Attribute Tags alone.

If you use the Show Always Tag, keep in mind that the filtered Stream will still respect the Item order set for the full Stream. As a result, we recommend placing Items with the Show Always Tag either at the beginning or end of the Stream (depending on the content).


This app filters not just Items on the main Stream page, but also the additional Items displayed when viewing an Item in that Stream. While viewing an Item, the Next/Previous Item area and the Other Content in This Stream carousel will be filtered in the same way as the main Stream page:

  • For the carousel, filtered Items will take priority, and any additional free slots in the carousel (after all filtered Items have been displayed) will be filled with non-filtered Items from the same Stream
  • If no next or previous filtered Item is available, the Next/Previous Item area will be hidden

Swap Logo

Optional Turn on this setting to dynamically set the Prospect Logo on Marketing/Sales Streams that use the Banner+Logo template. When enabled, the current visitor’s company will be extracted from their Demandbase data and used to search Clearbit for a matching logo. If a logo is found, it is automatically placed in the banner beside your own logo. Use the setting Remove Logos When No Match Found to determine what happens if no matching logo can be found.


For this feature to work, you must enable the Banner+Logo template and specify a "default" Prospect Logo under the Appearance tab on any Marketing or Sales Stream where you want to use this app. The default logo will not be displayed, but this feature will not activate if no logo is set. We recommend using a generic logo for this purpose (e.g. a logo that just says "You" or similar).

We also recommend specifying a default Banner Title under the Appearance tab to be displayed in case no logo is found and the logos are hidden from the banner. If you do not specify a Banner Title, only a blank header (or Banner Image, if specified) will be shown.

Remove Logos When No Match Found

Optional (enabled by default if you have turned on the optional Swap Logo setting). Use this setting to change the behavior of the Swap Logo setting when no matching logo for the visitor can be found on Clearbit. When enabled, both logos will be hidden from the banner. When disabled, the default prospect logo will be displayed beside your logo instead.

Search & Replace

Optional Turn on this setting to dynamically populate placeholders in Hub UI text with values from Demandbase data. Placeholders can be placed in virtually all editable UI text across your Hub. 

To insert a placeholder, use the format {demandbase.[attribute]}, replacing [attribute] with the attribute code (see below). For example, a user with the city attribute "Chicago" would see "Chicago" anywhere you have inserted the placeholder {}.

These Demandbase attributes are supported:

  • Company Name: Use the placeholder {demandbase.company_name}
  • Marketing Alias: Use the placeholder {demandbase.marketing_alias}
  • Industry: Use the placeholder {demandbase.industry}
  • City: Use the placeholder {}
  • Country: Use the placeholder {demandbase.country_name}
  • Website: Use the placeholder {demandbase.web_site}
  • Region Name: Use the placeholder {demandbase.region_name}

Dynamic Stream Title & Dynamic Stream Description

Optional When the Search & Replace setting is enabled, use these fields to create dynamically personalized Stream titles and descriptions with one or more placeholders, for example: "Content about {demandbase.industry} just for{demandbase.company_name}".

The dynamic title and/or description will be applied to all Streams (on which the app is active) only when the placeholder(s) can be filled with values from the visitor's 6sense data. If the visitor's 6sense data does not have the necessary values, the normal Stream title and/or description is displayed instead.

Using these settings means you do not need to put placeholders directly in Stream titles or descriptions themselves, so that these still display correctly (i.e. without the placeholder visible) while the Stream is loading, or if a link to the Stream is shared in a place that generates a link preview (e.g. social media, Slack, etc.).

Search & Replace: company_name/marketing_alias/etc.

Optional When the Search & Replace setting is enabled, you can use these fields to specify a custom default value to use as a fallback. If you specify a value for an attribute and no value is present in a visitor’s Demandbase data, the value you entered will be inserted into the placeholder instead.

If you do not specify a custom default value for an attribute, its system default value will be used when no value can be extracted from the visitor’s Demandbase data. The system default value for each attribute is:

  • Company Name: "Your Company"
  • Marketing Alias: "Your Company"
  • Industry: "Your Industry"
  • City: "Your City"
  • Country: "Your Country"
  • Website: "Your Website"
  • Region Name: "Your Region"

Previous Item Navigation Label

Optional Use this setting to specify a custom label for the Previous Item area while viewing an Item. If you do not specify anything here, the default label ("Previous Item") will be displayed.

Next Item Navigation Label

Optional Use this setting to specify a custom label for the Next Item area while viewing an Item. If you do not specify anything here, the default label ("Next Item") will be displayed.

Log Mode for Marketers

Optional Use this setting to log basic debugging information in the browser console. When this setting is enabled, the app will record information about what the app is doing in the browser console, such as what has been filtered and why. In addition, the data the app received from Demandbase for the current visitor will also be shown.

To view these logs, you must open the console in your browser. How you do this will vary based on the browser you use; for instructions on how to open the console in Chrome, see this article from Google.


Available Demandbase attributes

When you create tags for use with Filter Items by Tags, you can use any of the following attributes. Enter the value under the column Attribute for the [attribute] portion of the tag. 

For each attribute, a sample value (used in the [value] portion of the tag) is also shown. For a full list of values, or for more information about Demandbase attributes in general, please see Demandbase's online support documentation.


Example Value






Software & Technology






San Francisco


ACME Corporation




United States












Software & Technology























San Francisco


ACME Corp.


United States
















$25M - $50M






442 O’Farrell Street Suite 100


Software Applications







Best practices

When using this app, we recommend the following for best results:

  • For Streams and Items that you intend to share on social media, avoid using Search & Replace placeholders in the Title and Description fields. These fields are used to populate the Open Graph and Twitter Card tags that social platforms use to generate link previews, and any text you put in them will appear in the preview — including the placeholder text itself, e.g. {demandbase.company_name} instead of the relevant company name.
  • For Marketing and Sales Streams, we recommend enabling the Banner+Logo template under the Stream's Appearance tab, as this will allow you to use the Swap Logo setting. If you select this template, you should also enable the Hide Stream Title option and specify a Banner Title (also under the Appearance tab). There are two benefits to doing this:
    • If the Remove Logos When No Match Found option is turned on and no logo matches are found, the Banner Title will be shown on the banner instead (rather than an empty banner image).
    • If you intend to share the Stream on social media, you can put a placeholder in the Banner Title field (as this isn't shown in the social media preview), but not in the regular Stream Title field (which is shown on social media). In other words, this allows you to personalize the title that a visitor to the Stream sees, without the placeholder text appearing when the same Stream is shared on a social media platform.
  • For all Streams and Items that you don't plan to share on social media, but which you expect to be indexed by Google, we recommend using the SEO Title and SEO Description fields. These allow you to specify alternative titles and descriptions for your Streams and Items when they appear on Google search result pages. You can use these fields to ensure that any placeholders you put in a Stream's or Item's title/description do not appear when that Stream or Item appears on Google.



If you experience problems with this app's functionality, this may be due to corrupted data. To resolve the issue, try clearing your browser's cache (or try using the app in Incognito Mode to see if that resolves the issue).


For developers

Because this app manipulates a large portion of Stream and Item pages, a race condition can occur, which can cause other JavaScript custom code running on the same page to malfunction. 

If your JS code performs other manipulations on pages where this app is active, you should ensure it runs after the app to avoid problems. To help you do this, a callback function is built into the app that will be called once the app has finished executing its own code.

To leverage the callback function, create a function named ufPersonalizerCallback in your own custom code and place your JS inside it. For example:

var ufPersonalizerCallback = function(){
/** Your JS **/
3 out of 3 found this helpful



Please sign in to leave a comment.