Privacy Policy
Effective date: October 30, 2026
Provider: Effective Activism (effectiveactivism.com), VAT ID DK36667621
1. Introduction
This Privacy Policy explains how Effective Activism (effectiveactivism.com, VAT ID DK36667621), which runs Active for Animals ("we", "us", "our"), processes personal data when acting as a data controller under the General Data Protection Regulation (GDPR). It covers this website and the platform that serves Active for Animals' tools.
This Policy does not cover personal data that organisations process with our tools, such as the contacts an organisation tracks with the Engagement Tracker or the posts it plans with the Social Media Content Planner. For that data the organisation is the data controller and we process it on its behalf under the agreement it accepts when it starts using a tool.
2. Categories of Personal Data We Process
We may process the following personal data in our capacity as controller:
2.1 Accounts
- Name and email address
- Preferred language
- The organisations you belong to and your role in each
- Sign-in sessions and the days you signed in
2.2 Client & Partner Contacts
- Name
- Email address
- Organisation
- Role / title
- Communication history
2.3 Website Contact Data
- Contact form submissions (your name, email address and message), which are sent to us by email and not stored by the platform
- Waiting-list sign-ups for tools we are still building (your email address, your organisation's name and, if you give them, its website and number of employees, and how urgently your organisation needs the tool), which are stored in the platform's own database, can be read only by Active for Animals' platform administrators and are kept until we delete them
- Email correspondence
2.4 Survey Responses
When you answer one of our Engagement Tracker impact surveys, we store your answers with the survey, the language you answered in and the time you submitted them: your email address (required in the 3-month, 6-month and 1-year surveys, optional in the baseline survey), the name of your organisation and, if you give them, its website and number of employees, your role and the answers to the questions. We use them, with your consent, to track our performance and improve our services. Survey responses are stored in the platform's own database, can be read only by Active for Animals' platform administrators and are never shared with third parties. We keep them for 2 years from the day you submit them and then delete them; you can ask us to delete your response earlier.
2.5 Booking a Demo or a Conversation
The pages "Book a free demo" and "Book a conversation" show the booking calendars of our scheduling providers, Calendly and zcal. Your browser talks to the provider directly when the calendar loads; the details you enter when booking are collected by that provider and shared with us so we can hold the meeting. Our own pages collect nothing.
2.6 Technical Data
- Your network address, kept for rate limiting and abuse handling
- Operational logs, with addresses masked and no message contents
We do not intentionally process special category data.
3. Lawful Basis for Processing
We rely primarily on Legitimate Interest (Art. 6(1)(f) GDPR), including:
- Managing client relationships
- Improving our services
- Operating our organisation
- Communicating with partner organisations
- Keeping the platform secure
We process account data to provide the tools your organisation has asked for (Art. 6(1)(b) GDPR), and survey responses on the basis of the consent you give in the survey (Art. 6(1)(a) GDPR). You can withdraw consent at any time by contacting us.
4. Cookies
This website uses only strictly necessary cookies. No tracking, analytics, or marketing cookies are used. These are all the cookies the platform sets:
| Cookie | Purpose | Lifetime |
|---|---|---|
| afa_session | Keeps you signed in. Set when you sign in and removed when you log out. | 90 days after you sign in, or until you log out |
| afa_form | Protects the sign-in, sign-up, contact and survey forms against forgery. Holds a random value only. | 24 hours |
| afa_sso | Keeps track of a single sign-on through your organisation’s identity provider while it is in progress. | 10 minutes, removed when the sign-in completes |
| afa_contact_sent | Shows the confirmation once after you send the contact form. Holds no part of your message. | 5 minutes, removed when the confirmation is shown |
These cookies are strictly necessary for signing in and for protecting forms against forgery, and are set under the lawful basis of Legitimate Interest. No consent is required for these cookies under the ePrivacy Directive.
When you dismiss the cookie notice, your browser remembers that choice in its own storage on your device. It is not a cookie and is never sent to us.
The booking calendars on "Book a free demo" (Calendly) and "Book a conversation" (zcal) are loaded from those providers, who may set their own cookies under their own policies. This happens only on those two pages.
5. Data Retention
Personal data is retained only as long as necessary for the purposes described above. The table below is the platform's retention register: every kind of data the platform keeps and for how long.
| Data | Kept for | Counted from |
|---|---|---|
| Operator audit trail entries | 24 months | entry time |
| Visitors' network addresses kept for rate limiting and abuse handling | at most 30 days | request |
| Operator logs | 90 days | entry time |
| Backups | 30 days | backup time |
| Backup markers (object key, size, duration and time of each nightly backup; no personal data) | 400 days | backup time |
| Client addresses on audit entries | XC-RET-009 period (30 days), then removed from the entry | entry time |
| Operator notifications | 90 days | cleared or notified |
| Idempotency keys of creating requests (key, principal, operation, the request hash and the first answer as sent, which may carry the created resource; operations whose answer is a credential are never kept, decision 0017) | 24 hours | request |
| AI request budget counters (requests on the platform’s AI key per organization and month, the operator’s override; counts only) | 13 months | the month counted |
| Geocoding results by normalised query (address text, no names) | 90 days | cached |
| Send log of platform emails: the full recipient address, template, subject, outcome and the transport error with addresses masked; no bodies | 90 days | send |
| Addresses suppressed after a hard bounce or complaint | until cleared by an administrator | bounce |
| Tracking ids and link ids with their tenant, email and link target or hosted-file key (the token-to-target map) | for as long as the platform runs; removed with the tenant | tenant deletion |
| Raw tracking requests (tracking or link id, time, network address, device description) before ingestion | 7 days after ingestion | ingestion of the hit |
| Tracked emails (tracking id, mailbox, send time, mail-merge id, tracking domain, per-email consent and opt-out) over the CRM’s emails | as the CRM email it belongs to (removed with it) | removal of the CRM email; tenant deletion |
| Tracked links and hosted files (target address or file, mailbox, the email they belong to) | for as long as the platform runs; removed with the tenant | tenant deletion |
| Engagement events (kind, time, verification, exclusion, sign-off) with the network address, device description and approximate location of the request | network address, device description and location: 2 years after the event; the event itself as its tracked email | event age (daily retention sweep); removal of the tracked email |
| Self-view reports (the reporting mailbox, the network address and the time) | as the tracked email they concern | removal of the tracked email |
| The organization’s engagement options (GDPR mode, contact management, the AI assistant, a reference to its own key) | for the life of the organization; removed with it | tenant deletion |
| The organization’s own Google Gemini API key, encrypted (XC-SEC-004) | until removed ("Remove key") or replaced; removed with the organization | Remove key; replacement; tenant deletion |
| Stored AI texts (mailbox, generation key, prompt, generated and edited text) and the links to the people they were made for | 180 days after the text was last read or edited | last read or edit |
| AI usage figures (texts generated and edits saved per organization and day; counts only) | 13 months | the day counted |
| Follow-up plans: steps with their subjects, bodies and addresses (whatever the store option, never returned beyond the contract), per-recipient progress | as the tracked email or merge they belong to; stopped steps keep their reason | removal of the anchor email or merge; tenant deletion |
| Send-attempt records of follow-up steps (time, mailbox, plan and step, tracking id, outcome, reason; no bodies) | 13 months | the attempt |
| Automation runs: who or what each run was about, the data of the event that started it, and what each step did (including the addresses an email went to) | 90 days; the event’s data and addresses go at once when the person or record is erased or deleted | the run |
| Automations, their saved versions, email templates and newsletter lists (a list’s API key encrypted, XC-SEC-004) | for the life of the organization or until deleted; removed with it | deletion; tenant deletion |
| Platform-wide follow-up release counters per minute (planned and handed counts only; no tenant, mailbox or recipient) | 2 days | the minute counted |
| Send-attempt records of platform-performed Outlook sends (time, mailbox, request, tracking token, outcome, reason; no bodies) | 13 months | the record’s time |
| Outlook send requests (mailbox, draft id, outcome; the enriched contacts only until the request ends; subject and To recipients only while the organization stores emails) | 13 months after the request ended | the request’s end |
| Failed-send notices (time, reason, sender address; subject and To recipients only while the organization stores emails) | 90 days after dismissal or clearing, and at most 90 days after the notice was raised | the notice’s raising; dismissal by the sender, or a later successful send of the same draft; an erased person’s addresses go at once |
| Usage figures per organization (counts of tracked emails, active mailboxes, mail merges, follow-ups and AI texts; first use; providers), never an email, person or event | the last 53 ISO weeks; the current figures are replaced at every rollup; removed with the organization | week; tenant deletion |
| Counts of tracked emails’ counted events per email, day and figure, and per day (no address, device or location) | with the tracked email they count (removed with it); rebuilt on demand | the email’s removal; tenant deletion |
| The dashboard’s sender list: per mailbox, the stored sender addresses of its tracked emails and their latest stored name | rebuilt from the CRM every hour (an erased or anonymised sender leaves it within the hour); removed with the organization | hourly rebuild; tenant deletion |
| Tracking health counts per day (requests, events per kind, gate drops, failures), numbers only | 13 months (lead default) | day |
| Invoice PDFs uploaded for an egg sale not yet recorded, and replacement invoices never stamped | at most 24 hours after their last use (usable for at least 2) | the last upload, preview or refused report naming them |
| The public network address of each opening of an egg verification page (the time of the opening stays for the farm’s life) | 12 months | the opening |
| The inactive periods of each egg farm and when their alert was sent | for the farm’s life; removed with it | deletion of the farm |
| Consultation responses: the consent statement as shown and its time, the submitted email address, the page’s language, whether and when the supporter confirmed sending their email, the answers, and the link to the person in Contacts | until the organization deletes the response or the person (an erased person’s responses stay anonymised, without the address and the answers) | deletion of the response or the person; tenant deletion |
| Consultation form versions (the saved form, who saved it and when, the comment) | for the consultation’s life; removed with it | deletion of the consultation |
| Planned social media posts: the day, time, status, category and team, each network variant’s copy, hashtags, design link and chosen account, the approval, every version, comments and their mentions | until the organization deletes the post (its comments, versions and files go with it) | deletion of the post; tenant deletion |
| Media uploaded to planned posts (images and videos, publicly reachable at their address on the media host so the networks can fetch them) | as the post and its versions that name them; an upload never saved to a post: 24 hours | deletion of the post; upload |
| Social account connections: the network, the account’s id, name and picture address, who connected it and when, its team, and the access credentials (encrypted) | until disconnected (the credentials are deleted at once); removed with the organization | disconnect; tenant deletion |
| Pending social account connection requests: the member and sign-in session that started it, the accounts offered, the network’s interim grant (encrypted) | 1 hour after it is used or expires (it is valid for 10 minutes) | use or expiry |
| Posts published on connected social accounts (network, post id, account id and name, time, caption, format, link, the planned post it is linked to) and their daily metric readings | until the organization deletes them, or an operator deletes the account’s data on request (§10.3); kept after a disconnect | deletion request; tenant deletion |
| Publishing activity of planned posts: each publish, schedule, cancel and removal, who did it, when, the account, the request sent (never a credential) and the network’s answer | for the life of the organization, also after the post is deleted; an account’s name and the requests sent are removed on a deletion request (§10.3) | tenant deletion; deletion request |
| Deletion requests for a social account’s data (network, account id, the operator’s note, progress) | kept as the record of the deletion | never |
| Watched pages: the address, title, company, tags, owner and recipients, the watched part of the page, the keywords or topic, and the section proposal (short excerpts of the page) | until the organization deletes the watch; removed with the organization | deletion of the watch; tenant deletion |
| Snapshots of a watched page’s text (the watched part, normalised; never the page’s raw content) | the last 30 per watch, and every snapshot a change refers to, for the watch’s life | a newer snapshot; deletion of the watch |
| Changes found on watched pages (the removed and added passages, the summary, the verdict), the members’ feedback on them (useful or not, by whom) and the alert emails sent (recipient, address, time, outcome) | for the watch’s life | deletion of the watch; tenant deletion |
| Checks of watched pages (time, fetch method, outcome, failure reason, duration, size, AI use; no page content) | 13 months | the check |
| Imports of page lists (who imported, when, the counts, the rows that could not be imported and why; never the file) | for the life of the organization | tenant deletion |
| Web page monitoring feasibility runs (the run’s settings, reviewers’ labels of changes, the comparison list of another tool’s alerts) | until the organization is deleted | tenant deletion |
| Responses to the Engagement Tracker impact surveys at the four client-held survey links (survey, language, submission time and the answers, which may include the respondent’s email address and organisation) | 2 years | submission |
| Entries on the waiting lists of the tools in development (the tool, language, submission time, email address, organisation name, website and size if given, and how urgently the organisation needs the tool) | Until an administrator deletes them | submission |
| Single sign-on configuration per tenant (issuer, client id, metadata, certificate; the secret in the credential store) | the life of the tenant | tenant deletion |
| Identifiers of the SAML assertions consumed and the requests they answered (no personal data) | until the assertion’s own expiry | the assertion’s NotOnOrAfter |
| Sign-in sessions (token hash, timestamps); ended rows | 30 days after end | end or expiry |
| Email-change confirmation links (new address, token hash) | 30 days after expiry | expiry |
| Sign-in days per user (user id, day) for the admin usage comparison | 90 days | day |
| Unique sign-ins per week (counts only) | 53 weeks | week |
| Password reset and set links (token hash) | 30 days after expiry | expiry |
| Invitations (address, role, token hash) | 90 days after decision or expiry | decision or expiry |
| Sign-up requests (organization name, website, address, tools, decider and time) | kept as the decision record (phase-1-plan §6); a rejected request is deleted (IAM-RULE-096) | decision |
| Service agreement acceptances (who, when, which version) | the life of the tenant plus 6 years | tenant deletion |
| Offboarding record (tenant name, identifier, dates) | kept | never |
| Uploaded CSV files of a Contacts import | until the run ends; 24 hours for an import that is never started | end of the run, or upload |
| Contacts import records and run reports (row outcomes, values not stored, the records written) | 90 days | end of the run |
| Bulk tag changes (the tag, the records selected, progress) | 30 days | end of the operation |
| Subjects, HTML and plain-text bodies and attachment content of tracked emails, thread messages and CRM history emails | 2 years after the send time, removed within the following 24 hours | send time (registration time without one) |
| Sender and recipient addresses, names and person links on emails (slots and counts stay, anonymised) | 2 years after the send time; kept while the participant is a person synchronised from a connected HubSpot or Salesforce integration | send time; end of the CRM link |
| Subject and bodies of an email handed off by getEmail while it awaits the HubSpot export | 24 hours after the hand-off, or until the export handled it | hand-off |
| The message of a requested send (recipients, subject, bodies, attachments) | until the send ends (sent, failed or uncertain) | end of the send |
| The email records without content: kind, times, send state, recipient counts, message references | the life of the tenant | tenant deletion |
| Erasure audit entries: who, when, trigger, count, the identities of the anonymised records, erased-address markers and their lifts (no erased value) | the life of the tenant and 6 years after it ends | the tenant’s deletion |
| Keyed one-way fingerprints of erased addresses, with the opt-out held against them | the life of the tenant (a lift ends the suppression, not the opt-out) | the tenant’s deletion |
| CRM integration run history (what each sync, write-back and probe did) | 180 days | run start |
| Closed write-backs to connected CRMs | 30 days | write-back closed |
| Platform-performed sends: state, provider references and the masked failure text | 180 days | send finished |
| The once-only record of possibly-stuck Gmail send notifications (INT-RULE-034) | 30 days | noticed |
| Contacts-started Gmail connects: the single-use nonce, its starter and, until the finish step, the parked grant | 1 day (the parked grant: 15 minutes) | connect started |
| Marks that a mailbox’s conversations are read again from a send time | until the next run (at most 90 days) | email became matchable |
| MCP access log: token id, user email and tenant name at issue, client, scopes, issue and expiry times | 24 months | issue time |
| OAuth codes and tokens (hashed) with their grants | codes 1 day after expiry; tokens 30 days after expiry or revocation; grants kept while active | expiry or revocation |
| Operator record of MCP tool calls (user, tenant, tool, filters, row count, token id) | 90 days | call |
6. International Transfers
The platform's primary database and servers are in Frankfurt, Germany (EU). To keep the tools fast for organisations around the world, read-only copies of the database are kept in Singapore and New York (United States). The platform is primarily hosted in the EU, but this is not EU data residency: personal data is also stored in those copies. Requests to the platform pass through Cloudflare's global network.
Where personal data is transferred outside the EU/EEA, we rely on:
- European Commission Standard Contractual Clauses (2021/914), included in our providers' data processing agreements
- Appropriate technical and organisational safeguards
7. Subprocessors & Service Providers
We use the following service providers to run the platform. The list is the platform's processor register:
| Provider | Service | What it does for us | Personal data involved |
|---|---|---|---|
| DigitalOcean | Hosting | Hosting, managed database with read-only replicas in Singapore and New York, object storage, backups | All platform data, replicated to the read regions under the provider’s DPA and SCCs (plan §3.4) |
| Cloudflare | Edge and human check | TLS termination, caching, routing, abuse protection in front of every host; on the public forms (contact, sign-up, surveys, waiting lists, consultations, volunteer sign-up, directory sign-up), the Turnstile check that the visitor is not a robot, which loads a Cloudflare script and frame in the visitor’s browser | Request metadata including the visitor’s network address; on the public forms, the browser and device characteristics the check collects |
| SolarWinds Observability | Logs and metrics | Operational logs and metrics | Log entries with masked addresses; no bodies or tokens (XC-PRV-005) |
| Calendly | Scheduling widget | The demo booking calendar embedded on the "Book a free demo" page | What a visitor enters to book (name, email address, answers) and their network address, collected by Calendly in the visitor’s browser; the platform stores nothing |
| zcal | Scheduling widget | The conversation booking calendar embedded on the "Book a conversation" page | What a visitor enters to book (name, email address, answers) and their network address, collected by zcal in the visitor’s browser; the platform stores nothing |
| Postmark | Email delivery service | Transactional email: invitations, password resets, sign-up decisions, email-change confirmations and later the emails other sections send | Recipient address and subject of every platform email; the body passes through Postmark and is not retained by the platform |
| Google Maps (map display key) | Maps | The browser map-display key the mail clients use to show event locations (ETC-X-Q Q09); used by the clients, named for completeness | none sent by the platform |
| LocationIQ | Address lookup | Turns an address typed into the platform into map coordinates and a formatted address, and a point chosen on the map into an address; served from its EU region | The address text or the point; no names or account details |
| OpenStreetMap Foundation (Nominatim) | Address lookup (fallback) | The same lookups when LocationIQ does not answer | The address text or the point; no names or account details |
| Network-owner and geolocation data provider | Reference data | Classifying tracking requests (TRK-RULE-050 rules 6 and 7) and the approximate location shown with an event; not configured until AfA supplies the account (phase-4-plan §2) | network addresses of tracking requests (no names) |
| Google Gemini | AI text | Outreach text for organizations with the AI assistant on: fragments, subject lines and follow-up bodies (OUT-CAP-021 to 025) | Prompts, AI context (the recipient’s own email chain, read from the sender’s mailbox) and generated text of organizations with the assistant on; nothing stored by the provider on the platform’s behalf beyond its terms |
| Google Gemini | AI judgement of page changes | Web page monitoring: whether a change on a watched page matters, a short summary of it, and whether text about a member’s topic appeared | The changed passages of the public pages members watch, the page’s title and address, and examples of changes members marked not useful; no member data; nothing stored by the provider on the platform’s behalf beyond its terms |
| Google (Gmail API) | Mailbox provider | Reading replies to tracked emails and sending emails from a tenant’s connected Gmail mailbox, for tenants that connect one (phase-3-plan §6) | Message headers of messages in tracked conversations and, when the tenant stores emails, their subjects, bodies and addresses |
| Microsoft (Microsoft Graph) | Mailbox provider | Change notifications, reading replies to tracked emails and sending emails from a tenant’s connected Outlook mailbox, for tenants that connect one (phase-3-plan §6) | Message headers of messages in tracked conversations and, when the tenant stores emails, their subjects, bodies and addresses |
| Meta (Facebook, Instagram) | Social network | Connecting Facebook Pages and Instagram professional accounts, publishing approved posts to them and reading their published posts and metrics, for organizations that connect one | The post’s text and the addresses of its media, the scheduled time, the Page and account ids; the connecting member signs in to Meta in their own browser |
| TikTok | Social network | Connecting TikTok accounts, publishing approved posts to them or to their TikTok inbox, and reading their published posts and metrics, for organizations that connect one | The post’s text and the addresses of its media, the visibility, interaction and disclosure choices, the account id; the connecting member signs in to TikTok in their own browser |
| Social network | Connecting LinkedIn organisation Pages, publishing approved posts to them and reading their published posts and metrics, for organizations that connect one | The post’s text and its images, the organisation Page id; the connecting member signs in to LinkedIn in their own browser | |
| Canva | Design preview | Shows a planned post’s Canva design link as Canva’s own preview in the post view | The viewer’s network address and browser data, collected by Canva in the viewer’s browser when the preview loads; the platform sends nothing |
| Mailchimp (Intuit) | Newsletter list | Adds people to an organization’s Mailchimp audience when one of its automations has a Newsletter step on that list, with the organization’s own API key (FLW-CAP-014 to 016) | The subscriber’s email address, first and last name and, where the audience has the field, country: of people who gave them on a form and agreed |
| MailerLite | Newsletter list | Adds people to an organization’s MailerLite account and group when one of its automations has a Newsletter step on that list, with the organization’s own API key (FLW-CAP-014 to 016) | The subscriber’s email address, first and last name and country: of people who gave them on a form and agreed |
These providers are contractually bound to process data in accordance with applicable data protection requirements.
8. Security Measures
We implement appropriate technical and organisational measures to protect personal data, including:
- Secure hosting infrastructure
- Encrypted transmission (HTTPS)
- Access controls for administrative access
- Restricted internal access
- Encryption of sensitive data at rest
- Separation of each organisation's data from every other organisation's
9. Data Subject Rights
Under GDPR, you have the right to:
- Access your personal data
- Request rectification
- Request erasure
- Restrict processing
- Object to processing
- Data portability
- Lodge a complaint with a supervisory authority
To exercise your rights, contact us at: [email protected]
10. Social Account Connections and Data Deletion
This section applies to organisations that connect a Facebook Page, an Instagram professional account, a TikTok account or a LinkedIn organisation Page to the Social Media Content Planner through our platform.
10.1 What we store when an account is connected
When your organisation connects a social media account, we store:
- The access credentials the network issues to us for that account (encrypted at rest; never shown to anyone, never sent anywhere but to that network)
- The account identifier, display name and picture address, who connected it and when
- Posts published from that account in the 90 days before the connection, and those published afterwards, read once a day
- Performance figures for those posts (such as reach, views and reactions), read once a day
- A record of each post the planner published, scheduled, cancelled or removed on that account: who asked, when, what was sent and the network’s answer
10.2 What happens when you disconnect
Disconnecting a social account with the Disconnect button in your organisation’s Social Media Content Planner removes the stored access token and stops any further ingestion of posts or performance data from that account. The access token is deleted immediately, and posts the planner had scheduled on that account are cancelled.
Posts and performance figures already ingested before disconnection are not automatically deleted. They remain in your organisation’s workspace as a historical record, and the record of what the planner published remains as well.
10.3 Requesting erasure of ingested data
If you wish to have a social account’s data permanently deleted, send a request to [email protected]. Please include the name of your organisation, the network and the account(s) concerned. We will action erasure requests within 30 days.
An administrator of the platform then acts in every organisation where that account is or was connected, or was published or scheduled to:
- it deletes the connection and its credentials, and the account’s published posts and their performance figures;
- it removes the account’s name from the posts planned for it;
- from the record of what the planner published, it removes the account’s name, the content sent and the network’s messages, keeping only the fact that an action took place, and when.
Each deletion is recorded in the organisation’s audit trail.
10.4 Platform-level data removal
You can also revoke our access at any time in the network’s own settings: in Facebook under Settings → Business integrations, in TikTok under Settings and privacy → Security → Manage app permissions, and in LinkedIn under Settings → Data privacy → Permitted services. Revoking access there has the same effect as disconnecting within our platform: it prevents further reading of data but does not automatically delete data already read. To request deletion of that data, follow the process in §10.3 above.
11. Supervisory Authority
As a Denmark-based organisation, our supervisory authority is Datatilsynet (Denmark).
12. Updates to This Policy
We may update this Privacy Policy to reflect changes in legal requirements or operational practices. The latest version will always be available on our website, with its effective date at the top.
Contact
Questions about this policy can be directed to [email protected].
