Docs/ Custom Migrator

Custom Migrator ​

Custom Migrator takes the customizations you made in Desk, such as custom fields, scripts and notifications, and writes them into your Frappe app's GitHub repo as JSON files. It pushes them on a new branch and opens a pull request. Once the pull request is merged, bench migrate applies them on every other site that runs the app.

So customizations go through review and history like the rest of your code, instead of being re-made by hand on each site.

How a change travels ​

  1. Make the change on your development site, by hand or with HydraAI.
  2. Pick it on the Custom Migrator page and look at the Export Preview.
  3. Commit & Push. It's committed to a fresh branch and pushed to GitHub.
  4. Open the pull request from the same dialog.
  5. Merge after review.
  6. Deploy. On Espresso, the merge triggers a deploy. Elsewhere, pull the app and run bench migrate on each site. See Apply on other sites.

What it moves ​

TypeReaches other sites?
Custom FieldsYes
Property Setters (changes made in Customize Form)Yes
Client ScriptsYes
Server ScriptsYes
NotificationsYes
Workflow StatesYes
Custom DocTypesYes, as a fixture. Try it on a second site before relying on it.
WorkflowsYes

You can track other DocTypes too. See Choose what to track. It doesn't move business data such as invoices or customers, or app code.

What you need ​

  • A Frappe app, installed on the site, whose folder is a Git repository on GitHub.com.
  • A GitHub token for that repo. See Set up.
  • The System Manager role to set it up. People with Hydra User or Hydra Admin (from HydraAI) can use the page too.

Where to next ​

Updated 6 Oct 2026