Back to CallCamIT

Data processing agreement

The Article 28 processor terms between CallCamIT and a customer.

CallCamIT — UK GDPR Article 28 terms

Version 1.5, 6 October 2026 (§0 and §3.4: a Team laptop renews its own licence once a day near its date, sending the licence it holds and its identifier; an administrator can switch it off). Forms part of the CallCamIT terms of use.

This is a draft prepared carefully, not a solicitor's work. It is written to be accurate about what the software actually does — which is the part a template gets wrong — but it has not been reviewed by a qualified lawyer, and it should be before it goes to a customer. Two of its terms are commercial choices rather than facts about the software: the notice we give of a sub-processor change (§4(d)) and the audit terms (§4(h)). Both are set to the usual ones, and either can be negotiated.


0. The unusual thing about this agreement, stated first

Most software vendors are processors because the customer's data sits on the vendor's servers. CallCamIT is not built that way. In its default configuration:

In that configuration we do not process your personal data at all beyond the Team activation record, and this agreement mostly describes what happens if that changes. It is written down rather than assumed, because "the vendor holds nothing" is exactly the claim a data protection officer will want to see supported.

The three situations where we do become a processor are named in §3: a diagnostic export you send us (§3.1), a support engagement (§3.2) and a Team key activation (§3.4). Each one only happens because somebody chose it. §3.3 explains a fourth case that is often assumed to be one and is not: a hosted AI model you configure is your processor, not ours.


1. Parties and roles

You are the controller. You decide why CallCamIT is used and what happens to the personal data in it. Your staff raise the tickets; your IT team works them; the records are yours.

We — CALLCAMIT LTD, the supplier of CallCamIT, a company registered in England and Wales with company number 17455028 and its registered office at 14 Walton Way, London W3 0AW, United Kingdom — are a processor, and only to the extent set out in §3.

Where CallCamIT reads your Microsoft 365 tenant, you remain the controller of that data and Microsoft is your processor under your own agreement with them, not ours.


2. Subject matter, duration, nature and purpose

Article 28(3) requires each of these in writing.

Subject matter IT support requests raised by your staff, and the technical information gathered while resolving them.
Duration For a diagnostic export: 90 days after the case closes for the export itself, and for the copies of its covering email the periods in §3.1. For a support engagement: the length of that engagement. For a Team activation: the laptop's entry on the key until it is deactivated or you ask us to delete it, and the same laptop identifier and hostname in our ledger of issued licences until you ask us to delete them (§3.4). Otherwise: none, because no processing by us takes place.
Nature Reading, and where necessary copying, records you supply to us; our email assistant sorting the email they arrive with and drafting a reply, unless its subject starts with [PRIVATE] (§3.1); holding the Team activation records. We do not host, aggregate, profile or make decisions about anyone.
Purpose Diagnosing a fault in CallCamIT, helping you use it, or counting the seats on a Team key. Nothing else.

Types of personal data

Names, work email addresses and usernames; device identifiers and hostnames; the content of support tickets and the messages within them; technical logs about the person's machine; and records of administrative actions taken on accounts. For a Team activation (§3.4): the key, a laptop identifier, a hostname and the IP address the request came from only.

Special category data is not intended to be processed. Support tickets can nonetheless mention health, disability or union membership — somebody explaining why they need software adjusted, for example — and CallCamIT screens for that: compliance/special_category.py keeps such tickets away from a hosted provider: the local model answers them, or, where the PC has none that can, the ticket is held for a person (CC-7006). The screen covers tickets only: it does not cover a local-engine address pointed at another machine, where every ticket goes to that machine, or Admin Cam, whose instructions and the directory results it reads go unscreened to a hosted provider when one is configured and its transfer assessed (Admin Cam withholds from the model only the secrets its own tools return, such as the temporary password it generates for a new account). That is a control, not a guarantee, and §3.1 says what we do if we see such data anyway.

Categories of data subject

Your employees, contractors and agency staff. Where a ticket describes an interaction with someone outside your organisation, that person too.


3. When we process, and only then

3.1 You send us data to diagnose a fault

You export a troubleshooter report, a ticket, or a database and send it to us because something is wrong with CallCamIT.

How it reaches us, and what that means. The only route we offer is email to support@callcamit.com. The mailbox is not a closed channel, and what happens to the email depends on its subject:

If even the mailbox is not acceptable to you, do not send an export by email. We do not yet offer another route.

3.2 We work on your systems under a support engagement

Remote access, or hands-on-keyboard work, under a separate statement of work. That engagement's terms govern, and this agreement applies to it.

3.3 You configure a hosted AI model

This one is worth reading carefully, because it is probably not what you expect.

If you switch CallCamIT from the local model to a hosted provider, ticket text is sent from your machines directly to that provider. So are an administrator's instructions to Admin Cam and the directory results it reads; Admin Cam withholds from the model only the secrets its own tools return, such as a new account's temporary password. None of it passes through us and we never see it. That provider is therefore your processor under your own agreement with them — not our sub-processor.

