dmflow.

Updated 3 November 2026

Privacy Policy

Operator and data controller

Name / legal name
Karel Matusiak
Address
U Hřiště 267/16, 747 71 Brumovice
Czech registration number (IČO)
30210453
E-mail
[email protected]

DMFlow helps the operator of a professional Instagram account respond to requested comments and messages through the official Meta API. This policy explains personal-data processing under the GDPR. The controller is the operator identified above, who determines the purposes and automation settings. DMFlow is the software name.

1. Purposes and sources

We process data to deliver requested content, manage conversations and contacts, check the selected workflow conditions, secure the account, prevent repeated or unsolicited messages, measure links in aggregate, administer the workspace, handle feedback and your rights. Sources are your Instagram interactions supplied through Meta webhooks/API, information you send yourself and visits to tracked links.

2. Data categories

Optional exports and service alerts

The owner may connect Mailchimp or Ecomail to transfer email addresses voluntarily provided in a conversation to a selected list. Integration keys are encrypted. Providing an address for requested content is not newsletter consent. The integration does not start campaigns or autoresponders or resubscribe people who opted out. Existing provider records are preserved. Deleting a contact stops pending transfers; for records confirmed as created by this integration, cleanup requests archiving in Mailchimp or unsubscribing in Ecomail. This is not complete provider erasure; the owner must also review ambiguous outcomes and any further erasure there. An encrypted integration copy of the address is kept while the local contact exists; after local deletion it is cleared by maintenance after seven days even if cleanup remains unresolved. Technical transfer history and aggregate manual-review records are bounded to approximately 390 days; disconnecting or replacing a key removes the old credential and local addresses for that integration.

Optional owner service alerts are sent through Resend. Safe type, time and status history is kept for 90 days; completed email bodies are cleared from the queue. Public access requests contain an encrypted email, name and message where supplied, plus review status, and are removed after 30 days. A request alone creates neither an account nor marketing consent.

3. Lawful bases

You do not have to provide data. Without the relevant interaction we cannot deliver the requested automated response; an enabled email step cannot complete without an address. You can contact the controller instead. Please do not send unnecessary sensitive data.

4. Recipients, security and processors

Authorized workspace members can access data according to their roles. Cloudflare is the technical processor: Workers runs the app, D1 stores database records, KV stores encrypted tokens/cache and Queues carries technical job IDs. The dashboard requires authentication. Optional member invitation emails may use Resend, which receives the invited member's address and invitation, not an automatic export of Instagram contacts. Meta also processes the original interactions under its own policies. We do not sell data.

Public forms use Cloudflare Turnstile for bot protection. During this check, Cloudflare processes technical signals from your device and browser. See Cloudflare’s Privacy Policy for details.

5. International transfers

Cloudflare and, if enabled, Resend may process data outside the European Economic Area, particularly in the USA. We do not promise EU-only storage. Applicable transfers rely on GDPR Chapter V safeguards in the relevant data-processing agreements: adequacy decisions where applicable, including the EU–US Data Privacy Framework for eligible recipients, or Standard Contractual Clauses and necessary supplementary measures. Contact the controller for details of the safeguards that apply.

References: Cloudflare DPA, Cloudflare subprocessors, Resend DPA.

6. Retention

Retention periods and erasure criteria
DataPeriod / rule
Rewind previews, feedback and allowance recordsComment text and recipient identifiers in Rewind previews are removed on confirmation or after 15 minutes by maintenance; confirmed events then follow the inbox/jobs rule. Feedback-form messages are deleted after 30 days. Minimal monthly allowance records (job ID, month, time) and daily aggregate follower counts are removed after approximately 390 days; related technical history remains subject to necessity review and full erasure.
Inbound events (inbox) and message content in jobsProcessed inbound text is removed when an event completes. Remaining inbox/job plaintext, recipient identifiers and continuation text fields are scrubbed by scheduled maintenance after 7 days from creation. Old unsent jobs are terminated. Maintenance runs every minute when the infrastructure is available.
Contacts: IGSID, username, email and last interactionUntil the operator deletes the contact, a valid request is fulfilled or the purpose ends. Contacts have no automatic time-based expiry. The controller regularly reviews necessity and does not retain them without a purpose.
HMAC deduplication and related technical metadataNo automatic expiry, to prevent re-messaging the same person and abuse. These are pseudonymous personal data, not anonymous data. Necessity is reviewed regularly. A valid full-erasure request also removes linkable records unless retention is expressly required by law.
Encrypted access tokens and Instagram connectionWhile the connection is active. Old versions are removed on refresh and disconnection; any technical copies in KV expire at the configured token expiry.
Rules, automation IDs and configurationWhile in use; the operator can delete them. Historical technical links are reviewed with deduplication records and as part of full erasure.
Aggregate click counts, countries, cities and time bucketsApproximately 390 days in whole daily buckets (the boundary day may reach almost 391 days), removed at the next scheduled maintenance run. There is no list of IP addresses. Aggregates that can no longer be associated with a person may remain after their erasure.
Workspace, members and invitationsMembership until removal. An invitation is valid for 7 days; acceptance removes its one-time token. The owner manages and removes inactive or expired records.
Erasure requestsUntil resolved and then only as necessary to demonstrate handling or meet a legal obligation. Confirmation of completion removes the encrypted requester identifier in the app; remaining pseudonymous technical records are reviewed.

