1. Who is who
When you subscribe to PerfectFlow, Code Flakes LLC acts as processor and your company as controller. To deliver the service we rely on the providers on this page, which act as subprocessors.
With each of them we maintain data protection obligations no less demanding than the ones we owe you, and we remain liable to you for their performance.
Not every provider on this page is the same. Some we contract ourselves to run the service; others are your own accounts that PerfectFlow connects to. Only the first group are our subprocessors. We list the second group anyway, so the map of where your data travels is complete.
2. Permanent subprocessors
These are only the ones that make the service exist. We provide the CRM and the connection to your accounts; we do not provide the accounts of the services you operate with. That is why this list is short and does not grow when you turn on a new module. The first two hold up your instance; the third keeps it up to date.
| Provider | What for | What data | Where |
|---|---|---|---|
| DigitalOcean | Servers, database and file storage | All the data in your instance | Your instance's region (EU or US) |
| Cloudflare | DNS resolution of your domain to your server. No proxy: it does not sit in the traffic path | The domain name queried; it neither sees nor stores content | Global network |
| GitHub | Code repository and automated deployment: it installs updates and runs migrations on your server | Hosts no data from your instance. Holds the server access key and keeps the technical output of the commands it runs | United States |
Your landing page measures into your own analytics property: you create it and grant us read access so we can show the metrics in your dashboard. The data is yours and stays in your account. PerfectFlow itself carries no third-party analytics: no external measurement script is loaded inside the CRM. What it does have is Code Flakes' own measurement, as counts aggregated per day, screen and role, never per person, with no new cookies and no session recording. It is worked out in your instance and the totals travel to our base instance, codeflakes.perfectflow.cloud, on the same DigitalOcean infrastructure. It adds no new subprocessor, and Code Flakes, not you, is the controller of those counts: the detail, and how to ask us to turn it off for your account, is in section 10 of the privacy policy. On EEA instances, time in view is not measured in the browser unless you ask us to turn it on.
3. Accounts you connect
These services run on your own account, which you contract and control. PerfectFlow connects to them when you authorise it; until you connect the account, they process no data at all. You can revoke access at any time.
We integrate with the services your operation needs, subject to both parties agreeing it is feasible. In every case the contractual relationship with that provider is yours: we are the ERP/CRM that stores and organises the data those accounts generate.
| Provider | What for | Activated when | Where |
|---|---|---|---|
| Meta (Instagram) | Account connection, analytics, publishing content and the professional account's conversations | You connect an Instagram professional account | Ireland and United States |
| TikTok | Publishing the videos you schedule | You connect a TikTok account | Ireland and United States |
| Google Gmail or Google Workspace | Sending your email from your own address. We ask only for the send permission (gmail.send): we do not read, store or modify your mailbox. The token is stored encrypted | You connect your account in Settings › Email. You disconnect it with «Desconectar» (Disconnect) or from your Google account | The United States and other countries where Google operates |
| Stripe | Charging your own customers | You connect your Stripe account — it is always yours | Ireland and United States |
| PagueloFacil | Charging your own customers | You turn on this gateway and connect your account | Panama |
| Other integrations scheduling, forms or others — for example, Calendly | Whatever you connect through the automation engine, with your own accounts | You set up the connection | Depends on the provider you choose |
| Your analytics Google Analytics or another | Measuring your landing page's traffic, in a property of your own | You create the property and grant us read access so we can show the metrics in your dashboard | Depends on the provider you choose |
| Your email provider Google Workspace, Microsoft 365 or another | Delivering all mail that leaves the system: notices to your users — password resets, invitations — and the emails you send to your contacts: campaigns, sequences and notices | You connect your outbound email account. Until you do, the system sends no mail | Depends on the provider you choose |
Your PerfectFlow subscription is paid through Stripe, and that is separate: the payment gateway PerfectFlow integrates inside the system is always yours, so that you can charge your own customers.
You decide what you connect, and you answer for it. We do not control those connections or what each provider does with the data: its contract, its terms and its compliance are between you and that provider. The same goes for your public booking, form or checkout pages: what data you ask for and whether you charge before or after is your configuration. Not every integration is available in every region.
All email goes out through your account. We hold no email account to send on your behalf — not for the system's own notices (a password reset, a user invitation) and not for the emails you send to your contacts. Everything leaves through the account you connect, with your domain and your sending reputation, and we help you set it up at no charge. The connection is outbound only: it lets us send in your name, not read your inbox. If you would rather not connect it, that is fine — we then access no data from your mail.
4. The automation engine is not a subprocessor
Automations run on software we self-host, on the same infrastructure as your instance. On a dedicated instance, that engine and its database are yours alone. On PerfectFlow Lite, the engine is shared between the clients on the same server, with each client's flows and connections kept separate from the others'. In no case does the software's vendor have access to any data.
In other words: your automations are processed in the same region as the rest of your instance. The messages they send do go out through the channels in the table above.
5. How we announce changes
Before adding or replacing a subprocessor we contract:
- We tell you at least thirty (30) days in advance and publish it on this page.
- During that period you may object on reasonable data protection grounds.
- If we cannot reach a solution, you may terminate the contract without penalty.
Connecting or disconnecting one of your own accounts is your decision and requires no notice from us. To be notified of changes to this list, write to info perfectflow.cloud.
6. Region and international transfers
Your instance's region is set when you subscribe and is not changed without written agreement. Data is not replicated to another region; the only thing that leaves it is the technical reports and aggregate usage counts described in section 2, which go to our base instance in the United States and contain none of your operational data, and, if you connect Gmail, Google's authorisation, which passes through that instance without staying there. If your company is established in the European Economic Area, or you process data of people located there, your instance is deployed in Frankfurt, Germany, in DigitalOcean's fra1 region.
If your company is anywhere else, your instance is deployed in a United States region, the one that best fits your location among those available (today, New York). In both cases the whole architecture — server, database, files and automation engine — lives in that same region.
Code Flakes LLC is based in the United States. Your instance is hosted in Frankfurt, but the processor is a US company — that is the flow the data processing agreement has to cover.
The members of Code Flakes who can access your instance do so from outside the European Economic Area. They are members of Code Flakes LLC, not a contracted firm, so there is no sub-processing. That does not change the essential point: the party receiving access is a company established outside the EEA whose members also access from outside it, and remote access of this kind may constitute an international transfer under Chapter V of the GDPR. We cannot provide the service without that access, and we would rather tell you plainly.
What we do about it:
- Normally nobody goes in. Day to day, what connects to your server is the automated deployment system. A member of Code Flakes only goes in when a problem is blocking the service and cannot be solved any other way. There is no routine access to your data.
- Always through an encrypted VPN, with an exit point in the United States, where Code Flakes LLC is based.
- Two-factor authentication. The accounts we use to administer the infrastructure — DigitalOcean, Cloudflare and GitHub — have two-factor authentication turned on for the whole team.
- The work is done on the server itself. No copies of the database, the files or the backups are downloaded or replicated to local machines.
- Updates are not installed by a person. They are run by an automated deployment system (GitHub Actions, section 2), which connects to your server, runs the commands there and does not extract copies of your data. That connection originates from GitHub's infrastructure in the United States and does not go through the VPN.
- Encryption. All traffic is encrypted in transit, and the database and its backups are encrypted at rest by the hosting provider.
- Confidentiality. Access is limited to staff under a documented confidentiality duty. If you ask, we will give you the list of countries from which access is made. Were that support ever provided by an outside firm, it would be a subprocessor and we would tell you, under section 5.
- If something changes, we tell you. If we can no longer comply with any of these measures, we will tell you without delay and you may suspend the processing or terminate the contract without penalty.
The full terms of this access, which you accept when you subscribe, are in clause 9 of the data processing agreement.
If your company needs Standard Contractual Clauses or another instrument, propose it to us: we will cooperate, give you the information you need and sign the instrument that is reasonably applicable. Each party bears the cost of its own advice. And if this situation does not work for you, you may terminate the contract without penalty.
Which safeguard covers each flow to the United States, if your instance is in the EEA:
- Code Flakes LLC — support access, the reports and aggregate counts, and Gmail authorisation passing through our base instance —: we are not certified under the EU-U.S. Data Privacy Framework, so the instrument is the Standard Contractual Clauses (module 2 if you are the controller; module 3 if you are a processor for someone else), which we sign when you ask for them.
- Google, if you connect Gmail, and Meta, if you connect Instagram: these are your own accounts, not our subprocessors. Google LLC and Meta Platforms, Inc. are certified under the EU-U.S. Data Privacy Framework, and the safeguards are those of your own contract with each of them.
What is on your side. PerfectFlow is a service: we answer for how we operate. What data you load, on what legal basis, how you inform your contacts, whether your company needs a representative in the European Union, and what contracts you hold with the providers you connect through your own account are your obligations as controller.
More detail on what the system stores: privacy policy.