CallCamIT refuses to send anything to a hosted provider until an administrator has explicitly acknowledged it (providers.chat() enforces this; the setting alone is not enough), and the troubleshooter reports an unacknowledged configuration as a failure rather than a warning. It also judges "off-site" by destination rather than by product name — an Ollama server on another machine counts as off-site, and a loopback OpenAI-compatible endpoint does not.

Before you turn that on you need a transfer risk assessment if the provider is outside the UK. compliance/transfers.py records one, and CallCamIT will not send ticket text to the provider until it exists: the local model answers where the PC has one that can, and otherwise the ticket is held for a person (CC-7006).

3.4 You activate a Team key

The Team plan sells a key rather than a licence file, and a key has to be counted. When somebody types it into a laptop and presses Activate, activation.activate_key makes one HTTPS POST to callcamit.com/api/activate.php carrying three fields: the key, a laptop identifier, and the laptop's hostname, so the key's owner can tell their laptops apart in the client portal.


4. Our obligations

The eight in Article 28(3)(a)–(h), in order.

(a) We act only on your documented instructions, including about international transfers, unless required otherwise by law — in which case we will tell you first unless the law forbids it. If we think an instruction breaches UK GDPR or the DPA 2018, we will say so rather than carry it out quietly (Art. 28(3), final paragraph).

(b) Anyone we let near your data is bound to confidentiality, by contract, and only sees it if they need to for the matter in hand.

(c) We take the security measures required by Article 32. For the product itself, what those are is documented in SECURITY.md rather than summarised in marketing terms — including the residual risks we have not solved, which are listed there with the same prominence as the controls.

(d) Sub-processors. For an export and its covering email (§3.1) there are two: IONOS, which provides our support mailbox and the server our email assistant runs on, and Groq, which our email assistant sends the covering email's text to unless its subject starts with [PRIVATE]. Groq publishes its own list of the companies it uses. For the activation records in §3.4 the only one is the company hosting our licence server, IONOS, recorded in our own record of processing, and it holds those records and nothing else of yours. If that changes we will give you 30 days' notice and you may object; if you object reasonably and we cannot resolve it, you may terminate without penalty. As §3.3 explains, a hosted AI provider you configure is not our sub-processor.

(e) We assist you with data subject rights. In practice CallCamIT does most of this itself: Controller → Compliance assembles a subject access pack, services rectification, erasure and restriction, and answers Article 22 requests about automated decisions — from your own database, without us. Where a request touches something we hold under §3.1, we will provide it promptly.

(f) We assist you with Articles 32 to 36 — security, breach notification, DPIA and prior consultation. CallCamIT generates a draft DPIA and a record of processing activities from your actual configuration, and tracks the 72-hour ICO clock on any breach you log.

If we suffer a breach affecting your data, we will tell you without undue delay and in any event within 24 hours of becoming aware, with what we know at that point. We will not wait until we have the full picture, because your own 72 hours starts when you become aware.

(g) At the end we delete or return it, at your choice, and delete existing copies unless the law requires us to keep them. For the software itself there is nothing to return: it is already yours and on your machines.

(h) We will give you what you need to demonstrate compliance, and submit to audits or inspections by you or an auditor you appoint, on reasonable notice, in normal business hours, no more than once a year unless a breach or a regulator makes it necessary, and with each side bearing its own costs.


5. Transfers outside the UK

For the processing in §3.1 there are two possible transfers, and a third that is certain unless the covering email's subject starts with [PRIVATE] (§3.1):

If any of this changes we will tell you first and put an appropriate safeguard in place, and provide it to you.

For the activation records in §3.4, our licence server is hosted by IONOS, on an IONOS network registered in Germany. We have not confirmed where the server physically sits. If it is in the EEA, that is a transfer to a place UK law already treats as adequate; we will confirm the location and update this section.

A hosted AI provider is your transfer, not ours (§3.3), and it is your assessment to make.


6. Liability

The liability provisions in the CallCamIT terms of use apply, except that nothing in them limits or excludes either party's liability under Article 82 UK GDPR to a data subject, which cannot be limited by agreement between us. That is stated here rather than left to be discovered, for the same reason the terms of use state what they cannot exclude: a limitation that fails in court is worse than one that was never claimed.


7. Priority

If this agreement and the terms of use conflict on data protection, this agreement wins. On anything else, the terms of use win.


8. Law

The law of England and Wales, and the exclusive jurisdiction of its courts.


For whoever reviews this

The claim that carries the most weight commercially is in §0 and §3: in the default configuration we hold nothing. That is not a drafting position, it is how the software is built, and every part of it is verifiable — the local model, the offline licence check, the absence of telemetry, and the enforcement point that stops ticket text reaching a hosted provider without an explicit acknowledgement. The one qualification is the Team activation call in §3.4, and it is stated rather than left for a reviewer to find in the source: tests/test_dpa.py checks that the three fields it names are the three fields the code sends. If a customer's DPO wants to test it, SECURITY.md and the troubleshooter's own report are the places to look, and both are written to be read by somebody who is checking rather than being sold to.