Datenformate des Datenexports
Formatversion 1
Dieses Verzeichnis beschreibt die Formate, Datenstrukturen und Standards des Datenexports in miphu. Es gehört zu § 11 Absatz 7 und Anlage 1 der Nutzungsbedingungen.
Das Verzeichnis liegt derzeit nur auf Englisch vor. Die deutsche Fassung ist in Vorbereitung.
The format of the archive an owner of a company account downloads in miphu (Settings, Company, Export data). It is the register of data formats, data structures and standards that Art. 26 of Regulation (EU) 2023/2854 (Data Act) asks a provider to publish, and it describes every category of exportable data in Annex 1 of the terms of use.
The archive
One ZIP file (APPNOTE 6.3.10; ZIP64 records only above 4 GiB or 65,535 files). Entry names are ASCII.
| Path | Content |
|---|---|
README.md | What the archive is, in German and English. |
manifest.json | Format name and version, export id, company, time of creation, every other entry with size and SHA-256, the columns of each dataset, and everything left out with its reason. |
schema/<area>/<dataset>.schema.json | JSON Schema (2020-12) of one dataset. |
data/<area>/<dataset>.json | The dataset: one JSON array of objects, one object per record. |
data/<area>/<dataset>.csv | The same records as CSV. |
files/... | Binary files (PDF, XML, PNG, JPEG, DATEV files), referenced from their dataset. |
The manifest's format is miphu-company-export and formatVersion is 1.
Encoding
- Text: UTF-8 everywhere.
- JSON: keys are the column names below, in this order. Times are UTC in ISO 8601 with a
Z(2026-09-15T08:30:00.123Z); dates areYYYY-MM-DD; amounts (numeric) and 64-bit integers (bigint) are decimal strings, so no value loses precision; JSON columns are embedded as stored. - CSV: RFC 4180, comma, CRLF, a header row with the column names, every value in double quotes, no byte order mark. An empty field is null. JSON columns and lists appear as JSON text. JSON is authoritative where CSV cannot tell an empty text from a missing value. Values are written unchanged; a spreadsheet should import them as text.
- Files: a column that holds a file is written as
{"path", "sha256", "bytes"}in JSON and as the path in CSV; the file is stored under that path. - Integrity:
sha256in the manifest and in file references is the SHA-256 of the uncompressed bytes, as lower-case hex. - Deleted and archived records are included;
deletedAt,archivedAtorarchived_atflag them.
Versioning
Within version 1 datasets and columns may be added. A column or dataset that is renamed, removed or changes its type starts version 2, and this register keeps the description of version 1.
Categories
| Annex 1 category | Datasets |
|---|---|
| Unternehmen (Company) | company.profile, company.legal-acceptances, company.invoice-number-series, company.issued-invoice-series, company.quote-number-series, company.quote-draft-counter, company.tags, company.tag-assignments, company.tag-requests, company.creation-request, company.demo-registration |
| Zugänge und Team (Accounts and team) | team.accounts, team.memberships, team.departments, team.department-assignments, team.department-requests, team.avatars, team.avatar-requests, team.access-requests |
| Vertrieb und Kontakte (Sales and contacts) | crm.customers, crm.contacts, crm.leads, crm.notes, crm.tasks, crm.task-references, crm.lead-requests, crm.note-requests, crm.record-requests, crm.import-batches, crm.import-records, crm.import-archive, crm.history-batches, crm.history-records |
| Angebote, Aufträge, Rechnungen (Quotes, orders, invoices) | documents.branding, documents.branding-logos, documents.branding-requests, documents.presentation-records, documents.quotes, documents.issued-quotes, documents.quote-origins, documents.quote-requests, documents.orders, documents.order-requests, documents.invoices, documents.invoice-files, documents.einvoice-validation, documents.invoice-requests, documents.imported-invoice-batches, documents.imported-invoices, documents.imported-invoice-lines, documents.imported-invoice-files, documents.imported-document-batches, documents.imported-documents, documents.imported-document-files, documents.imported-quote-parents |
| Zahlungen, Ausgaben, Planung (Payments, expenses, planning) | money.invoice-payments, money.invoice-payment-balances, money.invoice-payment-requests, money.expenses, money.expense-requests, money.expense-originals, money.expense-original-state, money.expense-original-requests, money.expense-payments, money.expense-payment-balances, money.expense-payment-requests, money.cash-openings, money.cash-plan, money.cash-plan-requests |
| DATEV-Exporte (DATEV exports) | datev.settings, datev.runs, datev.run-files, datev.run-items, datev.partner-accounts |
| Personal (Personnel) | personnel.people, personnel.requests |
| Einsatzplanung und Zeiten (Scheduling and time records) | schedule.settings, schedule.shifts, schedule.shift-history, schedule.absences, schedule.requests, schedule.time-chains, schedule.time-punches, schedule.time-corrections, schedule.time-correction-decisions, schedule.time-approvals, schedule.time-days, schedule.time-requests |
| Änderungsprotokoll (Change log) | audit.log |
| KI-Verbindungen (AI app connections) | ai.settings, ai.connections, ai.access-log |
| Abonnement (Subscription) | subscription.source, subscription.seat-control, subscription.apple-status, subscription.apple-bindings, subscription.apple-transactions, subscription.apple-renewals, subscription.apple-purchase-intents, subscription.operator-grants, subscription.stripe-bindings, subscription.complimentary-access |
Datasets of the category Abonnement are in the owner's export only; an administrator's export lists them in manifest.json under excluded.ownerOnlyDatasets.
Not included
| Data | Reason | Annex 1 Part 2 |
|---|---|---|
platform_account.deletion: SwiftLabs' record of an account deletion and its purge date. | SwiftLabs' own evidence of billing and operator actions, kept for its own accounting. | Eigene Nachweise von SwiftLabs über Abrechnung und Betrieb |
platform_account.lapse: SwiftLabs' record of a subscription that ended: when it ended, the reminder mails sent and the archive date. | SwiftLabs' own evidence of billing and operator actions, kept for its own accounting. | Eigene Nachweise von SwiftLabs über Abrechnung und Betrieb |
platform_account.purge_run: Log of the scheduled purge runs. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_apple.fact_receipt: Processing record of App Store notifications; the facts themselves are exported. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_apple.purchase_context: The account token that binds App Store purchases to the company. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_apple_delivery.attempt: Attempts of that processing queue. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_apple_delivery.budget: Rate budget of purchase confirmations. | Internal data of rate limiting and abuse protection. | interne Daten der Anfragebegrenzung und Missbrauchsabwehr |
platform_apple_delivery.delivery: Processing queue of App Store purchase confirmations. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_apple_delivery.recovery: Recovery schedule of that processing queue. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_apple_delivery.request: Requests into that processing queue. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_apple_delivery.retry: Retries of that processing queue. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_billing.receipt: SwiftLabs' evidence of billing changes it applied. | SwiftLabs' own evidence of billing and operator actions, kept for its own accounting. | Eigene Nachweise von SwiftLabs über Abrechnung und Betrieb |
platform_browser.command: Commands bound to a browser session. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_browser.context: Browser sessions of the web portal with their proofs. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_connector.authorization_code: One-time authorization codes of AI apps. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_connector.consent: Pending consent handles of AI app sign-ins. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_connector.refresh_token: Refresh tokens of AI app connections. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_connector.session: Access sessions of AI app connections. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_identity.employee_session: Binding of a sign-in session to the company. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_internal.complimentary_event: SwiftLabs' operator evidence for complimentary access it granted, changed or revoked. | SwiftLabs' own evidence of billing and operator actions, kept for its own accounting. | Eigene Nachweise von SwiftLabs über Abrechnung und Betrieb |
platform_internal.receipt: SwiftLabs' operator evidence for grants it set by hand. | SwiftLabs' own evidence of billing and operator actions, kept for its own accounting. | Eigene Nachweise von SwiftLabs über Abrechnung und Betrieb |
platform_signup.pending: Short-lived sign-up before the company existed: password hash, sign-up secret and App Store account token until it completes or expires; afterwards only identifiers exported elsewhere. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_stripe.checkout: Payment page sessions and their addresses. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_stripe.event: Processing record of payment provider webhooks. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
Column credentialVersion of team.accounts | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
Column passwordHash of team.accounts | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
Column kosit_report of documents.einvoice-validation | Server and processing logs of the service. | Server- und Fehlerprotokolle |
Column vera_report of documents.einvoice-validation | Server and processing logs of the service. | Server- und Fehlerprotokolle |
Column notice_hash of ai.connections | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
Column token of subscription.apple-bindings | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
Column granted_by of subscription.complimentary-access | SwiftLabs' own evidence of billing and operator actions, kept for its own accounting. | Eigene Nachweise von SwiftLabs über Abrechnung und Betrieb |
Column revoked_by of subscription.complimentary-access | SwiftLabs' own evidence of billing and operator actions, kept for its own accounting. | Eigene Nachweise von SwiftLabs über Abrechnung und Betrieb |
| Insights (Einblicke) | Computed on request from payments and expenses, which are exported; no data of their own. | - |
| AI app access log older than 90 days | Only the last 90 days are exported. | - |
Verifying clock punches
schedule.time-punches and schedule.time-corrections form one hash chain per person, ordered by seq. Each record's hash is the SHA-256 (hex) of a text of its fields joined by | (the exact field list is the description of hash below), with times as Unix milliseconds and empty values as empty text; prev_hash is the hash of the person's previous record, and schedule.time-chains holds the last one.
Datasets
company.profile
The company: name, address, tax and invoice details, currency, time zone, trial and seat facts.
Files: data/company/profile.json, data/company/profile.csv, schema/company/profile.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
name | string | text | |
timezone | string | text | |
currency | string | text | |
trialStartsAt | string (date-time) | timestamp(3) with time zone | |
trialEndsAt | string (date-time) | timestamp(3) with time zone | |
seatCapacity | integer | integer | |
paidUntil | string (date-time) or null | timestamp(3) with time zone | |
street | string or null | text | |
postalCode | string or null | text | |
city | string or null | text | |
countryCode | string or null | text | |
taxId | string or null | text | |
profileVersion | integer | integer | |
trialConsumedAt | string (date-time) or null | timestamp(3) with time zone | |
iban | string or null | text | |
invoiceEmail | string or null | text | |
invoiceContactName | string or null | text | |
invoiceContactPhone | string or null | text | |
invoiceContactEmail | string or null | text | |
legalForm | string or null | text | |
state | string or null | text | |
phone | string or null | text | |
email | string or null | text | |
website | string or null | text | |
bic | string or null | text | |
bankName | string or null | text | |
managingDirectors | array | text[] | |
registerCourt | string or null | text | |
registerNumber | string or null | text | |
registeredSeat | string or null | text | |
smallBusiness | boolean | boolean |
company.legal-acceptances
Acceptances of the terms of use and the data processing agreement: which account accepted which version, and when.
Files: data/company/legal-acceptances.json, data/company/legal-acceptances.csv, schema/company/legal-acceptances.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (decimal text) | bigint | |
account_id | string | text | Refers to team.accounts.id. |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
document | string | text | |
version | string | text | The version of the document that was accepted, named by its publication date. |
accepted_at | string (date-time) | timestamp(3) with time zone |
company.invoice-number-series
Counter of draft invoice numbers.
Files: data/company/invoice-number-series.json, data/company/invoice-number-series.csv, schema/company/invoice-number-series.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
next_number | string (decimal text) | bigint |
company.issued-invoice-series
Number series of issued invoices: prefix, next number, whether it is locked.
Files: data/company/issued-invoice-series.json, data/company/issued-invoice-series.csv, schema/company/issued-invoice-series.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
prefix | string | text | |
next_number | string (decimal text) | bigint | |
version | integer | integer | Revision counter; rises with every change. |
locked | boolean | boolean |
company.quote-number-series
Number series of issued quotes per year.
Files: data/company/quote-number-series.json, data/company/quote-number-series.csv, schema/company/quote-number-series.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
year | integer | integer | |
next_number | string (decimal text) | bigint | |
version | integer | integer | Revision counter; rises with every change. |
locked | boolean | boolean |
company.quote-draft-counter
Counter of quote drafts.
Files: data/company/quote-draft-counter.json, data/company/quote-draft-counter.csv, schema/company/quote-draft-counter.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
next_seq | integer | integer |
company.tags
The company's tags (Schlagworte) with colour; archived tags are included and flagged.
Files: data/company/tags.json, data/company/tags.csv, schema/company/tags.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
name | string | text | |
colour | string | text | One of grey, coral, violet, green, gold, petrol, rose. |
version | integer | integer | Revision counter; rises with every change. |
created_by | string | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
archived_at | string (date-time) or null | timestamp with time zone | When the record was archived. Archived records are included and flagged here. |
company.tag-assignments
Which tag is set on which lead, customer or contact.
Files: data/company/tag-assignments.json, data/company/tag-assignments.csv, schema/company/tag-assignments.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
entity_type | string | text | One of lead, customer, contact. |
entity_id | string | text | |
tag_id | string (uuid) | uuid | |
created_by | string | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
company.tag-requests
Requests that created, changed or assigned tags.
Files: data/company/tag-requests.json, data/company/tag-requests.csv, schema/company/tag-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
target_id | string or null | text | |
outcome | string | text | One of created, updated, archived, restored, deleted, assigned. |
result | any JSON | jsonb | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
company.creation-request
The request that created the company.
Files: data/company/creation-request.json, data/company/creation-request.csv, schema/company/creation-request.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
accountId | string | text | Refers to team.accounts.id. |
requestId | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
createdAt | string (date-time) | timestamp(3) with time zone | When the record was created. |
company.demo-registration
Marks a demonstration company. Empty for every real company.
Files: data/company/demo-registration.json, data/company/demo-registration.csv, schema/company/demo-registration.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
demo_key | string | text | |
registered_at | string (date-time) | timestamp with time zone | |
registered_by | string | text |
team.accounts
Name, e-mail address and state of every account that has or had access to the company.
Files: data/team/accounts.json, data/team/accounts.csv, schema/team/accounts.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
email | string | text | |
name | string | text | |
verifiedAt | string (date-time) or null | timestamp(3) with time zone | |
disabledAt | string (date-time) or null | timestamp(3) with time zone |
team.memberships
Access of each account: role, CRM, finance and planning rights, title, rank, status.
Files: data/team/memberships.json, data/team/memberships.csv, schema/team/memberships.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
accountId | string | text | Refers to team.accounts.id. |
role | string | text | One of owner, admin, member. |
crm | boolean | boolean | |
finance | boolean | boolean | |
status | string | text | One of active, provisioned, disabled. |
version | integer | integer | Revision counter; rises with every change. |
orgTitle | string or null | text | |
sortRank | integer or null | integer | |
orgProfileVersion | integer | integer | |
planning | boolean | boolean |
team.departments
Departments.
Files: data/team/departments.json, data/team/departments.csv, schema/team/departments.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
name | string | text | |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
archived_at | string (date-time) or null | timestamp with time zone | When the record was archived. Archived records are included and flagged here. |
team.department-assignments
Which member belongs to which department.
Files: data/team/department-assignments.json, data/team/department-assignments.csv, schema/team/department-assignments.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
membership_id | string | text | |
department_id | string (uuid) | uuid | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
team.department-requests
Requests that changed departments.
Files: data/team/department-requests.json, data/team/department-requests.csv, schema/team/department-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload | any JSON | jsonb | |
target_id | string | text | |
outcome | string | text | One of created, renamed, archived, deleted, restored, assigned. |
applied_version | integer | integer | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
team.avatars
Profile pictures of members, as JPEG files with a thumbnail.
Files: data/team/avatars.json, data/team/avatars.csv, schema/team/avatars.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
membership_id | string | text | |
version | integer | integer | Revision counter; rises with every change. |
thumb_bytes | object or null | bytea | |
image_bytes | object or null | bytea | |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
team.avatar-requests
Requests that set or removed profile pictures.
Files: data/team/avatar-requests.json, data/team/avatar-requests.csv, schema/team/avatar-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
target_id | string | text | |
operation | string | text | One of replace, delete. |
expected_version | integer | integer | |
input_hash | string | text | |
applied_version | integer | integer | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
team.access-requests
Requests that granted or changed access.
Files: data/team/access-requests.json, data/team/access-requests.csv, schema/team/access-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
account_id | string | text | Refers to team.accounts.id. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
crm.customers
Customers. Deleted customers are included and flagged by deletedAt.
Files: data/crm/customers.json, data/crm/customers.csv, schema/crm/customers.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
name | string | text | |
strasse | string or null | text | |
plz | string or null | text | |
ort | string or null | text | |
land | string | text | |
ustId | string or null | text | |
email | string or null | text | |
createdById | string | text | |
createdAt | string (date-time) | timestamp(3) with time zone | When the record was created. |
updatedAt | string (date-time) | timestamp(3) with time zone | When the record last changed. |
deletedAt | string (date-time) or null | timestamp(3) with time zone | When the record was deleted. Deleted records stay for the change log and are flagged here. |
bundesstaat | string or null | text | |
belegsprache | string or null | text |
crm.contacts
Contacts, with their customer.
Files: data/crm/contacts.json, data/crm/contacts.csv, schema/crm/contacts.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
vorname | string | text | |
nachname | string | text | |
email | string or null | text | |
telefon | string or null | text | |
position | string or null | text | |
customerId | string or null | text | |
createdById | string | text | |
requestId | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
createdAt | string (date-time) | timestamp(3) with time zone | When the record was created. |
updatedAt | string (date-time) | timestamp(3) with time zone | When the record last changed. |
deletedAt | string (date-time) or null | timestamp(3) with time zone | When the record was deleted. Deleted records stay for the change log and are flagged here. |
crm.leads
Leads (Anfragen) in every stage, with lost reason and company details.
Files: data/crm/leads.json, data/crm/leads.csv, schema/crm/leads.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
titel | string | text | |
stage | string | text | One of Neu, In Bearbeitung, Gewonnen, Verloren. |
verlustgrund | string or null | text | |
customerId | string or null | text | |
contactId | string or null | text | |
ownerId | string or null | text | |
createdById | string | text | |
requestId | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
nextTaskId | string or null | text | |
createdAt | string (date-time) | timestamp(3) with time zone | When the record was created. |
updatedAt | string (date-time) | timestamp(3) with time zone | When the record last changed. |
deletedAt | string (date-time) or null | timestamp(3) with time zone | When the record was deleted. Deleted records stay for the change log and are flagged here. |
telefon | string or null | text | |
email | string or null | text | |
website | string or null | text | |
strasse | string or null | text | |
plz | string or null | text | |
firmenOrt | string or null | text | |
land | string or null | text | |
branche | string or null | text | |
quelle | string or null | text | |
websiteObservationUrl | string or null | text | |
websiteObservationReachable | boolean or null | boolean | |
websiteObservedAt | string (date-time) or null | timestamp(3) with time zone |
crm.notes
Notes on leads, customers and contacts. Archived notes are included and flagged by archivedAt.
Files: data/crm/notes.json, data/crm/notes.csv, schema/crm/notes.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
leadId | string or null | text | |
customerId | string or null | text | |
contactId | string or null | text | |
text | string | text | |
createdById | string | text | |
requestId | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
createdAt | string (date-time) | timestamp(3) with time zone | When the record was created. |
version | integer | integer | Revision counter; rises with every change. |
updatedAt | string (date-time) | timestamp(3) with time zone | When the record last changed. |
deletedAt | string (date-time) or null | timestamp(3) with time zone | When the record was deleted. Deleted records stay for the change log and are flagged here. |
createTextHash | string | text | |
archivedAt | string (date-time) or null | timestamp(3) with time zone | When the record was archived. Archived records are included and flagged here. |
archivedById | string or null | text |
crm.tasks
Tasks with assignee, due date, status and the customer, contact, lead or department they refer to.
Files: data/crm/tasks.json, data/crm/tasks.csv, schema/crm/tasks.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
titel | string | text | |
beschreibung | string or null | text | |
status | string | text | One of Offen, In Arbeit, Erledigt. |
prioritaet | string or null | text | |
faelligAm | string (date-time) or null | timestamp(3) with time zone | |
assigneeId | string or null | text | |
createdById | string | text | |
customerId | string or null | text | |
createdAt | string (date-time) | timestamp(3) with time zone | When the record was created. |
updatedAt | string (date-time) | timestamp(3) with time zone | When the record last changed. |
deletedAt | string (date-time) or null | timestamp(3) with time zone | When the record was deleted. Deleted records stay for the change log and are flagged here. |
contactId | string or null | text | |
leadId | string or null | text | |
departmentId | string (uuid) or null | uuid |
crm.task-references
Quotes, orders, invoices and expenses a task refers to.
Files: data/crm/task-references.json, data/crm/task-references.csv, schema/crm/task-references.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
task_id | string | text | |
quote_id | string or null | text | |
order_id | string (uuid) or null | uuid | |
invoice_id | string or null | text | |
expense_id | string (uuid) or null | uuid |
crm.lead-requests
Requests that changed leads.
Files: data/crm/lead-requests.json, data/crm/lead-requests.csv, schema/crm/lead-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
actorId | string | text | Account that sent the request (team.accounts id). |
requestId | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
leadId | string | text | |
kind | string | text | One of schedule, remove. |
createdAt | string (date-time) | timestamp(3) with time zone | When the record was created. |
crm.note-requests
Requests that changed notes.
Files: data/crm/note-requests.json, data/crm/note-requests.csv, schema/crm/note-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
actorId | string | text | Account that sent the request (team.accounts id). |
requestId | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payloadHash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
kind | string | text | One of update, delete, archive, restore. |
noteId | string | text |
crm.record-requests
Requests that changed customers, contacts and tasks.
Files: data/crm/record-requests.json, data/crm/record-requests.csv, schema/crm/record-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
actorId | string | text | Account that sent the request (team.accounts id). |
requestId | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
kind | string | text | One of customer-create, customer-delete, task-create, task-delete. |
entityId | string | text | |
payloadHash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
crm.import-batches
Imports from an earlier system: source snapshot, mapping and reconciliation.
Files: data/crm/import-batches.json, data/crm/import-batches.csv, schema/crm/import-batches.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
source_instance | string | text | |
snapshot_hash | string | text | |
mapping_hash | string | text | |
schema_hash | string | text | |
snapshot_at | string (date-time) | timestamp(3) with time zone | |
importer_version | string | text | |
snapshot | any JSON | jsonb | |
mapping | any JSON | jsonb | |
reconciliation | any JSON | jsonb | |
imported_at | string (date-time) | timestamp(3) with time zone |
crm.import-records
Each imported record with its original values and what became of it.
Files: data/crm/import-records.json, data/crm/import-records.csv, schema/crm/import-records.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
source_instance | string | text | |
entity | string | text | One of customer, task, contact, lead, activity, lead-note, followup, personnel, finance. |
source_id | string | text | |
target_id | string | text | |
batch_id | string (uuid) | uuid | Refers to crm.import-batches.id. |
disposition | string | text | One of imported, quarantined, excluded, historical. |
source_hash | string | text | |
target_hash | string or null | text | |
original | any JSON | jsonb | |
plan | any JSON | jsonb |
crm.import-archive
Imported history entries the company archived.
Files: data/crm/import-archive.json, data/crm/import-archive.csv, schema/crm/import-archive.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
target_id | string | text | |
archived_by | string | text | |
archived_at | string (date-time) | timestamp with time zone | When the record was archived. Archived records are included and flagged here. |
crm.history-batches
Imports of business history.
Files: data/crm/history-batches.json, data/crm/history-batches.csv, schema/crm/history-batches.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
source_batch_id | string (uuid) | uuid | Refers to crm.import-batches.id. |
crm_batch_id | string (uuid) | uuid | Refers to crm.import-batches.id. |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
plan_hash | string | text | |
version | integer | integer | Revision counter; rises with every change. |
crm.history-records
Imported business history entries (activities of the earlier system).
Files: data/crm/history-records.json, data/crm/history-records.csv, schema/crm/history-records.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
source_batch_id | string (uuid) | uuid | Refers to crm.history-batches.source_batch_id. |
kind | string | text | One of offer, order, task. |
source_key | string | text | |
source_hash | string | text | |
payload | any JSON | jsonb |
documents.branding
The company's brand colour and the colours printed from it, and which logo is current.
Files: data/documents/branding.json, data/documents/branding.csv, schema/documents/branding.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
version | integer | integer | Revision counter; rises with every change. |
logo_sha256 | string or null | text | |
colour | string or null | text | |
text_colour | string or null | text | |
line_colour | string or null | text | |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
documents.branding-logos
Company logos as PNG files: the current one and every earlier one an issued document still prints.
Files: data/documents/branding-logos.json, data/documents/branding-logos.csv, schema/documents/branding-logos.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
sha256 | string | text | |
bytes | object | bytea | The PNG file inside this archive, with its SHA-256 (the sha256 column). |
width | integer | integer | |
height | integer | integer | |
created_by | string | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
documents.branding-requests
Requests that changed the logo or the brand colour.
Files: data/documents/branding-requests.json, data/documents/branding-requests.csv, schema/documents/branding-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
operation | string | text | One of logo_replace, logo_remove, colour_set. |
expected_version | integer | integer | |
input_hash | string | text | |
applied_version | integer | integer | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
documents.presentation-records
What each issued quote, order and invoice was printed with, frozen at issue: branding, layout, issuer details, the customer's state and document language.
Files: data/documents/presentation-records.json, data/documents/presentation-records.csv, schema/documents/presentation-records.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
kind | string | text | One of invoice, offer, order. |
document_id | string | text | |
branding | any JSON | jsonb | The frozen presentation. Its SHA-256 is branding_hash. |
branding_hash | string | text | |
logo_sha256 | string or null | text | |
frozen_at | string (date-time) | timestamp with time zone |
documents.quotes
Quotes with draft, calculation, status and archive date.
Files: data/documents/quotes.json, data/documents/quotes.csv, schema/documents/quotes.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
customerId | string | text | |
contactId | string or null | text | |
leadId | string or null | text | |
createdById | string | text | |
seq | integer | integer | |
version | integer | integer | Revision counter; rises with every change. |
status | string | text | One of Entwurf, Archiviert, Offen, Angenommen, Abgelehnt. |
draft | any JSON | jsonb | |
calculation | any JSON | jsonb | |
createdAt | string (date-time) | timestamp(3) with time zone | When the record was created. |
updatedAt | string (date-time) | timestamp(3) with time zone | When the record last changed. |
archivedAt | string (date-time) or null | timestamp(3) with time zone | When the record was archived. Archived records are included and flagged here. |
documents.issued-quotes
Issued quotes: number, frozen content, decision, the PDF as a file.
Files: data/documents/issued-quotes.json, data/documents/issued-quotes.csv, schema/documents/issued-quotes.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
quote_id | string | text | |
number | string | text | |
issued_on | string (date) | date | |
snapshot | any JSON | jsonb | |
snapshot_hash | string | text | |
pdf | object or null | bytea | |
content_hash | string or null | text | |
issued_at | string (date-time) or null | timestamp(3) with time zone | |
decision | any JSON | jsonb | |
invoice_id | string or null | text |
documents.quote-origins
Where a quote was copied from.
Files: data/documents/quote-origins.json, data/documents/quote-origins.csv, schema/documents/quote-origins.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
quote_id | string | text | |
source_id | string | text |
documents.quote-requests
Requests that changed quotes.
Files: data/documents/quote-requests.json, data/documents/quote-requests.csv, schema/documents/quote-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
companyId | string | text | The company; the same in every row. |
actorId | string | text | Account that sent the request (team.accounts id). |
requestId | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
kind | string | text | One of create, archive, issue, decision, duplicate, convert. |
payloadHash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
quoteId | string | text |
documents.orders
Orders with draft, calculation, frozen content and the PDF as a file.
Files: data/documents/orders.json, data/documents/orders.csv, schema/documents/orders.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
customer_id | string | text | |
contact_id | string or null | text | |
lead_id | string or null | text | |
created_by | string | text | |
seq | string (decimal text) | bigint | |
version | integer | integer | Revision counter; rises with every change. |
status | string | text | One of draft, archived, confirmed, completed, cancelled. |
draft | any JSON | jsonb | |
calculation | any JSON | jsonb | |
snapshot | any JSON | jsonb | |
snapshot_hash | string or null | text | |
pdf | object or null | bytea | |
content_hash | string or null | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
archived_at | string (date-time) or null | timestamp(3) with time zone | When the record was archived. Archived records are included and flagged here. |
documents.order-requests
Requests that changed orders.
Files: data/documents/order-requests.json, data/documents/order-requests.csv, schema/documents/order-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
order_id | string (uuid) | uuid | |
kind | string | text | |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
applied_version | integer | integer | |
data | any JSON | jsonb | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
documents.invoices
Invoices and cancellation invoices: draft, frozen content with its hash, number, status.
Files: data/documents/invoices.json, data/documents/invoices.csv, schema/documents/invoices.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
customerId | string | text | |
createdById | string | text | |
draft | any JSON | jsonb | |
version | integer | integer | Revision counter; rises with every change. |
status | string | text | One of draft, artifact_pending, issued. |
snapshot | any JSON | jsonb | The frozen invoice at issue. Its SHA-256 is snapshotHash. |
snapshotHash | string or null | text | |
number | string or null | text | |
issuedAt | string (date-time) or null | timestamp(3) with time zone | |
createdAt | string (date-time) | timestamp(3) with time zone | When the record was created. |
updatedAt | string (date-time) | timestamp(3) with time zone | When the record last changed. |
documentKind | string | text | |
reversalOfId | string or null | text |
documents.invoice-files
The issued PDF and, for e-invoices, the XML of each invoice as files, with their hashes.
Files: data/documents/invoice-files.json, data/documents/invoice-files.csv, schema/documents/invoice-files.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
companyId | string | text | The company; the same in every row. |
invoiceId | string | text | |
kind | string | text | One of pdf, xml. |
snapshotHash | string | text | |
contentHash | string | text | SHA-256 of the file, as stored at issue. |
mimeType | string | text | |
content | object | bytea | The file inside this archive, with its SHA-256. |
documents.einvoice-validation
Validation receipt of each e-invoice: hashes of PDF and XML, profiles and tool versions.
Files: data/documents/einvoice-validation.json, data/documents/einvoice-validation.csv, schema/documents/einvoice-validation.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
invoice_id | string | text | Refers to documents.invoices.id. |
snapshot_hash | string | text | |
receipt | any JSON | jsonb | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
documents.invoice-requests
Requests that created, issued or cancelled invoices.
Files: data/documents/invoice-requests.json, data/documents/invoice-requests.csv, schema/documents/invoice-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
companyId | string | text | The company; the same in every row. |
actorId | string | text | Account that sent the request (team.accounts id). |
requestId | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
kind | string | text | |
payloadHash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
invoiceId | string | text |
documents.imported-invoice-batches
Imports of invoices from an earlier system.
Files: data/documents/imported-invoice-batches.json, data/documents/imported-invoice-batches.csv, schema/documents/imported-invoice-batches.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
source_batch_id | string (uuid) | uuid | Refers to crm.import-batches.id. |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
plan_hash | string | text | |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
documents.imported-invoices
Invoices imported from an earlier system.
Files: data/documents/imported-invoices.json, data/documents/imported-invoices.csv, schema/documents/imported-invoices.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
source_batch_id | string (uuid) | uuid | Refers to documents.imported-invoice-batches.source_batch_id. |
source_key | string | text | |
source_hash | string | text | |
source_status | string | text | |
number | string or null | text | |
currency | string | text | |
net_amount | string or null | text | |
document_kind | string | text | |
tax_treatment | string | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
archived_at | string (date-time) or null | timestamp with time zone | When the record was archived. Archived records are included and flagged here. |
frozen_at | string (date-time) or null | timestamp with time zone | |
due_at | string (date-time) or null | timestamp with time zone | |
paid_at | string (date-time) or null | timestamp with time zone | |
related_order_unresolved | boolean | boolean |
documents.imported-invoice-lines
Lines of imported invoices.
Files: data/documents/imported-invoice-lines.json, data/documents/imported-invoice-lines.csv, schema/documents/imported-invoice-lines.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
invoice_id | string (uuid) | uuid | Refers to documents.imported-invoices.id. |
ordinal | integer | integer | |
description | string | text | |
detail | string or null | text | |
quantity | string | text | |
unit_price | string | text | |
tax_rate | string | text | |
archived_at | string (date-time) or null | timestamp with time zone | When the record was archived. Archived records are included and flagged here. |
documents.imported-invoice-files
Documents attached to imported invoices, as files.
Files: data/documents/imported-invoice-files.json, data/documents/imported-invoice-files.csv, schema/documents/imported-invoice-files.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. |
invoice_id | string (uuid) | uuid | |
source_document_hash | string | text | |
name | string | text | |
mime | string | text | One of application/pdf, image/png, image/jpeg. |
sha256 | string | text | |
bytes | object | bytea |
documents.imported-document-batches
Imports of documents from an earlier system.
Files: data/documents/imported-document-batches.json, data/documents/imported-document-batches.csv, schema/documents/imported-document-batches.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
source_batch_id | string (uuid) | uuid | Refers to crm.import-batches.id. |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
plan_hash | string | text | |
archive_hash | string | text | |
version | integer | integer | Revision counter; rises with every change. |
documents.imported-documents
Imported documents and what they belong to.
Files: data/documents/imported-documents.json, data/documents/imported-documents.csv, schema/documents/imported-documents.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
source_batch_id | string (uuid) | uuid | Refers to documents.imported-document-batches.source_batch_id. |
file_id | string (uuid) | uuid | |
source_key | string | text | |
source_hash | string | text | |
parent_kind | string | text | One of lead, historical-offer. |
parent_id | string | text | |
name | string | text | |
mime | string | text | |
category | string or null | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
archived_at | string (date-time) or null | timestamp with time zone | When the record was archived. Archived records are included and flagged here. |
documents.imported-document-files
The imported document files.
Files: data/documents/imported-document-files.json, data/documents/imported-document-files.csv, schema/documents/imported-document-files.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
source_batch_id | string (uuid) | uuid | Refers to documents.imported-document-batches.source_batch_id. |
source_path | string | text | |
sha256 | string | text | |
bytes | object | bytea |
documents.imported-quote-parents
Quotes of the earlier system that imported documents belong to.
Files: data/documents/imported-quote-parents.json, data/documents/imported-quote-parents.csv, schema/documents/imported-quote-parents.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
source_batch_id | string (uuid) | uuid | Refers to documents.imported-document-batches.source_batch_id. |
source_key | string | text | |
source_hash | string | text | |
title | string or null | text | |
number | string or null | text | |
source_status | string | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
archived_at | string (date-time) or null | timestamp with time zone | When the record was archived. Archived records are included and flagged here. |
money.invoice-payments
Recorded payments on invoices, including corrections.
Files: data/money/invoice-payments.json, data/money/invoice-payments.csv, schema/money/invoice-payments.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. |
invoice_id | string | text | |
revision | integer | integer | |
kind | string | text | One of payment, correction. |
units | string (decimal text) | numeric | |
received_on | string (date) | date | |
reference | string or null | text | |
reason | string or null | text | |
corrects | string (uuid) or null | uuid | Refers to money.invoice-payments.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.invoice-payment-balances
Paid amount per invoice.
Files: data/money/invoice-payment-balances.json, data/money/invoice-payment-balances.csv, schema/money/invoice-payment-balances.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
invoice_id | string | text | |
revision | integer | integer | |
net_units | string (decimal text) | numeric |
money.invoice-payment-requests
Requests that recorded payments.
Files: data/money/invoice-payment-requests.json, data/money/invoice-payment-requests.csv, schema/money/invoice-payment-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload | any JSON | jsonb | |
entry_id | string (uuid) | uuid | Refers to money.invoice-payments.id. |
money.expenses
Expenses with supplier, amounts, tax and category; archived expenses are included and flagged.
Files: data/money/expenses.json, data/money/expenses.csv, schema/money/expenses.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
created_by | string | text | Refers to team.accounts.id. |
version | integer | integer | Revision counter; rises with every change. |
fields | any JSON | jsonb | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
archived_at | string (date-time) or null | timestamp with time zone | When the record was archived. Archived records are included and flagged here. |
money.expense-requests
Requests that changed expenses.
Files: data/money/expense-requests.json, data/money/expense-requests.csv, schema/money/expense-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload | any JSON | jsonb | |
expense_id | string (uuid) | uuid | |
applied_version | integer | integer |
money.expense-originals
Uploaded receipts (PDF, PNG, JPEG) as files, including replaced ones.
Files: data/money/expense-originals.json, data/money/expense-originals.csv, schema/money/expense-originals.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. |
expense_id | string (uuid) | uuid | |
filename | string | text | |
media_type | string | text | One of application/pdf, image/jpeg, image/png. |
bytes | object | bytea | |
sha256 | string or null | text | |
byte_length | integer or null | integer | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
created_by | string | text | Refers to team.accounts.id. |
money.expense-original-state
The receipt file currently attached to each expense.
Files: data/money/expense-original-state.json, data/money/expense-original-state.csv, schema/money/expense-original-state.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
expense_id | string (uuid) | uuid | |
version | integer | integer | Revision counter; rises with every change. |
current_id | string (uuid) or null | uuid |
money.expense-original-requests
Requests that attached or removed receipts.
Files: data/money/expense-original-requests.json, data/money/expense-original-requests.csv, schema/money/expense-original-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload | any JSON | jsonb | |
expense_id | string (uuid) | uuid | |
applied_version | integer | integer | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.expense-payments
Recorded payouts of expenses, including corrections.
Files: data/money/expense-payments.json, data/money/expense-payments.csv, schema/money/expense-payments.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. |
expense_id | string (uuid) | uuid | |
revision | integer | integer | |
kind | string | text | One of payment, correction. |
units | string (decimal text) | numeric | |
paid_on | string (date) | date | |
reference | string or null | text | |
reason | string or null | text | |
corrects | string (uuid) or null | uuid | Refers to money.expense-payments.id. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.expense-payment-balances
Paid amount per expense.
Files: data/money/expense-payment-balances.json, data/money/expense-payment-balances.csv, schema/money/expense-payment-balances.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
expense_id | string (uuid) | uuid | |
revision | integer | integer | |
currency | string | text | Refers to platform_management.currency_code, not part of the export. |
minor | integer | integer | |
net_units | string (decimal text) | numeric |
money.expense-payment-requests
Requests that recorded payouts.
Files: data/money/expense-payment-requests.json, data/money/expense-payment-requests.csv, schema/money/expense-payment-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload | any JSON | jsonb | |
entry_id | string (uuid) | uuid | Refers to money.expense-payments.id. |
money.cash-openings
Opening cash balance per currency for the cash plan.
Files: data/money/cash-openings.json, data/money/cash-openings.csv, schema/money/cash-openings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
currency | string | text | Refers to platform_management.currency_code, not part of the export. |
minor | integer | integer | |
units | string (decimal text) | numeric | |
as_of_on | string (date) | date | |
confirmed_at | string (date-time) | timestamp with time zone | |
journal_fingerprint | string | text | |
version | integer | integer | Revision counter; rises with every change. |
money.cash-plan
Planned incoming and outgoing amounts (Planposten).
Files: data/money/cash-plan.json, data/money/cash-plan.csv, schema/money/cash-plan.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
source_kind | string | text | One of invoice, expense, free. |
source_id | string | text | |
source_version | any JSON | jsonb | |
currency | string | text | Refers to platform_management.currency_code, not part of the export. |
minor | integer | integer | |
units | string (decimal text) | numeric | |
planned_on | string (date) | date | |
version | integer | integer | Revision counter; rises with every change. |
removed_at | string (date-time) or null | timestamp with time zone | |
direction | string or null | text | |
label | string or null | text |
money.cash-plan-requests
Requests that changed the cash plan.
Files: data/money/cash-plan-requests.json, data/money/cash-plan-requests.csv, schema/money/cash-plan-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload | any JSON | jsonb | |
target | string | text | |
applied_version | integer | integer |
datev.settings
DATEV settings: consultant and client number, chart of accounts, account mapping.
Files: data/datev/settings.json, data/datev/settings.csv, schema/datev/settings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
version | integer | integer | Revision counter; rises with every change. |
consultant_number | integer | integer | |
client_number | integer | integer | |
chart | string | text | One of SKR03, SKR04. |
account_length | integer | smallint | |
fiscal_year_start_month | integer | smallint | |
link_receipts | boolean | boolean | |
debtor_start | string (decimal text) | bigint | |
creditor_start | string (decimal text) | bigint | |
service_date | boolean | boolean | |
default_expense_account | string or null | text | |
revenue_accounts | any JSON | jsonb | |
expense_accounts | any JSON | jsonb | |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
updated_by | string | text | Refers to team.accounts.id. |
datev.runs
Completed DATEV export runs with period, counts and file hashes.
Files: data/datev/runs.json, data/datev/runs.csv, schema/datev/runs.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
period_from | string (date) | date | |
period_to | string (date) | date | |
sequence | integer | integer | |
stamp | string | text | |
settings | any JSON | jsonb | |
zip_name | string | text | |
receipts | any JSON | jsonb | |
file_hashes | any JSON | jsonb | |
counts | any JSON | jsonb | |
created_by | string | text | Refers to team.accounts.id. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
command | any JSON | jsonb |
datev.run-files
The files of each DATEV run, as they were handed over.
Files: data/datev/run-files.json, data/datev/run-files.csv, schema/datev/run-files.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
run_id | string (uuid) | uuid | |
position | integer | smallint | |
name | string | text | |
content | object | bytea |
datev.run-items
Which invoice, cancellation or expense went into which run.
Files: data/datev/run-items.json, data/datev/run-items.csv, schema/datev/run-items.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
kind | string | text | One of invoice, expense. |
entity_id | string | text | |
run_id | string (uuid) | uuid | |
fingerprint | string | text |
datev.partner-accounts
Debtor and creditor accounts assigned in DATEV runs.
Files: data/datev/partner-accounts.json, data/datev/partner-accounts.csv, schema/datev/partner-accounts.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
kind | string | text | One of debtor, creditor. |
partner_key | string | text | |
account_number | string (decimal text) | bigint | |
first_run | string (uuid) | uuid |
personnel.people
Personnel records: name, work e-mail and phone, job title, linked member.
Files: data/personnel/people.json, data/personnel/people.csv, schema/personnel/people.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
name | string | text | |
work_email | string or null | text | |
work_phone | string or null | text | |
job_title | string or null | text | |
membership_id | string or null | text | |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
archived_at | string (date-time) or null | timestamp with time zone | When the record was archived. Archived records are included and flagged here. |
personnel.requests
Requests that changed personnel records.
Files: data/personnel/requests.json, data/personnel/requests.csv, schema/personnel/requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload | any JSON | jsonb | |
person_id | string (uuid) | uuid | |
applied_version | integer | integer |
schedule.settings
Scheduling settings of the company.
Files: data/schedule/settings.json, data/schedule/settings.csv, schema/schedule/settings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
enabled | boolean | boolean | |
workweek_start | integer | smallint | |
hint_profile | string | text | One of de, us, none. |
team_plan_visibility | string | text | One of department, all, own. |
confirmed_timezone | string or null | text | |
enabled_at | string (date-time) or null | timestamp(3) with time zone | |
enabled_by | string or null | text | |
version | integer | integer | Revision counter; rises with every change. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
schedule.shifts
Shifts with person, time, break, customer, order, status and publication.
Files: data/schedule/shifts.json, data/schedule/shifts.csv, schema/schedule/shifts.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
membership_id | string | text | |
starts_at | string (date-time) | timestamp(3) with time zone | |
ends_at | string (date-time) | timestamp(3) with time zone | |
zone | string | text | |
local_date | string (date) | date | |
planned_break_minutes | integer | integer | |
customer_id | string or null | text | |
order_id | string (uuid) or null | uuid | |
location_text | string or null | text | |
note | string or null | text | |
status | string | text | One of draft, published, cancelled. |
published_at | string (date-time) or null | timestamp(3) with time zone | |
cancelled_at | string (date-time) or null | timestamp(3) with time zone | |
version | integer | integer | Revision counter; rises with every change. |
created_by | string | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
schedule.shift-history
Every change of a shift, before and after.
Files: data/schedule/shift-history.json, data/schedule/shift-history.csv, schema/schedule/shift-history.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
shift_id | string (uuid) | uuid | |
version | integer | integer | Revision counter; rises with every change. |
kind | string | text | One of created, changed, moved, reassigned, published, cancelled, deleted. |
before | any JSON | jsonb | |
after | any JSON | jsonb | |
actor_id | string | text | Account that sent the request (team.accounts id). |
at | string (date-time) | timestamp(3) with time zone |
schedule.absences
Absences (vacation, sick, other) with decision.
Files: data/schedule/absences.json, data/schedule/absences.csv, schema/schedule/absences.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
membership_id | string | text | |
kind | string | text | One of vacation, sick, other. |
starts_on | string (date) | date | |
ends_on | string (date) | date | |
status | string | text | One of requested, approved, declined, cancelled. |
note | string or null | text | |
decided_by | string or null | text | |
decided_at | string (date-time) or null | timestamp(3) with time zone | |
created_by | string | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
version | integer | integer | Revision counter; rises with every change. |
schedule.requests
Requests that changed shifts and absences.
Files: data/schedule/requests.json, data/schedule/requests.csv, schema/schedule/requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload | any JSON | jsonb | |
target_id | string or null | text | |
outcome | string | text | |
applied_version | integer | integer | |
result | any JSON | jsonb | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
schedule.time-chains
Head of each person's time record chain.
Files: data/schedule/time-chains.json, data/schedule/time-chains.csv, schema/schedule/time-chains.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
membership_id | string | text | |
seq | string (decimal text) | bigint | |
head | string | text |
schedule.time-punches
Clock punches, append-only, with the hash chain as evidence.
Files: data/schedule/time-punches.json, data/schedule/time-punches.csv, schema/schedule/time-punches.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
membership_id | string | text | |
seq | string (decimal text) | bigint | |
kind | string | text | One of clock_in, break_start, break_end, switch, clock_out. |
occurred_at | string (date-time) | timestamp(3) with time zone | |
device_time | string (date-time) or null | timestamp(3) with time zone | |
received_at | string (date-time) | timestamp(3) with time zone | |
source | string | text | One of online, offline_queue, on_behalf. |
zone | string | text | |
shift_id | string (uuid) or null | uuid | |
customer_id | string or null | text | |
order_id | string (uuid) or null | uuid | |
recorded_by | string | text | |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
prev_hash | string | text | hash of the person's previous punch or correction (by seq); the chain head is in schedule.time-chains. |
hash | string | text | SHA-256 (hex) of the UTF-8 text 'punch|company_id|membership_id|seq|id|kind|occurred_at|device_time|received_at|source|zone|shift_id|customer_id|order_id|recorded_by|payload_hash|prev_hash', times as Unix milliseconds, empty values as empty text. |
schedule.time-corrections
Corrections of time records, append-only, in the same hash chain.
Files: data/schedule/time-corrections.json, data/schedule/time-corrections.csv, schema/schedule/time-corrections.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
membership_id | string | text | |
seq | string (decimal text) | bigint | |
block_id | string (uuid) or null | uuid | |
kind | string | text | One of set_start, set_end, set_break, set_reference, void_block, add_block. |
starts_at | string (date-time) or null | timestamp(3) with time zone | |
ends_at | string (date-time) or null | timestamp(3) with time zone | |
break_minutes | integer or null | integer | |
shift_id | string (uuid) or null | uuid | |
customer_id | string or null | text | |
order_id | string (uuid) or null | uuid | |
reason | string | text | |
state | string | text | One of applied, requested. |
zone | string | text | |
recorded_by | string | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
prev_hash | string | text | hash of the person's previous punch or correction (by seq). |
hash | string | text | SHA-256 (hex) of the UTF-8 text 'correction|company_id|membership_id|seq|id|block_id|kind|starts_at|ends_at|break_minutes|shift_id|customer_id|order_id|reason|state|zone|recorded_by|created_at|payload_hash|prev_hash', times as Unix milliseconds, empty values as empty text. |
schedule.time-correction-decisions
Approvals and rejections of corrections.
Files: data/schedule/time-correction-decisions.json, data/schedule/time-correction-decisions.csv, schema/schedule/time-correction-decisions.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
correction_id | string (uuid) | uuid | |
decision | string | text | One of accepted, declined. |
reason | string or null | text | |
decided_by | string | text | |
decided_at | string (date-time) | timestamp(3) with time zone |
schedule.time-approvals
Approvals of working days.
Files: data/schedule/time-approvals.json, data/schedule/time-approvals.csv, schema/schedule/time-approvals.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
block_id | string (uuid) | uuid | |
membership_id | string | text | |
decision | string | text | One of approved, rejected. |
fingerprint | string | text | |
reason | string or null | text | |
decided_by | string | text | |
decided_at | string (date-time) | timestamp(3) with time zone |
schedule.time-days
Working days computed from punches and corrections: start, end, break, net minutes, flags.
Files: data/schedule/time-days.json, data/schedule/time-days.csv, schema/schedule/time-days.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
membership_id | string | text | |
local_date | string (date) | date | |
zone | string | text | |
raw_started_at | string (date-time) | timestamp(3) with time zone | |
started_at | string (date-time) | timestamp(3) with time zone | |
ended_at | string (date-time) or null | timestamp(3) with time zone | |
break_open_since | string (date-time) or null | timestamp(3) with time zone | |
break_minutes | integer | integer | |
net_minutes | integer or null | integer | |
flags | array | text[] | |
segments | any JSON | jsonb | |
fingerprint | string | text |
schedule.time-requests
Requests that recorded punches, corrections and approvals.
Files: data/schedule/time-requests.json, data/schedule/time-requests.csv, schema/schedule/time-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload | any JSON | jsonb | |
outcome | string | text | |
result | any JSON | jsonb | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
audit.log
The company's change log: who changed what, when, before and after.
Files: data/audit/log.json, data/audit/log.csv, schema/audit/log.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
actorId | string | text | Account that sent the request (team.accounts id). |
entityType | string | text | |
entityId | string | text | |
action | string | text | |
changes | any JSON | jsonb | The change: values before and after. |
reason | string or null | text | |
createdAt | string (date-time) | timestamp(3) with time zone | When the record was created. |
ai.settings
Whether AI app connections are allowed.
Files: data/ai/settings.json, data/ai/settings.csv, schema/ai/settings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
connections_allowed | boolean | boolean | |
version | integer | integer | Revision counter; rises with every change. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
updated_by | string | text |
ai.connections
AI app connections with granted scopes and revocations.
Files: data/ai/connections.json, data/ai/connections.csv, schema/ai/connections.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
account_id | string | text | Refers to team.accounts.id. |
client_id | string | text | Refers to platform_connector.client, not part of the export. |
client_name | string or null | text | |
redirect_host | string | text | |
scopes | array | text[] | |
resource | string | text | |
credential_version | integer | integer | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
last_used_at | string (date-time) or null | timestamp(3) with time zone | |
revoked_at | string (date-time) or null | timestamp(3) with time zone | |
revoked_by | string or null | text | |
revoke_reason | string or null | text | One of user, admin, client, credential_change, account_disabled, membership_disabled, company_disabled, refresh_reuse, code_reuse, operator. |
ai.access-log
What connected AI apps read, for the last 90 days.
Files: data/ai/access-log.json, data/ai/access-log.csv, schema/ai/access-log.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (decimal text) | bigint | |
connection_id | string (uuid) | uuid | Refers to ai.connections.id. |
company_id | string | text | The company; the same in every row. |
account_id | string | text | |
tool | string | text | |
outcome | string | text | One of ok, tool_error, forbidden, rate_limited. |
record_count | integer | integer | |
duration_ms | integer | integer | |
at | string (date-time) | timestamp(3) with time zone | When the AI app read. Only the last 90 days are exported. |
subscription.source
Where the subscription comes from (App Store, operator grant).
Files: data/subscription/source.json, data/subscription/source.csv, schema/subscription/source.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
source | string | text | One of apple, enterprise, internal. |
binding_id | string (uuid) or null | uuid | Refers to subscription.apple-bindings.id. |
revision | string (decimal text) | bigint |
subscription.seat-control
Seat reservations of the subscription.
Files: data/subscription/seat-control.json, data/subscription/seat-control.csv, schema/subscription/seat-control.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
version | integer | integer | Revision counter; rises with every change. |
generation | integer | integer | |
revoked | boolean | boolean | |
reserved_seats | integer or null | integer | |
effective_at | string (date-time) or null | timestamp(3) with time zone |
subscription.apple-status
Subscription state as the App Store reported it: seats, paid until, grace, revoked.
Files: data/subscription/apple-status.json, data/subscription/apple-status.csv, schema/subscription/apple-status.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
binding_id | string (uuid) | uuid | Refers to subscription.apple-bindings.id. |
revision | string (decimal text) | bigint | |
transaction_id | string | text | |
capacity | integer | integer | |
paid_until | string (date-time) | timestamp with time zone | |
grace_until | string (date-time) or null | timestamp with time zone | |
revoked | boolean | boolean | |
scheduled_capacity | integer or null | integer | |
scheduled_at | string (date-time) or null | timestamp with time zone | |
needs_reconciliation | boolean | boolean | |
verified_at | string (date-time) | timestamp with time zone |
subscription.apple-bindings
The App Store purchase bound to the company.
Files: data/subscription/apple-bindings.json, data/subscription/apple-bindings.csv, schema/subscription/apple-bindings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
purchaser_id | string | text | Refers to team.accounts.id. |
catalog_hash | string | text | Refers to platform_apple.catalog, not part of the export. |
bundle_id | string | text | |
environment | string | text | One of Sandbox, Production. |
original_transaction_id | string | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
subscription.apple-transactions
Every App Store transaction reported for the company.
Files: data/subscription/apple-transactions.json, data/subscription/apple-transactions.csv, schema/subscription/apple-transactions.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
binding_id | string (uuid) | uuid | Refers to subscription.apple-bindings.id. |
transaction_id | string | text | |
fact | any JSON | jsonb | |
signed_date | string (decimal text) | bigint |
subscription.apple-renewals
Renewal information reported by the App Store.
Files: data/subscription/apple-renewals.json, data/subscription/apple-renewals.csv, schema/subscription/apple-renewals.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
binding_id | string (uuid) | uuid | Refers to subscription.apple-bindings.id. |
fact | any JSON | jsonb | |
signed_date | string (decimal text) | bigint |
subscription.apple-purchase-intents
Purchases started in the app.
Files: data/subscription/apple-purchase-intents.json, data/subscription/apple-purchase-intents.csv, schema/subscription/apple-purchase-intents.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to platform_apple.purchase_context, not part of the export. |
purchaser_id | string | text | Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
product_id | string | text | |
catalog_hash | string | text | Refers to platform_apple.catalog, not part of the export. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
expires_at | string (date-time) | timestamp with time zone |
subscription.operator-grants
Access granted by SwiftLabs without a purchase, with seats and end date.
Files: data/subscription/operator-grants.json, data/subscription/operator-grants.csv, schema/subscription/operator-grants.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
kind | string | text | One of internal, sponsored. |
capacity | integer | integer | |
valid_until | string (date-time) or null | timestamp with time zone | |
revoked | boolean | boolean | |
revision | integer | integer | |
reserved_capacity | integer or null | integer | |
effective_at | string (date-time) or null | timestamp with time zone |
subscription.stripe-bindings
Subscriptions from the web payment provider.
Files: data/subscription/stripe-bindings.json, data/subscription/stripe-bindings.csv, schema/subscription/stripe-bindings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
namespace | string | text | |
subscription_id | string | text | |
customer_id | string | text | |
terminal | boolean | boolean | |
last_invoice | string or null | text | |
paid_until | string (date-time) or null | timestamp with time zone | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
subscription.complimentary-access
Access SwiftLabs granted without a purchase: reason, seat limit, end, and when it was granted or revoked.
Files: data/subscription/complimentary-access.json, data/subscription/complimentary-access.csv, schema/subscription/complimentary-access.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
reason | string | text | |
seat_limit | integer | integer | |
ends_at | string (date-time) or null | timestamp(3) with time zone | When the access ends; empty when it has no end. |
granted_at | string (date-time) | timestamp(3) with time zone | |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
revoked_at | string (date-time) or null | timestamp(3) with time zone | |
revoke_reason | string or null | text | |
revision | integer | integer |