Skip to main content
Custom steps let you insert your own UI into the Dromo import flow — between any two built-in steps — without breaking the standard modal experience. Your page loads inside an <iframe> embedded in Dromo’s modal chrome, and communicates back via postMessage.

The import flow

The default step order is:
Custom steps can be inserted after any of these steps (except REVIEW):

Quick start

Register a custom step before calling open(). The url is the page Dromo will load inside the iframe.

Driving navigation from the iframe

Your iframe page posts messages to window.parent to control navigation.

Modifying the schema from a custom step

Use the onMessage callback to mutate the import schema in response to what the user does in your iframe. It receives the same uploader instance as step hooks, giving you access to addField, removeField, addRows, and more.
The iframe sends the payload:

Multiple custom steps

Register multiple steps at the same insertAfter position — they are presented in registration order:

Full example: dynamic field builder

The example below is a self-contained iframe page that lets the user define extra fields before Review, then sends them back via onMessage.

Step registration

Iframe page (add-fields.html)

What happens when the user clicks Continue:
1

Send data

The iframe posts DROMO_MESSAGE with { fields: [...] } to window.parent.
2

onMessage callback runs

Dromo calls onMessage(uploader, payload). The callback iterates the fields and calls uploader.addField() for each one.
3

Advance

The iframe posts DROMO_NEXT. Dromo moves to the next step (Review).
For a complete configuration reference, see the Custom Steps reference.