Org data export and inviting members
Two admin tasks live in Settings that every rollout needs: getting your data out (a full ZIP export of the organization) and getting people in (inviting members, including people who do not have a CompStack account yet). Use the export for backups, offboarding, or procurement questionnaires. Use invites to grow your team within your plan's seat limit.
Before you start
- Both features require an org admin account. Non-admins cannot open Settings.
- For invites, know which role the new member should get (for example Manager). Roles are listed in the invite form.
- Your plan sets a seat limit. If the org is full, invites fail until you upgrade in Settings > Billing.
Export all organization data
The export downloads a ZIP with one JSON file per table plus a manifest. It covers 50 tables: the organization itself, memberships, departments, processes, documents and document versions, approval chains, controls, evidence, audits and checklist items, findings, CAPA, risks and treatments, assessments, management reviews, interested parties, context issues, opportunities, objectives, KPIs and datapoints, certification cycles and visits, audit plan slots and meetings, tasks, notifications, attestation campaigns and responses, incidents, SoA entries, vendors and vendor assessments, trainings and assignments, business impact analyses, continuity plans and tests, change requests, equipment and equipment events, chemicals, complaints, work permits, module settings, record types, and records.
The export contains exactly what your signed-in account can read. Files themselves (uploaded documents, evidence files) are exported as metadata only: names, paths, and sizes, not the file bytes.
- Open Settings, then the General tab.
- Scroll to the Data export section.
- In the Export organization data card, click Export.
- A dialog titled "Exporting organization data" shows live progress, one table at a time ("Fetching audits, 12 of 50 tables").
- When it finishes, your browser downloads a file named
compstack-export-<org-name>-<yyyymmdd>.zipand a message summarizes the result, for example "Export ready: 1,240 rows across 50 tables". - Open the ZIP. You will find:
manifest.json: what was exported, when, from which app version, with per-table row counts.tables/<table>.json: one pretty-printed JSON array per table.
Limits and flags:
- Each table is capped at 10,000 rows. A table that hits the cap is listed in the manifest under
truncated_tables, so the bundle is honest about being partial. - A table that fails to fetch is skipped rather than failing the whole export. Skipped tables are listed in the manifest under
skipped_tablesand counted in the summary message.
Invite an existing CompStack user
Use this when the person already has a CompStack account.
- Open Settings, then the Members & roles tab.
- Under "Invite a member", type their account email in the Email field.
- Pick a Role from the dropdown (defaults to Manager).
- Click Invite.
- On success you see "Invited [email]." and they appear in the member list. They can now switch to your organization.
If they have no account yet, this form fails with a message telling you to have them sign up first. For those people, use invite by link instead.
Invite by link (works for people without an account)
- In Settings > Members & roles, click Invite by link.
- In the "Invite by link" dialog, enter their Email and pick a Role.
- Click Create link. The dialog shows a URL of the form
https://<your-app>/accept-invite?token=.... - Click Copy link and send it to your teammate over email or chat, then click Done.
Facts about the link:
- It expires in 14 days.
- It can be used once.
- If no role was picked, the new member gets the Manager role.
- Accepting still enforces your seat limit, so a full org rejects the invite until you free a seat or upgrade.
Accept an invite
This is what your teammate does with the link.
- Open the invite link. It lands on the
/accept-invitepage. - If they are not signed in, the page says "You have been invited" and offers Create account and Sign in buttons. They sign up or sign in, then open the same link again. The link stays valid.
- Signed in, the page shows "Join organization" with an Accept invite button. Click it.
- On success the page says "Welcome aboard" with the organization name, and a Go to dashboard button. The new organization is available in their org switcher right away.
If the person was already a member but deactivated, accepting the invite reactivates their membership instead of creating a duplicate.
Try it
- Open Settings > General and click Export in the Data export card. Expected: a progress dialog counts through the tables, then a ZIP downloads.
- Open the downloaded ZIP. Expected: a
manifest.jsonplus atables/folder with one JSON file per exported table. - Check
manifest.json. Expected:row_countsper table,total_rows,app_version, andexported_atfields;truncated_tablesonly appears if a table hit 10,000 rows. - In Settings > Members & roles, invite an email that has no account with the Invite button. Expected: an error telling you the user must sign up first.
- Click Invite by link, enter the same email, pick a role, and click Create link. Expected: a one-time link containing
/accept-invite?token=appears with a Copy link button. - Open the link in a private browser window while signed out. Expected: "You have been invited" with Create account and Sign in buttons.
- Sign up, then open the link again and click Accept invite. Expected: "Welcome aboard" and the org appears in the new user's org switcher.
- Open the same link a second time and click Accept invite. Expected: an error that the link was already used.
- In the member list, confirm the new member shows with the role you picked. Expected: role dropdown shows it; a Pending tag shows only until they have accepted.
If something goes wrong
- "No user with that email yet. Ask them to sign up first, then invite again.": the plain Invite button only works for existing accounts. Use Invite by link for new people.
- "Your tier seat limit is reached. Upgrade in Billing first.": your plan's active-member limit is full. Deactivate an unused member or upgrade in Settings > Billing.
- "This invite link has expired. Ask your admin for a new one.": links die after 14 days. Create a fresh one.
- "This invite link was already used.": each link is single use. Create a new link per person.
- "This invite link is not valid." or "Invalid invite link": the URL is broken or the token is missing. Re-copy the whole link.
- "The organization's seat limit is reached. Ask your admin to upgrade the plan.": shown to the invitee when the org filled up between invite and acceptance.
- Export summary says tables were skipped: those tables failed to fetch (often a schema mismatch after an update). The rest of the export is intact; check
skipped_tablesin the manifest and retry later. - Export is missing rows you expected: the export is scoped to what your account can read, and each table caps at 10,000 rows. Check
truncated_tablesin the manifest.
Related pages: Admin and onboarding, Account security: MFA and recovery codes.
← Back to CompStack