Legal
Data Processing Agreement
Last updated: 14 November 2026
Article 28 GDPR, between the Klozeo customer and LB FRAME
v1.2, published 2026-11-14, effective 2026-12-15
Part A. Framework
A.1 Parties and scope. This agreement (the "DPA") is between LB FRAME, a simplified single-shareholder joint-stock company (SASU) registered in Salon-de-Provence, France, which operates Klozeo (the "Processor"), and the organization that owns the Klozeo workspace and is identified in Annex I (the "Controller"). It applies to the personal data contained in the lead records that the Controller, its team members and the apps and AI assistants it connects write to or read from Klozeo ("lead data"). It does not apply to the account, billing and usage data for which LB FRAME is itself the controller; the Privacy Policy describes them.
A.2 The Clauses. Part B reproduces the standard contractual clauses of the Annex to Commission Implementing Decision (EU) 2021/915 of 4 June 2021 (the "Clauses"). They are reproduced as published, except for the options the Parties chose: (a) the Clauses refer to Regulation (EU) 2016/679 only; (b) the optional docking clause (Clause 5) is included, and A.10 states how it applies; (c) for Clause 7.7(a) the Parties chose option 2, general written authorisation, with a notice period of thirty (30) days. The sub-processors in Annex IV are the agreed list for that Clause.
A.3 Instructions. The Controller's documented instructions (Clause 7.1) are: this DPA; the Terms of Service; the Controller's use of the Klozeo dashboard, API, MCP server and webhooks, including when it asks a connected app or AI assistant to read, save or change lead data; and any further written instruction sent to [email protected].
A.4 Transfers outside the European Economic Area. The Controller instructs the Processor to make the transfers to the sub-processors in Annex IV that are located in the United States on the basis described in section 12 of the Privacy Policy (Clause 7.8).
A.5 Entry into force. This DPA is incorporated into the Terms of Service and applies from the date the Controller's account is created. No signature is needed.
A.6 Terms, language and law. This DPA supplements the Terms of Service. In case of contradiction the Clauses prevail (Clause 4). This DPA exists in English and in French; the French version prevails in case of discrepancy, as in the Terms of Service. The governing law and the courts are those of section 15 of the Terms of Service.
A.7 Sub-processor changes (Clause 7.7(a)). The Processor informs the Controller of any intended addition or replacement of a sub-processor at least thirty (30) days in advance, by email to the workspace owner's address, with the information the Controller needs to object. If the Controller objects and the objection is not resolved, the Controller may terminate the affected subscription. The Processor then refunds, pro rata, the fees the Controller prepaid for the period after the termination takes effect, by exception to section 4.4 of the Terms of Service.
A.8 Audits (Clause 7.6). (a) Documentation first: the Processor makes available the information referred to in Clause 7.6(c), and the Controller audits only if that information does not let it verify compliance. (b) "Reasonable intervals" in Clause 7.6(c) means at most one audit every twelve (12) months, with thirty (30) days' notice (Clause 7.6(d)), carried out by the Controller or by an independent auditor bound by confidentiality, at the Controller's cost. (c) The Controller may carry out one additional audit after a personal data breach, on the same conditions. (d) This does not limit an audit where there are indications of non-compliance (Clause 7.6(c)) or the information the Processor owes to a supervisory authority (Clause 7.6(e)).
A.9 Consultants acting for a client. When a Consultant owns the workspace it uses for a client, the client is the controller, the Consultant is the client's processor and the Processor is the Consultant's sub-processor. A "Consultant" is a consultant or agency that uses Klozeo for its client. The Consultant warrants that it holds its client's authorisation to use Klozeo and to have the Processor process the client's lead data as sub-processor, and that it informs its client of this use. The Consultant exercises toward the Processor the controller's rights and duties under this DPA (instructions, audits, breach notices) and passes them on to its client. Each party answers for its own obligations and its own faults, and none is exempt from liability in general. This does not limit Clause 7.7(d) or any liability a party bears under Regulation (EU) 2016/679.
A.10 Accession (Clause 5). This DPA is incorporated into the Terms of Service and is not signed. For Clause 5, an entity that is not a Party, such as the client of a Consultant, accedes as follows: it sends to [email protected] a written notice giving the particulars of Annex I for itself, with the agreement of the workspace owner, and the Processor confirms in writing. From that confirmation the entity is a Party as Clause 5(b) provides. The notice and the confirmation replace the completion of the Annexes and the signature of Annex I that Clause 5(a) and (b) mention.
Part B. Standard contractual clauses
Section I
Clause 1
Purpose and scope
(a) The purpose of these Standard Contractual Clauses (the Clauses) is to ensure compliance with Article 28(3) and (4) of Regulation (EU) 2016/679 of the European Parliament and of the Council of 27 April 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation).
(b) The controllers and processors listed in Annex I have agreed to these Clauses in order to ensure compliance with Article 28(3) and (4) of Regulation (EU) 2016/679.
(c) These Clauses apply to the processing of personal data as specified in Annex II.
(d) Annexes I to IV are an integral part of the Clauses.
(e) These Clauses are without prejudice to obligations to which the controller is subject by virtue of Regulation (EU) 2016/679.
(f) These Clauses do not by themselves ensure compliance with obligations related to international transfers in accordance with Chapter V of Regulation (EU) 2016/679.
Clause 2
Invariability of the Clauses
(a) The Parties undertake not to modify the Clauses, except for adding information to the Annexes or updating information in them.
(b) This does not prevent the Parties from including the standard contractual clauses laid down in these Clauses in a broader contract, or from adding other clauses or additional safeguards provided that they do not directly or indirectly contradict the Clauses or detract from the fundamental rights or freedoms of data subjects.
Clause 3
Interpretation
(a) Where these Clauses use the terms defined in Regulation (EU) 2016/679, those terms shall have the same meaning as in that Regulation.
(b) These Clauses shall be read and interpreted in the light of the provisions of Regulation (EU) 2016/679.
(c) These Clauses shall not be interpreted in a way that runs counter to the rights and obligations provided for in Regulation (EU) 2016/679 or in a way that prejudices the fundamental rights or freedoms of the data subjects.
Clause 4
Hierarchy
In the event of a contradiction between these Clauses and the provisions of related agreements between the Parties existing at the time when these Clauses are agreed or entered into thereafter, these Clauses shall prevail.
Clause 5 - Optional
Docking clause
(a) Any entity that is not a Party to these Clauses may, with the agreement of all the Parties, accede to these Clauses at any time as a controller or a processor by completing the Annexes and signing Annex I.
(b) Once the Annexes in (a) are completed and signed, the acceding entity shall be treated as a Party to these Clauses and have the rights and obligations of a controller or a processor, in accordance with its designation in Annex I.
(c) The acceding entity shall have no rights or obligations resulting from these Clauses from the period prior to becoming a Party.
Section II. Obligations of the parties
Clause 6
Description of processing(s)
The details of the processing operations, in particular the categories of personal data and the purposes of processing for which the personal data is processed on behalf of the controller, are specified in Annex II.
Clause 7
Obligations of the Parties
7.1. Instructions
(a) The processor shall process personal data only on documented instructions from the controller, unless required to do so by Union or Member State law to which the processor is subject. In this case, the processor shall inform the controller of that legal requirement before processing, unless the law prohibits this on important grounds of public interest. Subsequent instructions may also be given by the controller throughout the duration of the processing of personal data. These instructions shall always be documented.
(b) The processor shall immediately inform the controller if, in the processor’s opinion, instructions given by the controller infringe Regulation (EU) 2016/679 or the applicable Union or Member State data protection provisions.
7.2. Purpose limitation
The processor shall process the personal data only for the specific purpose(s) of the processing, as set out in Annex II, unless it receives further instructions from the controller.
7.3. Duration of the processing of personal data
Processing by the processor shall only take place for the duration specified in Annex II.
7.4. Security of processing
(a) The processor shall at least implement the technical and organisational measures specified in Annex III to ensure the security of the personal data. This includes protecting the data against a breach of security leading to accidental or unlawful destruction, loss, alteration, unauthorised disclosure or access to the data (personal data breach). In assessing the appropriate level of security, the Parties shall take due account of the state of the art, the costs of implementation, the nature, scope, context and purposes of processing and the risks involved for the data subjects.
(b) The processor shall grant access to the personal data undergoing processing to members of its personnel only to the extent strictly necessary for implementing, managing and monitoring of the contract. The processor shall ensure that persons authorised to process the personal data received have committed themselves to confidentiality or are under an appropriate statutory obligation of confidentiality.
7.5. Sensitive data
If the processing involves personal data revealing racial or ethnic origin, political opinions, religious or philosophical beliefs, or trade union membership, genetic data or biometric data for the purpose of uniquely identifying a natural person, data concerning health or a person’s sex life or sexual orientation, or data relating to criminal convictions and offences (“sensitive data”), the processor shall apply specific restrictions and/or additional safeguards.
7.6. Documentation and compliance
(a) The Parties shall be able to demonstrate compliance with these Clauses.
(b) The processor shall deal promptly and adequately with inquiries from the controller about the processing of data in accordance with these Clauses.
(c) The processor shall make available to the controller all information necessary to demonstrate compliance with the obligations that are set out in these Clauses and stem directly from Regulation (EU) 2016/679. At the controller’s request, the processor shall also permit and contribute to audits of the processing activities covered by these Clauses, at reasonable intervals or if there are indications of non-compliance. In deciding on a review or an audit, the controller may take into account relevant certifications held by the processor.
(d) The controller may choose to conduct the audit by itself or mandate an independent auditor. Audits may also include inspections at the premises or physical facilities of the processor and shall, where appropriate, be carried out with reasonable notice.
(e) The Parties shall make the information referred to in this Clause, including the results of any audits, available to the competent supervisory authority/ies on request.
7.7. Use of sub-processors
(a) The processor has the controller’s general authorisation for the engagement of sub-processors from an agreed list. The processor shall specifically inform in writing the controller of any intended changes of that list through the addition or replacement of sub-processors at least thirty (30) days in advance, thereby giving the controller sufficient time to be able to object to such changes prior to the engagement of the concerned sub-processor(s). The processor shall provide the controller with the information necessary to enable the controller to exercise the right to object.
(b) Where the processor engages a sub-processor for carrying out specific processing activities (on behalf of the controller), it shall do so by way of a contract which imposes on the sub-processor, in substance, the same data protection obligations as the ones imposed on the data processor in accordance with these Clauses. The processor shall ensure that the sub-processor complies with the obligations to which the processor is subject pursuant to these Clauses and to Regulation (EU) 2016/679.
(c) At the controller’s request, the processor shall provide a copy of such a sub-processor agreement and any subsequent amendments to the controller. To the extent necessary to protect business secret or other confidential information, including personal data, the processor may redact the text of the agreement prior to sharing the copy.
(d) The processor shall remain fully responsible to the controller for the performance of the sub-processor’s obligations in accordance with its contract with the processor. The processor shall notify the controller of any failure by the sub-processor to fulfil its contractual obligations.
(e) The processor shall agree a third party beneficiary clause with the sub-processor whereby - in the event the processor has factually disappeared, ceased to exist in law or has become insolvent - the controller shall have the right to terminate the sub-processor contract and to instruct the sub-processor to erase or return the personal data.
7.8. International transfers
(a) Any transfer of data to a third country or an international organisation by the processor shall be done only on the basis of documented instructions from the controller or in order to fulfil a specific requirement under Union or Member State law to which the processor is subject and shall take place in compliance with Chapter V of Regulation (EU) 2016/679.
(b) The controller agrees that where the processor engages a sub-processor in accordance with Clause 7.7. for carrying out specific processing activities (on behalf of the controller) and those processing activities involve a transfer of personal data within the meaning of Chapter V of Regulation (EU) 2016/679, the processor and the sub-processor can ensure compliance with Chapter V of Regulation (EU) 2016/679 by using standard contractual clauses adopted by the Commission in accordance with of Article 46(2) of Regulation (EU) 2016/679, provided the conditions for the use of those standard contractual clauses are met.
Clause 8
Assistance to the controller
(a) The processor shall promptly notify the controller of any request it has received from the data subject. It shall not respond to the request itself, unless authorised to do so by the controller.
(b) The processor shall assist the controller in fulfilling its obligations to respond to data subjects’ requests to exercise their rights, taking into account the nature of the processing. In fulfilling its obligations in accordance with (a) and (b), the processor shall comply with the controller’s instructions
(c) In addition to the processor’s obligation to assist the controller pursuant to Clause 8(b), the processor shall furthermore assist the controller in ensuring compliance with the following obligations, taking into account the nature of the data processing and the information available to the processor: - (1) the obligation to carry out an assessment of the impact of the envisaged processing operations on the protection of personal data (a ‘data protection impact assessment’) where a type of processing is likely to result in a high risk to the rights and freedoms of natural persons; - (2) the obligation to consult the competent supervisory authority/ies prior to processing where a data protection impact assessment indicates that the processing would result in a high risk in the absence of measures taken by the controller to mitigate the risk; - (3) the obligation to ensure that personal data is accurate and up to date, by informing the controller without delay if the processor becomes aware that the personal data it is processing is inaccurate or has become outdated; - (4) the obligations in Article 32 of Regulation (EU) 2016/679.
(d) The Parties shall set out in Annex III the appropriate technical and organisational measures by which the processor is required to assist the controller in the application of this Clause as well as the scope and the extent of the assistance required.
Clause 9
Notification of personal data breach
In the event of a personal data breach, the processor shall cooperate with and assist the controller for the controller to comply with its obligations under Articles 33 and 34 of Regulation (EU) 2016/679, taking into account the nature of processing and the information available to the processor.
9.1 Data breach concerning data processed by the controller
In the event of a personal data breach concerning data processed by the controller, the processor shall assist the controller:
(a) in notifying the personal data breach to the competent supervisory authority/ies, without undue delay after the controller has become aware of it (unless the personal data breach is unlikely to result in a risk to the rights and freedoms of natural persons);
(b) in obtaining the following information which, pursuant to Article 33(3) of Regulation (EU) 2016/679, shall be stated in the controller’s notification, and must at least include: - (1) the nature of the personal data including where possible, the categories and approximate number of data subjects concerned and the categories and approximate number of personal data records concerned; - (2) the likely consequences of the personal data breach; - (3) the measures taken or proposed to be taken by the controller to address the personal data breach, including, where appropriate, measures to mitigate its possible adverse effects.
Where, and insofar as, it is not possible to provide all this information at the same time, the initial notification shall contain the information then available and further information shall, as it becomes available, subsequently be provided without undue delay.
(c) in complying, pursuant to Article 34 of Regulation (EU) 2016/679, with the obligation to communicate without undue delay the personal data breach to the data subject, when the personal data breach is likely to result in a high risk to the rights and freedoms of natural persons.
9.2 Data breach concerning data processed by the processor
In the event of a personal data breach concerning data processed by the processor, the processor shall notify the controller without undue delay after the processor having become aware of the breach. Such notification shall contain, at least:
(a) a description of the nature of the breach (including, where possible, the categories and approximate number of data subjects and data records concerned);
(b) the details of a contact point where more information concerning the personal data breach can be obtained;
(c) its likely consequences and the measures taken or proposed to be taken to address the breach, including to mitigate its possible adverse effects.
Where, and insofar as, it is not possible to provide all this information at the same time, the initial notification shall contain the information then available and further information shall, as it becomes available, subsequently be provided without undue delay.
The Parties shall set out in Annex III all other elements to be provided by the processor when assisting the controller in the compliance with the controller’s obligations under Articles 33 and 34 of Regulation (EU) 2016/679.
Section III. Final provisions
Clause 10
Non-compliance with the Clauses and termination
(a) Without prejudice to any provisions of Regulation (EU) 2016/679, in the event that the processor is in breach of its obligations under these Clauses, the controller may instruct the processor to suspend the processing of personal data until the latter complies with these Clauses or the contract is terminated. The processor shall promptly inform the controller in case it is unable to comply with these Clauses, for whatever reason.
(b) The controller shall be entitled to terminate the contract insofar as it concerns processing of personal data in accordance with these Clauses if: - (1) the processing of personal data by the processor has been suspended by the controller pursuant to point (a) and if compliance with these Clauses is not restored within a reasonable time and in any event within one month following suspension; - (2) the processor is in substantial or persistent breach of these Clauses or its obligations under Regulation (EU) 2016/679; - (3) the processor fails to comply with a binding decision of a competent court or the competent supervisory authority/ies regarding its obligations pursuant to these Clauses or to Regulation (EU) 2016/679.
(c) The processor shall be entitled to terminate the contract insofar as it concerns processing of personal data under these Clauses where, after having informed the controller that its instructions infringe applicable legal requirements in accordance with Clause 7.1 (b), the controller insists on compliance with the instructions.
(d) Following termination of the contract, the processor shall, at the choice of the controller, delete all personal data processed on behalf of the controller and certify to the controller that it has done so, or, return all the personal data to the controller and delete existing copies unless Union or Member State law requires storage of the personal data. Until the data is deleted or returned, the processor shall continue to ensure compliance with these Clauses.
Annex I. List of parties
Controller
- Name: the organization that owns the Klozeo workspace, as recorded in the workspace (name and billing details) Address: as recorded in the workspace billing details Contact person's name, position and contact details: the workspace owner, at the email address of the owner's account Accession date: the date the account is created
Processor
- Name: LB FRAME, SASU, RCS Salon-de-Provence 103 671 350 Address: 765 Boulevard des Ventadouiro, 13300 Salon-de-Provence, France Contact for data protection matters: [email protected] Data protection officer: none designated
Annex II. Description of the processing
Categories of data subjects whose personal data is processed
- The people whose details the Controller stores in lead records: prospects and their contacts, mostly individuals acting for a business, and sole proprietors.
- The people named in the free-text fields and notes the Controller writes.
- The members of the Controller's workspace, as the author of a change recorded in the lead history, as the author of a note, as the assignee of a lead, and through their email address, which the owner and the active members of the workspace see.
Categories of personal data processed
What the Controller chooses to store in a lead record, typically:
- business and contact names;
- email addresses and phone numbers;
- addresses and geographic location data;
- website URLs and social media links;
- categories, tags and custom attributes;
- notes and scoring data;
- the 9-digit SIREN, which for a sole proprietor can identify a natural person;
- the email address of a member of the workspace, where it names the assignee of a lead, the author of a note or the member who acted in the lead history;
- the lead history: action (creation, update, merge, deletion), date, author, and values before and after the change.
Sensitive data processed, and restrictions or safeguards applied
The Controller does not intend to process sensitive data (Clause 7.5) in Klozeo. The Service applies no restriction or safeguard specific to such data beyond those in Annex III. The Controller decides what it writes in free-text fields, notes and custom attributes.
Nature of the processing
Storing, reading, searching, filtering and exporting lead records. Automatic scoring and deduplication of leads. Recording the lead history. Delivering lead events to the webhook destinations the Controller configures. Passing lead data to the apps and AI assistants the Controller connects, when they read on its behalf. Backing up and deleting the data. When the Controller explicitly asks for enrichment (the enrich option on a create, merge or batch item, the enrich endpoint or the MCP enrich tool), the Processor sends the SIREN alone to the public Recherche d'entreprises service (api.gouv.fr) and writes the company data it returns only into empty, unlocked fields. The apps, AI assistants and webhook destinations the Controller chooses, and that public service when the Controller asks for enrichment, are recipients acting on the Controller's instruction, not sub-processors of the Processor.
Purpose of the processing
Providing the Klozeo service to the Controller, as described in the Terms of Service. The Processor does not use lead data for any other purpose: it does not sell it, does not share it with third parties for marketing or advertising, does not use it to train AI or machine-learning models, and accesses it only when strictly necessary to provide technical support the Controller requests.
Duration of the processing and retention
The processing lasts as long as the Controller's account is active. After the account is terminated or deletion is requested, access is revoked and lead data is permanently deleted within 30 days. Encrypted backups may keep deleted data for up to 90 days. Certain data may be kept longer where the law requires it.
| Data | Retention |
|---|---|
| Lead data | While the account is active; deleted within 30 days of account termination |
| Lead history | While the owner's account exists, then deleted with the account. The values before and after the change (including note text, attribute values and the assignee) in the history of a lead deleted more than 30 days ago are erased by a daily job, so they are gone within 31 days of the deletion. The action, date, member or API key, channel, reason and names of the changed fields remain. Backups keep those values for up to 90 days after the erase. The history of a lead that is not deleted is not purged. When a member deletes their own account, their identifier is removed from the history of other owners |
| Assistant save records (no contact values, no conversation text) | 30 days |
| API retry records (workspace, API key or member id, the client's retry key, operation, a hash of the request, and the first response's status, lead or note ids and outcome flags; no contact values or note text) | 30 days. A member's own rows are deleted with their account |
| Webhook event content | Erased as soon as the Controller's endpoint accepts it. If delivery fails for good, or the webhook is paused, kept 72 hours after the event so the Controller can redeliver it, then erased. Deleting a lead does not remove it from an event kept during those 72 hours |
| Webhook delivery receipts (event, state, dates, HTTP status; no lead data) | Until the webhook or the account is deleted |
| Backups | Encrypted, stored in Cloudflare R2 (EU jurisdiction), at most 90 days |
End of the contract (Clause 10(d))
At the Controller's choice, return or deletion. Return: before it requests deletion, the Controller can export its lead data (CSV, JSON, XLSX) and, as account owner, its whole account (JSON). Deletion: within 30 days as above. The Processor confirms the deletion in writing by email on the Controller's request.
Sub-processors
The subject matter, nature and duration of the processing by each sub-processor are in Annex IV.
Annex III. Technical and organisational measures
The Processor implements at least the following measures. Each applies to lead data.
Encryption and protection of data
- III.1 Data in transit between users, apps and Klozeo (website, API, MCP server) is protected by HTTPS/TLS.
- III.2 The database backup is encrypted before it is sent to Cloudflare R2 (EU jurisdiction), where it is stored.
- III.3 API keys are stored only as a SHA-256 hash. A database trigger replaces any raw key written later with an unusable marker.
User identification and authorisation
- III.4 Calls are authenticated in one of three ways: an API key (REST and classic MCP), which carries the owner's rights; an OAuth token (AI assistants); or, for the dashboard, a web session, whose requests the web application sends to the API as signed internal requests that name the workspace, the member and the role. Members of a workspace have the role owner, admin, editor or viewer. An admin manages the workspace's API keys, webhooks and assistant connections. An admin's lead access is given by the owner for 24 hours, 7 days or with no limit, and ends when that period ends or when the owner ends it. While an admin has no lead access, the admin as a person (web session and assistant connections) sees no leads; the API keys and webhooks that admin set up belong to the workspace and keep full reach. For dashboard sessions the signed role is only a ceiling: the API checks the active membership on every call, so a withdrawn right applies on the next call. The API refuses role headers sent by callers.
- III.5 The Controller can disconnect an app or AI assistant at any time.
- III.6 The calls between the web application, the MCP server and the API are signed (HMAC-SHA256, nonce, timestamp) and refused outside a 60-second window.
- III.7 The Processor accesses lead data only when strictly necessary to provide technical support the Controller requests.
Network and platform
- III.8 The servers accept web traffic only from Cloudflare (ports 80 and 443), which provides the reverse proxy and web application firewall.
- III.9 The web application, the API and the MCP server use separate database accounts with named rights. The API refuses to start with an account that holds more rights than its role allows.
- III.10 Requests are rate-limited per key, account and network before they cost database work, and plan limits apply. If the counters fail, requests are refused.
Logging
- III.11 Every creation, update, merge and deletion of a lead is recorded in the lead history with its date, its author and the values before and after the change, and it names the member who acted. The values before and after in the history of a lead deleted more than 30 days ago are erased within 31 days of the deletion; the action, date, member or API key, channel, reason and names of the changed fields remain (Annex II).
- III.12 API request logs keep metadata (endpoint, timestamp, HTTP status, rate-limit counters), not request content. Error reports go to the Processor's own error-monitoring server. In the Go API, each report is rebuilt from a fixed set of technical fields, without request content, lead data or credentials. In the web application, the report keeps its technical content, but request bodies, cookies, query strings and IP addresses are removed, only a short list of headers is kept, and email addresses, failed-query parameters and API keys found in the text are masked.
Availability, restoration and resilience
- III.13 A full database backup is taken every day. Every day the latest backup is downloaded, decrypted and restored into a disposable database, and its table counts are checked against those taken when the backup was made. A daily check alerts the Processor if the backup or the restore test is missing. Backups are kept at most 90 days and are protected against deletion for the first 30 days.
Data minimisation, retention and erasure
- III.14 The retention periods are those of Annex II. An automatic purge runs every day at 03:30 UTC. Account deletion is completed within 30 days. The purges are idempotent and their logs hold only counters and step names.
- III.15 Webhook event content is erased as soon as the Controller's endpoint accepts it, and at the latest 72 hours after the event.
- III.16 Webhooks sent to a custom destination with a secret are signed with HMAC-SHA256, with a timestamped header. The Controller can rotate the secret with a 24-hour overlap. The dashboard requires a secret on every new custom webhook; the API keeps it optional.
Software and change management
- III.17 Production releases go through a gated pipeline: full tests, acceptance tests and vulnerability scans (Go and JavaScript dependencies, secrets in the source, container images) must pass first. Secrets are never written in versioned documents.
Portability and assistance to the Controller (Clause 8)
- III.18 The Controller can read, correct and delete leads in the dashboard and through the API, within the limits of its role, and can export them (CSV, JSON, XLSX). The account owner can export the whole account (JSON) and delete the account.
- III.19 The Processor assists the Controller with data subject requests, impact assessments and breach notifications as Clauses 8 and 9 require. Contact point for requests and for the information required by Clause 9.2(b): [email protected].
Personal data breach (Clause 9)
- III.20 The Processor notifies the Controller of a personal data breach without undue delay after becoming aware of it, and in any event no later than 72 hours after becoming aware of it. The notification is sent in writing, by email to the workspace owner's address, and contains at least the information listed in Clause 9.2(a) to (c). If it is not possible to provide all the information at the same time, the initial notification contains the information then available and the rest follows without undue delay, as Clause 9.2 provides.
Annex IV. List of sub-processors
The Controller authorises the following sub-processors (Clause 7.7(a), option 2). The Processor informs the Controller in writing of any intended addition or replacement at least thirty (30) days in advance, by email to the workspace owner's address, and gives the information needed to object.
| Sub-processor | Country | Processing | Subject matter, nature and duration |
|---|---|---|---|
| Cloudflare, Inc. | United States; Cloudflare R2 backups in the EU jurisdiction | DNS, TLS, reverse proxy and web application firewall for the website, API and MCP server; hosting of the encrypted backups (Cloudflare R2). | Requests and their technical information, including IP addresses, pass through it; lead data in those requests is processed in transit. Encrypted backups: at most 90 days. For the duration of the contract. |
| Hetzner Online GmbH | Germany | Servers hosting the database and the Processor's monitoring tools. | Storage of lead data and account data. For the duration of the contract. |
| Contabo GmbH | Germany | Servers running the website, the API and the MCP server. | Processing of requests, including lead data in them. For the duration of the contract. |
| Stripe Payments Europe, Limited | Ireland (some processing in the United States through its group companies) | Payment and billing. A customer record (email address, name, account identifier) is created at sign-up. | No lead data. For the duration of the contract. |
| Plus Five Five, Inc. (Resend) | United States | Transactional emails: the email address and the content of the email. | No lead data. For the duration of the contract. |