Enterprise Integration Patterns – Content Enrichment
One in a series of posts on how we have used Enterprise Integration Patterns in our projects.
The Content Enricher pattern is used when sending information from one system to another, but the message does not contain all the information needed by the target system – generally because the source system does not have this information. As the message flows from the source to the target system, we retrieve additional information from another data source and merge this with the original message. The result is an enriched message suitable for the target system.
For example, at the Township of Langley we recently implemented an integration between their citizen-facing CRM system and a backend system used for managing work orders. When a citizen requests a new or replacement garbage or recycling cart, the integration services would automatically generate a new work order, and provide status updates back to the citizen.
The process starts with a citizen submitting an online request, providing their name, address, verification that they are the property owner, and the selected size for the new cart. The integration services – implemented using FME Server – read the new requests from the CRM system and generate work orders in the backend system used by the garbage cart field crews. The catch is: the work order system has mandatory fields to be populated, and the required information is not available from the CRM.
This is where the Content Enricher pattern comes in. The work order system maintains its own records and identifiers for Customers, which are based on civic address. This Customer Identifier must be used when creating work orders as this is used to assign and route field crews to the correct location.
The FME workspaces use the address information that was entered into the CRM to query additional APIs in the work order system. These APIs will retrieve the associated Customer Identifier, or – in the case of an invalid address, will allow the FME process to flag the request. Once the customer identifier is obtained, we merge that with the information captured in the CRM and initiate the Work Order through the work order API endpoint.
Content enrichment is a common pattern in enterprise integration and is useful whenever the source system does not have all the information required of the target system. Using FME we are able to easily enrich messages in-flight through APIs or other data sources.