Skip to main content
Terms

Register of export formats

Published: Updated:

Contents (10)

1. About this register

This register lists the formats and data structures in which the data that can be exported from Gosoft Connect is available, and the standards they follow. It is the online register that Article 26(b) of the EU Data Act (Regulation (EU) 2023/2854) requires, and it covers the exportable data in points (a) to (g) of section 10.8 of the Terms of Service. Gosoft updates it whenever an export or a stored data structure changes; the "Updated" date at the top of this page is the date of the last change.

Field and column names are written as they appear in the files. Requests for an export, and questions about one, go to support@gosoft.fi (section 7). Section 9 describes the portal exports as interfaces for software (Article 30(2) of the Data Act), and section 10 the charges (Article 29).

2. Exports in the portal

While a workspace exists, any user with access to the customer's organisation in the portal can make these exports themselves (section 10.3 of the Terms of Service).

2.1 Form and chat submissions (CSV)

  • File name: submissions-<the first 8 characters of the workspace id>-<YYYY-MM-DD>.csv, where the date is the day of the export in UTC.
  • Encoding: UTF-8 with a byte-order mark, comma-separated, with a header row. Each row ends in a line feed (LF), and a line break inside a value is a line feed too.
  • Values: every value outside the test column is enclosed in double quotes, and a double quote inside a value is doubled. A missing value can be an empty field without quotes. A value that starts with =, +, - or @, ignoring any white space before it, gets an apostrophe (') in front of it, so that a spreadsheet does not run it as a formula.
  • Rows: one row per submission, the newest 5,000, newest first. A file can be limited to one form (form_id), to one of the sources in the source column, and to real entries or to test entries.

The header row names these columns, in this order:

Column Content
created_at When the submission was received (ISO 8601, UTC)
source Where it came from: form (a form in a website widget, such as a slide-in or a popup), chat (a form in a chat flow), q-form (a hosted Q-Form) or ai_chat (contact details left in the AI chat)
form_id The form's identifier: the form step, the Q-Form's id, or collect_lead for the AI chat
name The sender's name, from the form's fields
email The sender's e-mail address, from the form's fields
phone The sender's phone number, from the form's fields
message The sender's message, from the form's fields
files The number of files uploaded with the submission
ai_summary The AI summary of the conversation the submission came from, where there is one
page_url The page the form was sent from, without its query string apart from utm_ parameters
widget The widget's name, or its id where it has no name
path The choices the visitor made in the widget before the form, one per line as "question → answer"
values_json All the answers, as a JSON object keyed by field
conversation_id The conversation the submission came from, where there is one
submission_id The submission's id
test 1 for a test entry made in a site preview, otherwise 0

2.2 A conversation (JSON)

  • File name: conversation-<the first 8 characters of the conversation id>-<YYYY-MM-DD>.json, where the date is the day of the export in UTC.
  • Encoding: UTF-8, indented with 2 spaces. Times are ISO 8601 in UTC.
  • Structure: one object with five members:
    • conversation: id, workspace_id, visitor_id, channel (chat for the AI chat, livechat for live chat), status, summary, metadata, started_at, last_activity_at, is_test;
    • messages: a list of the messages, oldest first, each with id, role, content, tool_calls, tool_name, metadata, created_at and ai_generated (true where the AI wrote the message, in whole or in part, otherwise false);
    • flags: a list of the conversation's moderation flags, newest first, each with id, message_id, reason, source, status, categories and created_at;
    • ai_generated_fields: a list of the fields the AI wrote: conversation.summary where the conversation has a summary, otherwise none;
    • exported_at: when the file was made.

2.3 A conversation (CSV)

  • File name: as in 2.2, ending in .csv.
  • Encoding: UTF-8 without a byte-order mark, comma-separated, with a header row. Each row ends in a carriage return and a line feed (CR LF); a line break inside a value is a line feed.
  • Values: every value is enclosed in double quotes, and a double quote inside a value is doubled. A missing value is an empty field without quotes. The apostrophe rule of 2.1 applies.
  • Rows: one row per message, oldest first.

The header row names these columns, in this order:

Column Content
created_at When the message was written (ISO 8601, UTC)
role Who wrote it
content The message text
tool_name For the result of a tool the AI used, the tool's name
tool_calls The AI's tool calls, as JSON
metadata The message's other data, as JSON
message_id The message's id
ai_generated true where the AI wrote the message, in whole or in part, otherwise false

2.4 A file uploaded with a submission

  • Content: the file as it was uploaded, one file at a time, with the media type the sender's browser gave it (application/octet-stream where it gave none or one that is not valid).
  • File name: the stored file name, with each run of characters other than ASCII letters, digits, underscores, dots and hyphens replaced by one underscore, at most 120 characters.

2.5 The QR code of a Q-Form

  • Content: the address of the hosted Q-Form, https://gosoft.fi/<the workspace's default language>/q/<workspace id>/<Q-Form id>, as a QR code with a quiet zone of one module and error correction level M, black on white.
  • PNG (image/png): 800 pixels wide, downloaded as qr-<Q-Form id>.png.
  • SVG (image/svg+xml): 480 pixels wide; it is the image shown in the Q-Form's editor and on its print page.

3. Exports on request

Gosoft exports the rest of the exportable data on request (section 10.8 of the Terms of Service): within the transition period of a switch or, outside a switch, within 30 days of the request. It charges nothing for this (section 10.9).

  • Format: one JSON file for each kind of record below, in UTF-8: a list of objects whose keys are the field names given here. Times are ISO 8601 in UTC, and calendar dates are written as YYYY-MM-DD. On request, Gosoft delivers CSV files with the field names as the header row instead.
  • Files: the stored files come with the records: files uploaded with submissions as they were uploaded, and images as the WebP files the Service keeps.

(a) Submissions

  • Submissions: id, workspace_id, conversation_id, visitor_id, source, form_id, values (the answers, keyed by field), files, user_agent, context, ai_summary, is_test, preview_session_id, created_at.
  • files: one entry per uploaded file, with field, name, size, mime (the media type) and path (where the file is stored).
  • context: url, landing, referrer, lang, widget (its id and name) and path (the visitor's choices in the widget before the form, each with q and a).
  • Uploaded files: as they were uploaded. A test entry made in a site preview lists its files with discarded set, and the files themselves were not kept. A file the Service could not store when the submission arrived is listed with discarded and failed set and without path.

(b) Conversations and messages

  • Conversations: id, workspace_id, visitor_id, visitor_profile_id, channel, status, summary, metadata, ai_category, is_test, started_at, last_activity_at, visitor_seen_at.
  • Messages: id, conversation_id, workspace_id, role, content, tool_calls, tool_name, metadata, created_at.
  • Moderation flags: id, workspace_id, conversation_id, message_id, reason, source, status, categories, reviewer_id, triaged_at, metadata, created_at.

(c) Leads, bookings, visitors and analytics

  • Leads: id, workspace_id, conversation_id, visitor_id, visitor_profile_id, name, email, phone, message, metadata, status, created_at.
  • Bookings: id, workspace_id, submission_id, source, form_ref (the form step or Q-Form) and widget_id (the widget) where the time was booked, field, starts_at, ends_at, tz, summary, status, write_via (how the booking reached the business's calendar: written into it or sent as an invitation), external_uid, external_ref and external_error (the event written into a connected calendar, or why writing it failed), invited_refs (the members and verified e-mail recipients who were sent the invitation, by their ids), created_at.
  • Visitor records: workspace_id, visitor_id, created_at. The hash of the visitor's secret is a security credential and is not exported.
  • Visitor profiles: id, workspace_id, visitor_id, facts, summary, last_seen_at, created_at, updated_at.
  • Analytics events: id, workspace_id, visitor_id, kind (pageview, click, dwell or conversion), url, referrer, lang, device_class, duration_ms, meta, created_at.
  • Daily analytics totals: workspace_id, date, pageviews, unique_visitors, clicks, total_dwell_ms, conversions, conversations_started, messages_user, messages_assistant, submissions, ai_cost_cents, ai_prompt_tokens, ai_completion_tokens, computed_at.

(d) Settings

  • Workspaces: id, name, domains, timezone, status, setup (the state of the guided setup and the result of the website scan), created_at, updated_at.
  • Settings files: each workspace's config.json and each Q-Form's qforms/<Q-Form id>.json, in Gosoft's own JSON format (section 5). The top-level keys of config.json that the portal saves are name, domains, languages, defaultLang, langSource, langParam, theme, widgets, livechat, campaigns, attribution, constants, behaviors, retrieval, knowledge, runtime, schemaVersion, automations, intelligence, analytics and privacy. A calendar block saved before the calendar update of 5 October 2026 can remain in the file until the calendar connection is saved or removed in the portal (see Calendar connections below). The credentials in them are not exported: the calendar password in such a block, the product-feed webhook secret, and the secrets of webhooks and of an automation's address for other systems.
  • Company details that the AI assistant answers with (entity.json): company, contact, business_hours.
  • Connections to other services: id, workspace_id, provider, name, secret_hint, last_ok_at, last_error, created_by, created_at. The secret itself is not exported.
  • Calendar connections: workspace_id, provider (none, ics for an availability link or caldav for a CalDAV account), settings (for CalDAV the server address, the user name, the chosen calendar and the title of the events; for an availability link its host), invite (whether a booking that is not written into a calendar is sent as an invitation), status, last_ok_at, last_error, updated_at, updated_by. The CalDAV password or the availability link itself is a security credential and is not exported.
  • Verified e-mail recipients: id, workspace_id, email, lang, verified_at, verified_via, created_by, created_at.
  • Knowledge sources: id, workspace_id, kind, url, status, pages, failures, cadence, added_at, last_checked_at, last_change_at, last_result.
  • The organisation: its name and billing details; its subscriptions (plan, price, billing period and method, status, their dates, and the version of the Terms of Service accepted with an invoice order); and its acceptances of the Data Processing Agreement and the Terms of Service (the versions, the language shown, the name and role of the person who accepted, the time and the IP address).

(e) Knowledge base, product feeds and images

  • Documents: id, workspace_id, type, kind, source_type, source_ref, parent_id, title, content (the extracted text), content_hash, language, metadata, context_summary, status, ingested_at, updated_at. Product-feed items are documents of the kind product, with their price, stock and variants in metadata. Of a document uploaded to the knowledge base, only the extracted text is kept, with the original file's name and media type in metadata, not the original file.
  • Chunks (the parts of the documents that the AI searches): id, document_id, workspace_id, chunk_index, content, tokens, embedding (1,024 numbers computed by the Service's embedding model, bge-m3 today), content_tsv (the chunk's words for keyword search, in PostgreSQL's text form of a tsvector), metadata, created_at.
  • Import jobs that read a website or a feed, kept for at most 14 days after they finish: id, workspace_id, kind, key, payload, progress, result, attempts, last_error, created_at, started_at, done_at.
  • Media library images: WebP files at most 1,024 pixels wide. An image wider than 400 pixels also has a copy half as wide, whose name ends in -sm.webp.
  • The organisation's images (members' profile photos): WebP files at most 512 pixels wide.

(f) Members and access

  • Members: user_id, display_name, email, title, avatar_url (the profile photo), role, livechat_agent, created_at (when they joined), and a live chat agent's own availability hours (availability).
  • Pending invitations: id, email, role, purpose, created_by, created_at, expires_at.
  • Access log: id, user_email, workspace_id, workspace_name, action, subject, subject_id, metadata, ip_address, created_at.

(g) Other data the Service keeps about the customer's use

  • Knowledge-gap report: workspace_id, generated_at, source_count, gaps (a list of topics, each with topic, sample_question and count).
  • Digests: id, workspace_id, kind, period_start, period_end, language, conversation_count, digest, created_at.
  • AI usage records: id, workspace_id, provider, model, prompt_tokens, completion_tokens, total_tokens, cached_tokens, cache_write_tokens, reasoning_tokens, cost_cents, duration_ms, finish_reason, error, purpose, created_at, and conversation_id and message_id while those exist. cached_tokens and cache_write_tokens are part of prompt_tokens, and reasoning_tokens part of completion_tokens; each is empty where it was not reported.
  • Automation runs: id, workspace_id, event_type, source, event, bag (the values and variables of a run that has not finished), status, step_count, scheduled_at, started_at, finished_at, error, created_at; and their steps: id, run_id, workspace_id, node_id, kind, status, output, summary, error, ms, created_at.
  • Notification records (notifications to members about submissions and other events, and campaign windows that opened or closed): id, workspace_id, event_type, rule, status, recipients, detail, created_at.
  • Answers sent by e-mail only: the workspace and the time of each (workspace_id, created_at), with no content, kept 62 days to count answers against the limits on them.
  • Notices sent about the workspace (for example on the use of the AI conversation allowance): workspace_id, key, period, sent_at.
  • Load-error reports (widgets that failed to load on the customer's website): id, workspace_id, stage, message, page_host, user_agent, created_at.
  • Kollega threads: id, workspace_id, user_id (the member), created_at, updated_at; and their messages: id, thread_id, role, content, sources, proposal, proposal_state, created_at.
  • Workspace hand-offs (a workspace handed off to another organisation): id, workspace_id, source_org_id, customer_org_name, target_email, status, created_by, created_at, expires_at, accepted_at, accepted_by, target_org_id. The hand-off key is a security credential and is not exported.
  • Site preview sessions: id, workspace_id, user_id (the member who opened it), origin, focus (the widgets previewed), lang, visitor_id, created_at, expires_at, revoked_at. The session's key is a security credential and is not exported.

4. Data that is not exportable

As section 10.8 of the Terms of Service says, these are not exportable data:

  • Gosoft's software and its own content.
  • Gosoft's instructions to the AI models.
  • Information under section 5.5 of the Terms of Service, which identifies neither the customer nor any person.
  • Passwords, keys and other security credentials, for example the hash of a visitor's secret, the secrets of connected services and calendars, sign-in, invitation, hand-off and preview keys, and the keys of push subscriptions.
  • Other customers' data.

5. Standards

  • CSV: RFC 4180, except that the submissions file (2.1) starts with a byte-order mark and ends its rows with a line feed, and that in both CSV exports a value starting with =, +, - or @ gets an apostrophe in front of it.
  • JSON: RFC 8259. Text: UTF-8 (RFC 3629). Times: ISO 8601, in UTC.
  • Images: PNG (ISO/IEC 15948), SVG 1.1 (W3C) and WebP (RFC 9649). QR codes: ISO/IEC 18004.
  • Files uploaded with submissions are in whatever format they were uploaded in.
  • Settings: the settings of widgets, Q-Forms and automations (config.json, qforms/<Q-Form id>.json) are in Gosoft's own JSON format, which no open standard covers; another service may not be able to use them as such.

6. Known limits

  • The portal exports at most 5,000 submissions per file, and conversations and uploaded files one at a time; on request, Gosoft exports all of them at once.
  • The original file of a document uploaded to the knowledge base is not kept, only the text extracted from it.
  • Images in the media library are kept as WebP files at most 1,024 pixels wide, and members' profile photos as WebP files at most 512 pixels wide, not in the format and size they were uploaded in.
  • Embeddings are specific to the model that computed them; another service generally has to compute its own from the text.
  • Test entries made in a site preview are deleted after 14 days, and files uploaded in a site preview are not kept.
  • Data already erased, by the customer, under the retention periods or under section 10.4 of the Terms of Service, is not exported, including what remains of it in the backups until they are rotated out.
  • Answers to a form that sends them by e-mail only, as every form on the free tier does, are not stored, so they cannot be exported.

7. How to ask for an export

Write to support@gosoft.fi and name the workspaces concerned. A switch to another provider or to the customer's own systems, and its timing, follow sections 10.6 to 10.9 of the Terms of Service.

8. Where the data is held

Where the Service's servers and backups are, which laws apply to the data held on them, and Gosoft's measures against access by authorities of countries outside the Union are set out in section 10.10 of the Terms of Service (Article 28(1) of the Data Act).

9. Interfaces

The portal exports in section 2 are HTTP interfaces under https://connect.gosoft.fi/portal/api/ that any member of the customer's organisation can call when signed in, free of charge. A provider the customer switches to can be given a member account to use them (section 10.7 of the Terms of Service). In the paths, {organisation}, {workspace}, {conversation} and {Q-Form} are the ids that the portal's own addresses show, and {submission} is the submission_id of 2.1.

  • GET orgs/{organisation}/workspaces/{workspace}/submissions.csv: the file of 2.1. It takes the parameters form_id, source and test (real for real entries only, only for test entries only; both when it is left out).
  • GET orgs/{organisation}/workspaces/{workspace}/submissions/{submission}/files/{n}: the file of 2.4, where n is the file's place in the submission's files, counting from 0.
  • GET orgs/{organisation}/workspaces/{workspace}/conversations/{conversation}/export: the file of 2.2 or, with format=csv, the file of 2.3.
  • GET orgs/{organisation}/workspaces/{workspace}/qforms/{Q-Form}/qr.png and qr.svg: the images of 2.5.
  • GET orgs/{organisation}/audit, for the organisation's admins: its log of access to personal data as a JSON object whose entries are the log's entries, newest first, with the fields of the access log in section 3 (f) except id and workspace_name. It takes the parameters limit (500 when it is left out, at most 5,000) and since (a time; only entries from then on).

10. Charges

Gosoft charges nothing for switching, for exports on request or for retrieving data (section 10.9 of the Terms of Service), and there are no early termination penalties. Fees already paid are not refunded when a subscription or the agreement ends during a billing period, except as section 9.6 provides. During the transition period the customer's plan continues at its usual price, unless the customer asks for it to end earlier (section 10.7). The prices of the plans are in the price list.