Tenants and users
The account hierarchy
Graftport is organised into three levels:
Tenant (one per account / agency)
└── Migration (one per source → destination pair)
├── Mapping (one per resource type)
└── Run (each ETL attempt)Tenant is the billable unit. One monthly platform fee, one shared included-records allowance, one team of users. An agency running migrations for twenty clients has one tenant; each client’s migration is a row inside that tenant.
Migration is the workspace for one merchant move. It holds source credentials, destination credentials, enabled resources, and run history. Two migrations on the same tenant are completely isolated at the data level — a mapping change on migration A cannot affect migration B.
User accounts belong to the tenant, not to individual migrations. Every user on the tenant can see every migration. There is no per-migration access control.
Billing and shared allowance
The monthly included-records allowance is shared across all migrations that fire during the billing month. A 100,000-record allowance fully consumed by one large migration leaves subsequent migrations that month charging at the tier 1 per-record rate from record one.
Re-syncs across all migrations are charged at the sync rate, which is lower than the first-load tier rates.
The pricing page calculator estimates cost for a single migration in isolation. For a multi-migration month, sum the projected first-load and sync counts across migrations and run the projection once at the tenant level.
Isolation between migrations
Migrations share a tenant but are isolated from each other:
- Source credentials for migration A are never readable by migration B.
- A run on migration A cannot read or write migration B’s data.
- Row-level security in the database enforces this — there is no configuration option that relaxes it.
The audit trail (run history, mapping versions, record events) is scoped per migration. If you need to answer “what did we send to Shopify on this date for this client?”, that answer lives entirely within the migration’s run history.
Moving a migration between tenants
A migration can be moved from one tenant to another. This is an admin-level operation — contact Graftport support with the migration slug and the destination tenant identifier. Source credentials and mapping history move with it. Billing for past runs stays on the original tenant; future runs bill to the new one.
Enterprise tenants
Tenants running more than 20 brand replatforms per year have access to enterprise plan options: larger included allowances, lower per-record rates above the tier threshold, and a dedicated runner pool. Contact hello@graftport.com to discuss.