Skip to main content
This guide walks you through creating an integration that extracts post data from JSONPlaceholder, enriches each post with comment details using a secondary API call, and delivers the combined data to a webhook endpoint. By the end, you’ll understand how to use the Enrichment phase to fetch additional data per datapoint and combine it in your transformations.

What you’ll build

You’ll create an integration that:
  1. Extracts post records from JSONPlaceholder (a free test API)
  2. Enriches each post by fetching its comments using a secondary API request
  3. Transforms the data by combining fields from both the extract and enrichment responses
  4. Loads the enriched results to webhook.site where you can inspect them
Time required: approximately 5 minutes.

Prerequisites

  • Access to an RWS Integration Workspace
  • A web browser

Step 1: Set up your destination

Before building the integration, create a destination endpoint where you can verify the results.
  1. Open webhook.site in a new browser tab
  2. The site automatically generates a unique URL (e.g., https://webhook.site/abc123-def456-...)
  3. Copy the unique path portion (e.g., /abc123-def456-...) — you’ll need it when configuring the Load phase
  4. Keep this tab open to monitor incoming requests
webhook.site is a free service that captures and displays HTTP requests. It’s useful for testing integrations before connecting to real destination systems.

Step 2: Create the source Connection

Connections define how RWS Integration communicates with external systems. You’ll create one for the JSONPlaceholder API, which will be used for both the main extract and the enrichment requests.
  1. In the sidebar, click Connections
  2. Click New Connection
  3. Configure the connection:
FieldValue
Name[Doc] Enrichment Extract Connection
TypeAPI
URLhttps://jsonplaceholder.typicode.com
Base Path/
AuthenticationSimple
  1. Leave Header Parameters and Query Parameters empty
  2. Click Save

Step 3: Create the destination Connection

Now create a Connection for your webhook.site destination.
  1. Click New Connection
  2. Configure the connection:
FieldValue
Name[Doc] Enrichment Load Connection
TypeAPI
URLhttps://webhook.site
Base Path/
AuthenticationSimple
  1. Click Save

Step 4: Create the Integration

With both Connections ready, create the Integration that extracts posts, enriches them with comments, and delivers the combined data to your destination.
  1. In the sidebar, click Integrations
  2. Click New Integration

General settings

Configure the basic integration properties:
FieldValue
Name[Doc] Enrichment Integration
Version1.0.0
TypeFull
EnvironmentStaging
Schedulerate(1 day)

Extract phase

The Extract phase retrieves post data from your source system.
  1. Expand the Extract section
  2. Configure these fields:
FieldValue
Connection[Doc] Enrichment Extract Connection
MethodGET
Path/posts
  1. Set the Datapoint Path in Response to root
  2. Set the Pagination:
FieldValue
Pagination TypeSimple
Page size parameter_limit
Page size value10
Initial page parameter_page
Initial page value1
Pagination end typeObject
  1. Check the Extract Preview panel on the right side — it should show:
    • Status: 200 OK
    • A single post record (the Datapoint) like this:
    {
         "userId": 1,
         "id": 1,
         "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
         "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
     }
    

Enrichment phase

The Enrichment phase fetches additional data for each datapoint extracted in the main Extract phase. For each post, we’ll fetch its comments.
  1. Expand the Enrichment section
  2. Click Add Enrichment
  3. Configure the enrichment:
FieldValue
Namecomments
Connection[Doc] Enrichment Extract Connection
MethodGET
Path/posts/{{parameterId}}/comments
Set Enrichment query parameters:
typekeyvalue
Fixed{{id}}parameterId
The {{id}} is a dynamic parameter that will be interpolated from each datapoint extracted in the main Extract step. Make sure the field name matches exactly (case-sensitive).
  1. The enrichment will automatically use the id value extracted from the post to make a request to /posts/{id}/comments.
  2. Check the Extract Preview panel on the right side — it should show:
    • Status: 200 OK
    • An array of comment records like this:
    [
     {
         "postId": 1,
         "id": 1,
         "name": "id labore ex et quam laborum",
         "email": "Eliseo@gardner.biz",
         "body": "laudantium enim quasi est quidem magnam voluptate ipsam eos\ntempora quo necessitatibus\ndolor quam autem quasi\nreiciendis et nam sapiente accusantium"
     },
     {
         "postId": 1,
         "id": 2,
         "name": "quo vero reiciendis velit similique earum",
         "email": "Jayne_Kuhic@sydney.com",
         "body": "est natus enim nihil est dolore omnis voluptatem numquam\net omnis occaecati quod ullam at\nvoluptatem error expedita pariatur\nnihil sint nostrum voluptatem reiciendis et"
     },
    ]
    

Transform phase

The Transform phase maps source fields from both the Extract and Enrichment responses to your destination format. For this guide, create mappings that combine post data with comment information.
  1. Expand the Transform section
  2. Click Add Transformation and configure fields from the main Extract:
TypeFromTo
SimpleidpostId
SimpletitlepostTitle
SimplebodypostBody
  1. Click Add Transformation again and configure fields from the Enrichment:
TypeFromTo
Simpleresources.comments[0].emailfirstCommentEmail
Simpleresources.comments[0].bodyfirstCommentText
To access enrichment data, you must use the structure: resources.{{enrichmentName}}.{{fieldPath}}. The enrichment name must match exactly what you configured in the Enrichment section (in this case, comments).
  1. Check the Transform Preview panel — it should display:
{
  "postId": 1,
  "postTitle": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
  "postBody": "quia et suscipit...",
  "firstCommentEmail": "Eliseo@gardner.biz",
  "firstCommentText": "laudantium enim quasi est quidem magnam voluptate..."
}
This confirms your mappings are working correctly and shows how data from both Extract and Enrichment phases are combined.

Load phase

The Load phase sends transformed data to your destination.
  1. Expand the Load section
  2. Configure these fields:
FieldValue
Connection[Doc] Enrichment Load Connection
MethodPOST
PathYour webhook.site unique path (e.g., /abc123-def456-...)
Load TypeSimple
Copy only the path portion from your webhook.site URL. If your full URL is https://webhook.site/abc-123, enter /abc-123 as the Path.
  1. Check the Load Preview panel — it shows the complete request that will be sent:
{
  "postId": 1,
  "postTitle": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
  "postBody": "quia et suscipit...",
  "firstCommentEmail": "Eliseo@gardner.biz",
  "firstCommentText": "laudantium enim quasi est quidem magnam voluptate..."
}

Step 5: Deploy the Integration

  1. Toggle Deployment to enabled
  2. Click Create Integration
Since we configured rate(1 day) as the schedule, the integration will execute immediately upon creation. After that, it will run automatically every 24 hours.

Step 6: Verify the results

Switch to your webhook.site browser tab. You should see incoming POST requests (one for each post processed), each containing your transformed data structure with combined post and comment information:
{
  "postId": 1,
  "postTitle": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
  "postBody": "quia et suscipit...",
  "firstCommentEmail": "Eliseo@gardner.biz",
  "firstCommentText": "laudantium enim quasi est quidem magnam voluptate..."
}
Congratulations — you’ve built and run your first integration with enrichment!

What you learned

  • Connections store configuration for external systems and can be reused across multiple Integrations
  • Integrations follow the Extract → Enrichment → Transform → Load pattern
  • Preview panels automatically update as you configure each phase, letting you validate before running
  • Simple transformations map fields from source to destination using JSONPath notation
  • Enrichment allows you to fetch additional data for each datapoint extracted in the main Extract phase
  • Dynamic parameters (like {{id}}) in enrichment paths are interpolated from extracted datapoints
  • Enrichment data is accessed in Transform using resources.{{enrichmentName}}.{{fieldPath}}

Next steps

Connections

Learn about different authentication methods

Pagination

Handle pagination and complex API responses

Business Rules

Master field transformations with JavaScript

Scheduling

Schedule your integrations to run automatically