HMAC keys allow us to recognize the same identifier on a later interaction. They are not anonymous and are not generally exempt from erasure rights. Ordinary removal of a contact row retains minimum re-messaging prevention records. A valid full-erasure request also covers linkable HMAC records; an exception needs a specific statutory reason.

7. Clicks and IP addresses

DMFlow does not store visitors' raw IP addresses from HTTP requests in its database or write them to application logs. It stores aggregate opening counts and approximate country/city supplied by Cloudflare, without precise location or a unique visitor profile. Cloudflare nevertheless processes technical data, including IP addresses, to deliver and secure the service under its Privacy Policy. VPNs, bots and link previews can affect the counts.

8. Children and automation

The service is not intended to target children, and we do not knowingly request their data in breach of applicable law or Meta's age rules. We do not automatically verify recipients' ages. A child or guardian with concerns should contact the controller. Keywords and selected conversation steps are evaluated automatically; we do not make decisions with legal or similarly significant effects under GDPR Article 22.

9. Your rights and contact

Subject to applicable conditions, you have rights of access and a copy, rectification, erasure, restriction, portability and objection to processing based on legitimate interests. Any consent can be withdrawn at any time without affecting earlier lawful processing. Your specific right to object to direct marketing remains unaffected.

Write to [email protected]. See Data deletion for the procedure. Identity checks are proportionate and never require passwords.

We handle requests without undue delay. Our SLA is 30 calendar days from receipt; where the statutory one-month GDPR deadline ends earlier, the shorter deadline applies. Only in legally permitted cases involving complexity or a high number of requests may this be extended by up to two further months. We explain the reasons and extension within the original deadline. If a request cannot be granted, we explain why and how to complain.

You may lodge a complaint with the Czech Office for Personal Data Protection (ÚOOÚ) or another competent supervisory authority.

Disconnecting, opting out and human replies

You can disconnect Instagram in Settings or revoke the app’s permissions at Meta. A verified deauthorization callback disconnects the matching account, invalidates tokens, pauses live rules and cancels pending sends. Disconnecting does not erase historical data; use the erasure procedure above for full deletion.

A recipient can send STOP, ODHLÁSIT, ODHLASIT, UNSUBSCRIBE or STOP AUTOMATION, ignoring case and diacritics. We cancel their queued automated messages and private comment replies and may send one confirmation within the valid 24-hour window. Only a subsequent START or ZNOVU from that person re-enables automation. An owner’s manual resume does not override this opt-out.

When we detect a human message from the business account, automation pauses for that conversation for 24 hours by default; the owner can configure the duration. An authorized owner or editor can also pause or resume it manually. An outgoing message does not open a new 24-hour messaging window.

Phone numbers and optional webhooks

If you enable phone capture, a recipient may voluntarily send a phone number after the email step. We validate E.164 format, add +420 to a nine-digit Czech number and encrypt stored phone numbers. Authorized members can access them in Contacts, CSV and an export webhook you enable. The same purposes, lawful bases, necessity reviews and erasure rights apply as for other contact details. Sharing a phone number is not consent to advertising or an SMS campaign.

The owner can configure HTTPS webhooks for contact capture, conversation completion and opt-out. A captured contact may include a voluntarily supplied email and phone; an opt-out carries only a pseudonymous key and status. You choose the recipient, such as your Zapier or Make endpoint, and must check authorization, security, processing terms and any international transfers. Pending bodies and signing secrets are encrypted, requests are signed and history is limited to seven days. Deleting a contact stops pending transfers and removes their stored payload; you must arrange deletion of data already delivered to a recipient.

We do not sell data or use it for advertising. Use it only for an authorized purpose under the Meta Platform Terms, Instagram policies and applicable law. DMFlow does not replace those rules or any required consent.