Automated migration results
When Import detects an Alteryx Arrange tool, it generates a sequence of Reformat gems to reproduce row-expansion behavior:-
An initial Reformat gem creates an array of labeled row objects using
arrayandnamed_struct. Eachstructrepresents one output row derived from the original input row. -
A second Reformat gem applies
explodeto the array, converting eachstructinto its own output row. - A final Reformat gem extracts fields from the exploded struct into standard output columns.
Manually replicate in Prophecy
To manually replicate the Arrange tool using the Unpivot gem:- Add an Unpivot gem to the canvas.
- Select Key Columns.
- Select Data Columns.
- If desired, check Use custom output column names for Name & Value pairs and assign column names.
Configuration options
In Alteryx (Arrange tool)
Configure the tool by:- Selecting the input fields to arrange.
- Defining how fields are grouped or labeled.
- Specifying whether other fields are carried through unchanged.
Prophecy (Unpivot gem)
Configure the Unpivot gem by- Selecting key columns.
- Selecting data columns.
- Renaming columns as desired.
In Prophecy (Reformat gems)
For exact Arrange tool behavior, configure multiple Reformat gems using the following patterns. Example construction pattern:Output behavior
- Alteryx outputs multiple rows per input row, with labels indicating the source field.
- Prophecy produces the same row expansion by exploding an array of structs, then emitting standard columns.
- Row counts increase according to the number of arranged fields.
Known caveats
- Multiple-step implementation: Arrange behavior is expressed across several Reformat gems rather than a single tool.
- Type normalization: Import may cast values (for example, to
string) to ensure consistent struct schemas. - Intermediate columns: Temporary columns (such as
_consolidated_data_coland_exploded_data_col) are used internally and removed in the final output.
Example
Goal: produce a dataset where each input row generates multiple output rows.Input dataset
Assume the input dataset contains one row per record, with multiple date fields stored in separate columns:| record_id | start_date | end_date | cancel_date | user_name |
|---|---|---|---|---|
| 1 | 10/14/2025 | 11/14/2025 | 12/14/2025 | Amy |
| 2 | 10/08/2025 | 11/08/2025 | 12/08/2025 | Priya |
Alteryx Arrange tool
- Select
record_idanduser_nameas key fields. - Configure output fields as follows:
- Column headers:
Description,Date - Row 1: Description:
Start Date; Date: selectstart_date. - Row 2: Description:
End Date; Date: selectend_date. - Row 3: Description:
Cancel Date; Date: selectcancel_date.
- Column headers:
Prophecy equivalent
- Add an Unpivot gem.
- For Key Columns, select
record_idanduser_name. - For Data Columns, select:
start_date,end_dateandcancel_date. - Select Use custom output column names for Name & Value pairs.
- Rename the Name column to
description. - Rename the Value column to
date. - Save and run the gem.
description will be start_date, end_date, cancel_date. To change these names, use a Reformat gem.
Resulting output
Each set of operations produces a dataset where each input row generates multiple output rows:| description | date | record_id | user_name |
|---|---|---|---|
| Start date | 10/14/2025 | 1 | Amy |
| End date | 11/14/2025 | 1 | Amy |
| Cancel date | 12/14/2025 | 1 | Amy |
| Start date | 10/08/2025 | 2 | Priya |
| End date | 11/08/2025 | 2 | Priya |
| Cancel date | 12/08/2025 | 2 | Priya |

