The visual data transformation platform that lets implementation teams deliver faster, without writing code.
Start mappingNewsletter
Get the latest updates on product features and implementation best practices.
The visual data transformation platform that lets implementation teams deliver faster, without writing code.
Start mappingNewsletter
Get the latest updates on product features and implementation best practices.

You're a Workday pro. You understand the power of Enterprise Interface Builder (EIB) for bulk data loads. But then you're handed the source file for an "Assign Organization" or "Add Emergency Contacts" EIB, and your heart sinks. Your source data has one neat row per employee, but the Workday EIB template demands five, ten, or even more rows for that single employee—one for each organization or contact.
The next few hours of your life are a predictable blur of manual copy-pasting, delicate formula dragging, and the constant, nagging fear that a single slip-up will corrupt the entire file, leading to a cryptic, time-wasting validation error in Workday. This structural transformation is one of the most common challenges we cover in our guide to conquering the top Workday EIB nightmares, and it's a perfect example of a task that pushes spreadsheets past their limits.
This guide will walk you through this specific, painful EIB challenge and demonstrate how to automate it, turning a manual nightmare into a fast, accurate, and repeatable workflow.
The core problem is structural. You need to transform the shape of your data from a "wide" or "flat" format (one employee, many contact columns) to a "long" format (many rows, each with one employee and one contact). In Excel, this means:
This is a classic data transformation challenge that requires a purpose-built tool to solve effectively.
Instead of manually reshaping your data, a modern data transformation platform like DataFlowMapper allows you to programmatically generate new rows based on your source data. This is accomplished using a powerful function called NEWROW.
The concept is simple: you define logic that tells the tool, "For each contact in this list, create a new row in the output and populate it with the employee's ID and the contact's details." This automates the most tedious and error-prone part of the process, ensuring perfect structural accuracy every time.
Let's imagine your source file has a single, delimited column for contacts, a common scenario:
Source Data:
| Employee_ID | Emergency_Contacts |
|---|---|
| 1001 | John Doe;Jane Smith |
| 1002 | Peter Jones |
Required EIB Output:
| Employee_ID | Contact_Name |
|---|---|
| 1001 | John Doe |
| 1001 | Jane Smith |
| 1002 | Peter Jones |
Here’s how you would automate this transformation in DataFlowMapper's Logic Builder:
Step 1: Split the Contacts into a List:
First, you need to turn the semi-colon delimited string of contacts into a list of individual contacts. You would use the SPLIT function.
SPLIT(source['Emergency_Contacts'], ';') would turn "John Doe;Jane Smith" into a list: ['John Doe', 'Jane Smith'].Step 2: Iterate and Generate New Rows with NEWROW:
Next, you would use a simple loop within the Logic Builder's Python editor to process this list. For each item in the list, you call the NEWROW function. This function takes inputs where you map each destination EIB column names to the values you want for that new row.
That's it. With this simple, visual logic, DataFlowMapper will process the source file and automatically generate the correctly structured, multi-row output required by the Workday EIB.

Moving this process out of Excel and into a dedicated transformation tool provides immediate, tangible benefits:
The challenge of one-to-many transformations is a clear sign that your process has outgrown spreadsheets. For Workday professionals who need to prepare complex EIBs like "Assign Organization," "Emergency Contacts," or "Add Allowances," automating this structural reshaping is no longer a luxury—it's a necessity for maintaining speed and accuracy.
By leveraging powerful functions like NEWROW in a modern data transformation platform, you can eliminate one of the most tedious, risky, and time-consuming parts of your job. Stop the manual grind, turn hours of risky copy-pasting into a reliable, repeatable workflow, and focus on what truly matters: ensuring the quality of the data itself, not just wrestling with its structure.
What if my source data has emergency contacts in separate columns (e.g., Contact1, Contact2) instead of a single delimited string?
A modern data transformation tool can easily handle this. Instead of splitting a string, your logic would iterate through the specified columns. For each column that contains a value, it would call the newrow function, mapping the employee ID and the contact from that column to the new row.
How does this approach work for other one-to-many EIBs like 'Add Allowance' or 'Assign Cost Center'?
The principle is exactly the same. You identify the source data that needs to be expanded into multiple rows (e.g., different allowance codes, multiple cost center assignments). Then, you use the newrow function within a loop to generate a distinct output row for each item, mapping the common data (like Employee ID) and the specific item data (the allowance code or cost center) to the correct destination columns.
Is this process difficult to set up if I'm not a programmer? Not at all. Platforms like DataFlowMapper are designed with a visual, no-code/low-code interface. While the underlying logic can be represented as code for clarity, you can typically build these transformations by selecting functions from a library and mapping fields with a drag-and-drop interface, making it accessible to all skill levels.
Automate Your EIB Data Prep. See how DataFlowMapper makes one-to-many mapping simple and repeatable.
A modern data transformation tool can easily handle this. Instead of splitting a string, your logic would iterate through the specified columns. For each column that contains a value, it would call the `newrow` function, mapping the employee ID and the contact from that column to the new row.
The principle is exactly the same. You identify the source data that needs to be expanded into multiple rows (e.g., different allowance codes, multiple cost center assignments). Then, you use the `newrow` function within a loop to generate a distinct output row for each item, mapping the common data (like Employee ID) and the specific item data (the allowance code or cost center) to the correct destination columns.
Not at all. Platforms like DataFlowMapper are designed with a visual, no-code/low-code interface. While the underlying logic can be represented as code for clarity, you can typically build these transformations by selecting functions from a library and mapping fields with a drag-and-drop interface, making it accessible to all skill levels.