SocialHub.AI
Resources · Developer Center

Workspace Data Export

Export an entire workspace as one JSON archive. A workspace admin requests it from Account → Data & Export in the app, or over the API below — it runs as an async job, is downloaded over a short-lived signed link, and leads with a coverage manifest so you can verify completeness. Secrets are excluded and every request is audited.

The shape of it

Admin-only

The export endpoints require a workspace admin. They cover the whole workspace, so they're gated to the role that's allowed to see all of it.

Asynchronous by design

A request enqueues a background job that assembles the archive, so a large workspace never blocks on one HTTP request. You poll for status, then download.

Signed, short-lived download

The finished archive is fetched through a signed link that expires shortly after issue — not a public or permanent URL.

Audited end to end

Every export request and every download is written to the audit trail, so who exported what, and when, is always on the record.

Request an export

One admin-only endpoint starts a background job. It returns immediately with a job id; the archive is assembled behind the scenes.

// Kick off a full-workspace export. Requires a workspace ADMIN session (org owner/admin).
// The whole export is scoped to the caller's own workspace (tenant-isolated).
POST https://flash.socialhub.ai/api/flash/account/data-export
// → { data: { id: "<jobId>", status: "pending", deduped: false } }
//   The archive is assembled in the background — this returns immediately. If an
//   export is already pending/running, the same job is returned (deduped: true).

Poll, then download

// Poll for status, then download when it's ready.
GET https://flash.socialhub.ai/api/flash/account/data-export
// → { data: {
//       jobs: [ { id, status, rowCount, createdAt, completedAt, error } ],
//       dataHandling: { summary, facts: [ ... ] }   // the honest data-handling notes
//     } }
//   status is one of: "pending" | "running" | "completed" | "failed"
//
// When a job is "completed", fetch a short-lived signed download link:
GET https://flash.socialhub.ai/api/flash/exports/{id}/download
// → { data: { url: "<short-lived signed link>" } }
//   Download the archive before the link expires; re-request to get a fresh one.

The coverage manifest

The archive is one JSON document that opens with a manifest of every included section and its record count — so completeness is verifiable, not assumed. Field names below are illustrative of the manifest's shape.

// The archive is a single JSON document that LEADS with a coverage manifest:
// exactly which sections are included and how many records are in each. Large
// sections are capped for a manageable export — the manifest flags where a cap applied.
{
  "manifest": {
    "generatedAt": "<timestamp>",
    "sections": [
      { "name": "members",   "recordCount": <n>, "capped": <bool> },
      { "name": "orders",    "recordCount": <n>, "capped": <bool> },
      { "name": "campaigns", "recordCount": <n>, "capped": <bool> }
      // …one entry per included section
    ]
  },
  // …the section payloads follow.
}

What the archive covers

The export spans the whole workspace. Large sections are capped for a manageable download, and the manifest notes wherever a cap applied.

membersordersteamsegmentstagsregionscampaigns + performancepush templatesstrategy initiativesad connectionsloyalty programcoupon poolsmember portal pagesNPScatalog brands & categoriescustom objectscustom metricsembedded appsprivacy policiesDSAR history

Secrets are excluded

API keys, credentials and tokens are deliberately left out of the archive. Data portability never means exporting the keys to your integrations.

Per-member personal data has its own export

This workspace archive is operational data. Detailed personal data about an individual member is served through the per-member data-subject export.

How the data is handled

Managed cloud, single region

The platform runs on managed cloud infrastructure in a single region.

Encrypted in transit & at rest

TLS on the wire and AES-256 at rest — including the export archive files themselves.

Managed-database backups

The managed database is backed up, so the underlying data is durable.

Sub-processors published

Infrastructure sub-processors are listed on the trust page, with notice before they change.

For the standards we're held to and how we support your compliance obligations, see the Data Compliance overview and the Data Security developer guide.

Building an export flow?

Talk to an engineer about the admin export job, the signed download, the coverage manifest, or the per-member data-subject export.

Talk to engineering