To request a migration, email support@beebole.com. Tell us which legacy account to import, which account it should land in, and how far back you want time records. There is no self-service migration screen in the app.
What gets migrated
Saved Legacy reports are not copied. Rebuild the ones you need in Reports, where you can save them again.
The migration is a snapshot: it copies your Legacy data as it stands on the day it runs. Entries made in Legacy after that are not carried over, and the account cannot be migrated a second time to pick them up.
A few details worth knowing about the conversion:
- Rate currency. A legacy rate that carries no currency of its own — split rates and unbillable rates never do — falls back to the migrated account’s own currency, taken from the main company, rather than to a default like US dollars.
- Clock times. An entry with a complete, same-day start and end time keeps both. Anything else — no times, only one of the two, an end at or before the start — becomes a whole-day entry. Either way the entry’s duration stays exactly what legacy reported, so report totals never move because times were imported.
- Custom field history. A legacy field that held a history of values collapses to a single value in the new account, and the most recent one wins.
- “No task” projects. A legacy project set to offer no activity at all keeps that behavior: its task picker offers nothing.
- External IDs. Every legacy external ID becomes the value of a text custom field named External ID, visible on people and on the migrated project categories. Integrations that matched records on that ID read it back through the API, where custom field values are exposed like any other data.
Data can only be migrated as is. You can choose which data sets to bring over — for example people and projects but no time records — and how far back time records go, but not to restructure the account on the way in. If you want a different structure, see Review your structure before you switch.
Role mapping
Legacy user groups become the built-in roles of the new platform. Per-user permission settings from Legacy are not carried over, so review the role grid after the import — in particular if contractors need less access than employees, since both land in the same role.What to expect after the migration
Beebole treats the imported history as closed business, so nobody has to re-submit years of timesheets:- Everything up to the cut-over is approved. Each person gets a single approval covering their whole imported history, so no migrated period shows up as a draft, nothing reaches an approver’s queue, and no approval email is ever sent for it.
- The timesheet lock date is set to the last imported day. Migrated records are frozen from the start — admins included — and a period the lock date covers cannot be submitted, so imported history can’t be pushed back into the approval flow by hand.
- Timesheet scores ignore pre-import periods. A person’s timesheet score is computed only from periods after the cut-over, so periods they never worked in the new app don’t read as missed submissions.
- Imported entries keep the amounts legacy reported. Billing and cost figures on migrated entries come from the legacy account, so report totals reconcile with what you saw before the move.
- Nobody is notified. Migrating people creates their records without sending invitations. Invite them from the People page in the sidebar when you are ready.
Related content
Migration guide
How the legacy and new systems coexist, and what has changed between them.
Master data review
Check the imported configuration entity by entity, and fix it in bulk.
Account settings
Review the organization profile and account-level settings after the import.
Data exports
Export your Beebole data for backup or external analysis.
Frequently asked questions
How do I migrate my legacy Beebole account?
How do I migrate my legacy Beebole account?
Email support@beebole.com and we run the import for you. Beebole has no self-service migration screen: tell us which legacy account to import, which new account it should land in, which data sets you want, and how far back time records should go.
Can a Beebole account be migrated more than once?
Can a Beebole account be migrated more than once?
No. The migration is additive and runs once per account — a second run would duplicate everything, so Beebole refuses it. If something needs to be corrected afterwards, contact support and we look at it with you.
Can I migrate only part of my legacy data?
Can I migrate only part of my legacy data?
Yes. Beebole support can leave out whole data sets — for example bring over people and projects but no time records — and set a start date so only recent entries are imported. What you cannot do is change the structure on the way in: the hierarchy, rates, and settings arrive as they were.
I imported my time entries myself: how do billing and cost come over?
I imported my time entries myself: how do billing and cost come over?
They don’t come with the entries. A time entry in Beebole carries no amount: reports calculate billing and cost from the rates set on your organization, tags, people, and projects, using the rate whose From date is on or before each entry’s date. Recreate your Legacy rates with the same From dates, by hand in the Billing and Cost panels or through the API, and your imported entries are valued like any others. Only a migration run by Beebole support keeps the billing and cost amounts Legacy calculated for each entry it imports.
How do legacy user groups map to roles in the new Beebole?
How do legacy user groups map to roles in the new Beebole?
In Beebole, administrators become Admin, employees and contractors both become Employee, team leaders become People manager, and project managers become Project manager; any unrecognized group falls back to Employee. Legacy per-user permission tweaks are not migrated, so adjust the roles — or duplicate one for contractors — once the import is done.
Where do the legacy external IDs end up?
Where do the legacy external IDs end up?
In a text custom field named External ID, created in Beebole by the migration and visible on people and on the migrated project categories. You can read and edit it like any custom field, and scripts reach it through the API’s custom field queries and mutations.