Register of export formats
Contents
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
testcolumn 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 thesourcecolumn, 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(chatfor the AI chat,livechatfor live chat),status,summary,metadata,started_at,last_activity_at,is_test;messages: a list of the messages, oldest first, each withid,role,content,tool_calls,tool_name,metadata,created_atandai_generated(truewhere the AI wrote the message, in whole or in part, otherwisefalse);flags: a list of the conversation's moderation flags, newest first, each withid,message_id,reason,source,status,categoriesandcreated_at;ai_generated_fields: a list of the fields the AI wrote:conversation.summarywhere 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-streamwhere 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 asqr-<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, withfield,name,size,mime(the media type) andpath(where the file is stored).context:url,landing,referrer,lang,widget(itsidandname) andpath(the visitor's choices in the widget before the form, each withqanda).- Uploaded files: as they were uploaded. A test entry made in a site preview lists its files with
discardedset, and the files themselves were not kept. A file the Service could not store when the submission arrived is listed withdiscardedandfailedset and withoutpath.
(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) andwidget_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_refandexternal_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,dwellorconversion),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.jsonand each Q-Form'sqforms/<Q-Form id>.json, in Gosoft's own JSON format (section 5). The top-level keys ofconfig.jsonthat the portal saves arename,domains,languages,defaultLang,langSource,langParam,theme,widgets,livechat,campaigns,attribution,constants,behaviors,retrieval,knowledge,runtime,schemaVersion,automations,intelligence,analyticsandprivacy. Acalendarblock 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,icsfor an availability link orcaldavfor 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 kindproduct, with their price, stock and variants inmetadata. Of a document uploaded to the knowledge base, only the extracted text is kept, with the original file's name and media type inmetadata, 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 atsvector),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 withtopic,sample_questionandcount). - 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, andconversation_idandmessage_idwhile those exist.cached_tokensandcache_write_tokensare part ofprompt_tokens, andreasoning_tokenspart ofcompletion_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 parametersform_id,sourceandtest(realfor real entries only,onlyfor test entries only; both when it is left out).GET orgs/{organisation}/workspaces/{workspace}/submissions/{submission}/files/{n}: the file of 2.4, wherenis the file's place in the submission'sfiles, counting from 0.GET orgs/{organisation}/workspaces/{workspace}/conversations/{conversation}/export: the file of 2.2 or, withformat=csv, the file of 2.3.GET orgs/{organisation}/workspaces/{workspace}/qforms/{Q-Form}/qr.pngandqr.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 whoseentriesare the log's entries, newest first, with the fields of the access log in section 3 (f) exceptidandworkspace_name. It takes the parameterslimit(500 when it is left out, at most 5,000) andsince(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.