Data Processing Agreement
Last updated: 26 September 2026
This Data Processing Agreement ("DPA") forms part of the agreement between Beesworx (Pty) Ltd, a private company registered in South Africa, operating Buzzz at buzzzmail.co.za ("Buzzz", "we", "us"), and a customer using the Service ("Customer"), and applies to Buzzz's processing of personal information contained in Customer's contact data. It should be read together with our Terms of Service, Privacy Policy, and POPIA Notice.
1. Scope
This DPA applies to any personal information Buzzz processes on Customer's behalf and on Customer's instructions in the course of providing the Service: principally the contact data (names, email addresses, phone numbers, and custom fields) Customer uploads or connects, and the message content, delivery, and engagement data generated by sending to those contacts. It does not apply to Buzzz's own account and billing data about Customer, which our Privacy Policy covers as its own responsible party.
2. Roles
Customer is the responsible party (controller) for the personal information of its contacts. Buzzz is the operator (processor), processing that data only to provide the Service and only on Customer's instructions: the instructions given through the Service's ordinary configuration (who to send to, what to send, which providers to send through) and any further written instruction Customer gives us. Buzzz will tell Customer if, in our reasonable opinion, an instruction would breach POPIA, the GDPR, or another applicable data protection law.
3. Confidentiality
Buzzz treats Customer's contact data as confidential and limits access to personnel and systems that need it to operate the Service. We do not use Customer's contact data for our own purposes and do not sell it. The optional AI writing features (section 5 below) send only Customer's own message copy to our AI provider, never contact data. Under Anthropic's own commercial terms, API inputs and outputs are not used to train its models and are retained only as needed to provide the service and for abuse-monitoring purposes, typically no longer than 30 days.
4. Security measures
Measures currently in place:
- encryption in transit via TLS for all Service traffic;
- provider credentials and API keys encrypted at rest with AES-256-GCM; API keys themselves are stored as bcrypt hashes and never in plaintext;
- signature verification on the delivery-receipt webhooks from AWS (SES bounce, complaint and delivery notifications) and Twilio, so only the real provider can update a record's state, both failing closed in production; our SMS provider BulkSMS does not offer webhook signing at all, so that one channel is instead protected by a shared secret known only to us and BulkSMS;
- private inbound email attachments are never made public; they are served through per-request presigned URLs that expire after 1 hour;
- a per-organization sending-reputation guard that warns, and if needed pauses, an account whose bounce or complaint rate risks the shared sending infrastructure other customers depend on;
- suppression and opt-out lists (unsubscribe, SMS STOP) that apply to every list, campaign, and automated message a given sender sends through Buzzz, not only the message being reacted to;
- access to production systems is limited to personnel who need it to operate the Service, through individual accounts rather than shared credentials;
- personnel who can access Customer data are bound by confidentiality obligations in their engagement with Beesworx;
- encrypted daily database backups, retained for 30 days.
5. Sub-processors
Buzzz uses the sub-processors below to provide the Service. See also Where your data lives.
- Amazon Web Services: SES (outbound email). AWS region eu-north-1 (Stockholm, Sweden). Sends email on Customer's behalf; message content and recipient addresses pass through it.
- Amazon Web Services: SES + S3 (inbound email). AWS region eu-west-1 (Ireland). Receives mail for a Customer's verified domain, if enabled, and stores the raw message.
- Object storage for uploaded assets and extracted attachments. An S3-compatible store (MinIO), separate from the AWS S3 bucket above but not itself a third-party sub-processor: it runs on the same Beesworx-operated infrastructure as the application, used for dashboard image uploads and attachments extracted from inbound email; this touches contact data (attachment content).
- BulkSMS.com and/or Twilio: SMS sending and delivery receipts, per Customer's provider choice. SMS body and recipient number pass through whichever provider handles the send, which touches contact data. BulkSMS is used through a South African account; Twilio is a US-headquartered global provider whose Messaging API routes a send through the region nearest its destination.
- RevEx: billing, plan entitlements, and referral/top-up allowance tracking. Processes Customer's own account and usage data only, not contact data. RevEx is also a Beesworx product, operated on the same infrastructure as Buzzz; its own payment processor is not part of this codebase; contact us for details.
- Sentry: error tracking, on Customer's dashboard sessions and ours. Request headers carrying credentials (Authorization, cookies) are stripped before an event is sent; browser session replay masks input field contents but not all on-page text, so a dashboard error captured mid-session could include visible contact or message data. Our configuration uses Sentry's default hosted region (United States).
- PostHog: product analytics on the dashboard and marketing site, identified by user id, email, and name. Processes Customer's own account-usage data only, not contact data. Session recording of dashboard use is available but off by default. Our configuration uses PostHog's US cloud host, the default when no other host is configured.
- Anthropic: the optional AI subject-line, rewrite, and composer features. Only Customer's own message copy is sent (never contact data or credentials), and only when Customer actively uses the feature. Our configuration sends this to Anthropic's own API by default; it can instead be routed through an internal gateway Beesworx operates on the same infrastructure as the application.
- Operational logs and traces. Our configuration supports sending application traces to an external collector for diagnosing performance issues, but no external destination is configured by default, and none is in production use today.
Not a Buzzz sub-processor: if Customer connects its own email provider (SendGrid, Brevo, Resend, MailerSend, Gmail, or a custom SMTP server) using its own credentials, Buzzz transmits Customer's message through that provider under Customer's own account with it. That provider is a Customer-instructed sub-processor that Customer contracts with directly; Buzzz merely transmits the message through it under Customer's own credentials and takes on no processing role of its own for that traffic.
We will give Customer at least 30 days' notice, by email or a dashboard notice, of a new sub-processor or a change to this list. Customer may object by emailing privacy@buzzzmail.co.za within that period; if we cannot resolve the objection, Customer may terminate the part of the Service that relies on the new sub-processor.
6. International transfers
Several sub-processors above process personal information outside South Africa. See our POPIA Notice (section 5) for the section 72 basis we rely on for these transfers.
7. Assistance with data subject requests
Buzzz gives Customer the tools to action most requests directly: deleting or correcting an individual contact or a whole list from the dashboard or the API, exporting a backlog of suppression records, and the unsubscribe/STOP mechanisms, which cover every list, campaign, and automated message that sender sends through Buzzz. Where a request needs something the dashboard cannot do, contact privacy@buzzzmail.co.za and we will assist. See our POPIA Notice (section 6) for how long we keep the records this depends on.
8. Personal information breach notification
If we become aware of an incident affecting the confidentiality, integrity, or availability of personal information we process for Customer, we will notify Customer within 72 hours of confirming the breach, with the information reasonably available to us, and cooperate with Customer's own notification obligations to affected individuals and the Information Regulator.
9. Deletion or return of data
During the relationship, Customer can delete individual contacts or entire contact lists at any time through the dashboard or the API. On termination of the Service, Customer may request deletion of its remaining contact data and message history by emailing support@buzzzmail.co.za; we will complete the deletion within 30 days of the request. Absent such a request, remaining data is kept for the periods set out in our POPIA Notice (section 6) before being deleted or anonymised.
10. Audits
On reasonable written request, no more than once every 12 months, Beesworx will provide Customer a summary of the security measures described in section 4, sufficient to support Customer's own compliance review. Beesworx does not grant an on-site audit right.
11. Contact
Questions about this DPA: privacy@buzzzmail.co.za.