Text to Reference

Case

Assume the content being synced is an article. This article has a special json field which uses text to "reference" a content of another content type, topic.

But when syncing the article content to the destination, the destination content type is a proper reference field. Meaning a simple text value is not a valid value, instead an ID is required.

To fully sync this article to another system, both the topic and the article need to be synced. And the text value needs to be converted to the appropriate topic ID.

We need to be able to

  1. Sync the topic

  2. Sync the article

  3. Convert a text value to a content ID

Solution

ImpulseSync can solve this with a couple jobs, the aligner, and the relationship manipulator.

To make use of the aligner, a common identifier value(s) must exist between the article and the topic. i.e., the source text value used to reference the topic matches the slug field of the topic

First, we create a job to sync the topic. When this job runs the topic content will sync from the source to the destination.

Next we'll create a second job, using the aligner, to create a link between the article content and the synced topic.

In this case, the article has a value that matches the slug of the topic, but the value is within a json field with other values. So, we will need to extract our specific value from the json and put it into a new field to use with the aligner.

Now that the article has a field with a value that can identify the referenced topic, we can set the aligner to align the article and topic contents.

Because we only want this job to align, and not overwrite the destination topic with the article content, we set the job to not deliver.

When this job runs, it will align the article content based on the field we created with the regex'd value with the topic content we previously synced.

Next, we need to create the final job which will sync the article content to the destination.

This job will sync the article content to the destination, and use the relationship manipulator to create a new relationship field.

This relationship manipulator is configured to create a new relationship field in the article content based on a previous content that article has synced as or been aligned with. Because our second job aligned the article with the topic, this relationship manipulator will create a new relationship field, with the aligned topic ID.

When this job runs, we'll see the destination article with the content fields populated and the referenced field set to the aligned topic.

Last updated