{"id":531,"date":"2026-11-09T12:00:00","date_gmt":"2026-11-09T04:00:00","guid":{"rendered":"https:\/\/portraitor.ai\/blog\/?p=531"},"modified":"2026-11-05T11:42:35","modified_gmt":"2026-11-05T03:42:35","slug":"portraitor-vs-deluly","status":"publish","type":"post","link":"https:\/\/portraitor.ai\/blog\/portraitor-vs-deluly","title":{"rendered":"Portraitor vs Deluly: masked on your device or theirs"},"content":{"rendered":"\n<p class=\"pp-short wp-block-paragraph\">Portraitor removes names, email addresses, telephone numbers, postal addresses and credentials in your browser before any part of the conversation is transmitted. Deluly AI receives the WhatsApp export first and then, on its own servers, attempts to mask identifiers before its model reads the log. Everything else that separates the two follows from that one difference in order.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Both services read an exported conversation and pass the text to a large language model. The question that decides between them is when the identifying details come out of the file.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Every claim below about Deluly AI was read on deluly.ai on 5 November 2026, on its home page, its privacy policy dated 11 May 2026 and its terms dated 14 May 2026. Every claim about Portraitor comes from its home page, privacy policy and terms, read the same day.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Deluly masks on its servers. Portraitor masks in your browser.<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Deluly&#8217;s privacy policy sets out the sequence under a heading on how it processes logs. Its wording is that before the model analyses your log, its system attempts to automatically mask sensitive identifiers, and it gives phone numbers and specific addresses as the examples. The file is therefore on Deluly&#8217;s infrastructure when the masking runs, and the examples the page offers do not include names.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Portraitor&#8217;s privacy policy puts the same step in a different place. Before any part of your conversation is transmitted, your browser removes names, email addresses, telephone numbers, postal addresses and credentials and replaces them with anonymous placeholders, and the page says this takes place entirely on your own device. The list that matches each placeholder back to a real detail never leaves the device. If the masking does not complete, the policy says no data is transmitted and the payment is refunded automatically.<\/p>\n\n\n\n<p class=\"pp-aside wp-block-paragraph\">Neither approach removes what was discussed. Portraitor&#8217;s policy states that plainly: masking removes who is speaking, and passages about health, beliefs, relationships or sexuality still travel to the analysis provider inside the anonymised text, with no name attached. <a href=\"\/blog\/does-chat-analysis-remove-names\">What a chat analyser removes, and what it keeps<\/a> goes through that distinction.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What that ordering changes about the file itself<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">With Deluly, the raw export exists on its systems. Its privacy policy says all data is encrypted using AES-256 at rest and TLS 1.3 in transit, and its home page repeats the same two measures. That is a description of how the file is protected while it is held, which is a different promise from not holding it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With Portraitor, what arrives is already redacted text. The policy says it is passed immediately to the artificial-intelligence provider, is held only for as long as generation requires, and is discarded once the portrait has been produced. Conversation text is never written to the database, the backups or the logs. A very large conversation arrives in parts and sits in a temporary file until the analysis request is assembled, at which point the policy says it is consumed and deleted, and an upload abandoned part-way becomes unreadable after fifteen minutes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Belgium against the United States, and Deluly wins that one<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Deluly&#8217;s privacy policy opens on data sovereignty. It says your data is processed and stored exclusively in the EU-west1 Belgium region of Google Cloud, that keeping data within the European Economic Area brings it under European data protection law, and that your raw chat logs never leave the Belgium region during processing. Its terms name the same region and say the arrangement supports compliance with the GDPR and with POPIA.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Portraitor&#8217;s register of third parties lists its artificial-intelligence provider as being in the United States, and its international transfers section says your data may be processed outside your country, including in the United States where that provider, Stripe and Apple operate, under safeguards including Standard Contractual Clauses.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So if your requirement is that the text stays inside the European Economic Area, Deluly states that and Portraitor does not. <a href=\"\/blog\/is-my-chat-sent-to-the-united-states\">Where a chat analysis is actually carried out<\/a> covers what the Portraitor pages say about that transfer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Deluly names the model it sends your chat to<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Deluly&#8217;s privacy policy says it uses Vertex AI Enterprise and the Gemini 3.1 Pro Agent Platform, that Google does not use any data submitted through its API to train Google&#8217;s global models, and that the analysis runs in an isolated private environment. Its list of sub-processors has two entries, Google Cloud Platform for inference and hosting and Stripe for payments.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Portraitor&#8217;s register names Stripe, Apple, Google Analytics and its host, but the entry for the model provider reads only that it is an artificial-intelligence provider in the United States, with a link to that company&#8217;s own privacy policy. The company is not named on the page. On this one point Deluly is the more specific of the two, and a reader who wants to know whose model reads the text can find that out from Deluly&#8217;s pages and cannot from Portraitor&#8217;s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On training the two say similar things. Portraitor&#8217;s policy says its provider does not use the conversation to train or improve its models and that it is not reviewed by that provider&#8217;s personnel for that purpose. It then adds something Deluly&#8217;s pages do not discuss: the provider retains submitted content for a limited period in order to monitor misuse of its own service, and Portraitor says it is unable to disable that retention. <a href=\"\/blog\/is-my-chat-used-to-train-ai\">Whether a chat analysis is used to train a model<\/a> and <a href=\"\/blog\/who-else-receives-your-chat\">who else receives your chat<\/a> set out both registers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How long the report outlives the reading<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Deluly&#8217;s terms give the clearest figures. Raw chat logs are deleted from its primary servers within 48 hours of the report being generated, and generated reports and their context caches are stored for a maximum of 30 days unless you delete them earlier. Its home page says raw logs are deleted from primary processing after the report is generated, typically within 48 hours.<\/p>\n\n\n\n<p class=\"pp-warn wp-block-paragraph\">The three Deluly pages describe that same deletion with three different timings. The privacy policy says the logs are marked for immediate deletion from the primary processing buffers once the report is generated, its data table says simply deleted after report generation, and the terms and the home page say within 48 hours. If the length of that window is what decides your purchase, it is worth asking Deluly which of its own pages governs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Portraitor states no window because it describes no retention of the conversation: the content is discarded once the portrait has been produced, and the saved portrait sits in your own browser rather than in an account.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A secret link is the only lock on a Deluly report<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Deluly&#8217;s terms say the service does not require an account and that your report is reached through a unique secret address. You are solely responsible for saving it, Deluly says it cannot recover a lost report for you, and the same clause says that anyone with the link can view the report and that you should keep it private. The terms also say local browser storage keeps your session active on the device you are using.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One thing sits oddly beside that clause. Deluly&#8217;s upload form asks for an email address for the report, and its privacy policy&#8217;s data table lists account information, email and billing for pay-per-use tokens, held for the duration of account life. The pages describe both no registration and an account lifetime, and only Deluly can say which applies to a given purchase.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Portraitor also operates no user accounts. Its policy says a Pass is an anonymous code that is not associated with your name or email address and that it cannot identify the person using one, and that the email address you give at checkout is passed to Stripe with no copy kept. <a href=\"\/blog\/chat-analysis-without-an-account\">Buying a chat analysis without an account<\/a> goes through that flow.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">When Deluly is the one to buy<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Buy Deluly if your question is about one romantic relationship and any of three things matters to you: that the text is processed inside the European Economic Area, that the model provider is named, or that you can take the output away and remove it. Its rights section offers erasure of your account and reports from a dashboard, export of generated reports as JSON or PDF, and disclosure of the metadata it holds against a report.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Its own pages set the limits on that. The terms say reports are for entertainment and self-reflection purposes, and that the model can produce invented detail or misread human nuance. The home page says the service is optimised for romantic relationships, situationships and dating dynamics, and that a friendship chat can be uploaded but the measures are tailored for one to one romantic pairs. Its uploader asks for a WhatsApp text file of up to 100 MB, so a Telegram or Instagram export has nowhere to go. On payment, its terms say fees are usage based for a one-time analysis and that no refund is available once processing begins; no price figure appears on the three pages read for this comparison.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Portraitor answers a narrower question and has its own limits. It describes one named participant rather than scoring a pair, so it will not tell you how a relationship is doing. Its provider&#8217;s misuse retention is a window Portraitor says it cannot switch off. One portrait is $10 with no account and no renewal, and <a href=\"https:\/\/portraitor.ai\/\">Portraitor<\/a> shows that flow before you pay. The policy says payment is refunded automatically if the masking step does not complete, which <a href=\"\/blog\/chat-analysis-refund\">what happens to a failed chat analysis<\/a> covers, and <a href=\"\/blog\/portraitor-vs-lovegraft\">the LoveGraft comparison<\/a> looks at a third service that publishes its retention as a table.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently asked questions<\/h2>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Does Deluly upload my WhatsApp chat?<\/summary>\n<p class=\"wp-block-paragraph\">Yes. Deluly&#8217;s privacy policy says your data is processed and stored in the EU-west1 Belgium region of Google Cloud, and that its system attempts to mask sensitive identifiers before the model analyses the log, so the export reaches its servers before any masking happens.<\/p>\n<p class=\"wp-block-paragraph\">Portraitor&#8217;s policy describes the opposite order: names and other identifiers are replaced in your browser before anything is transmitted.<\/p>\n<\/details>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Which is better for privacy, Portraitor or Deluly?<\/summary>\n<p class=\"wp-block-paragraph\">They give better answers to different questions. On where the file is held and whose model reads it, Deluly names the Belgium region of Google Cloud and names Vertex AI and Gemini, and Portraitor names neither its provider nor a region other than the United States.<\/p>\n<p class=\"wp-block-paragraph\">On what reaches the provider at all, Portraitor removes the identifying details in your browser first, and Deluly&#8217;s masking runs after the raw export has arrived.<\/p>\n<\/details>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Does Deluly tell the other person in the chat?<\/summary>\n<p class=\"wp-block-paragraph\">No. Its home page says it does not notify any participant in the chat and that the report is for you alone.<\/p>\n<p class=\"wp-block-paragraph\">Portraitor&#8217;s policy says the other participants&#8217; names, email addresses and telephone numbers are removed on your device by the same process, that it holds no record of them, and that nothing about them remains on its systems once the portrait has been produced.<\/p>\n<\/details>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>How long does Deluly keep my report?<\/summary>\n<p class=\"wp-block-paragraph\">Its terms say generated reports and their context caches are stored for a maximum of 30 days unless you delete them earlier, and that raw chat logs are deleted from its primary servers within 48 hours of the report being generated.<\/p>\n<\/details>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Can Deluly analyse a group chat?<\/summary>\n<p class=\"wp-block-paragraph\">Its home page says the service is optimised for romantic relationships, situationships and dating dynamics, and that while a friendship chat can be uploaded, the measures are tailored for one to one romantic pairs.<\/p>\n<p class=\"wp-block-paragraph\"><a href=\"\/blog\/group-chat-analysis-what-happens-to-everyone-else\">What a group chat analysis means for everyone else<\/a> covers the question a group thread raises either way.<\/p>\n<\/details>\n\n\n\n<p class=\"pp-closing wp-block-paragraph\">One service masks the conversation on your device and one masks it on its own; read both pages and buy the order you want.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Portraitor removes identifiers in your browser before anything is sent. Deluly AI receives the WhatsApp export and masks on its own servers. What that ordering changes, read on both sets of pages.<\/p>\n","protected":false},"author":6,"featured_media":530,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"pp_title_highlight":"","pp_meta_title":"","pp_meta_description":"Portraitor vs Deluly: one masks names in your browser before anything is sent, the other receives the WhatsApp export and masks on its own servers.","pp_sidebar_cta":"{\"variant\": \"light\", \"heading\": \"Masked before it is sent\", \"bodyHtml\": \"Names, addresses and telephone numbers are replaced in your browser before anything leaves it.\", \"label\": \"See how Portraitor works &rarr;\"}","pp_sources":"[{\"html\": \"Deluly AI, <em>home page<\/em>, read 5 November 2026.\", \"href\": \"https:\/\/www.deluly.ai\/\"}, {\"html\": \"Deluly AI, <em>Privacy Policy<\/em>, last updated 11 May 2026, read 5 November 2026.\", \"href\": \"https:\/\/www.deluly.ai\/privacy\"}, {\"html\": \"Deluly AI, <em>Terms and Conditions<\/em>, last updated 14 May 2026, read 5 November 2026.\", \"href\": \"https:\/\/www.deluly.ai\/terms\"}, {\"html\": \"Portraitor, <em>Privacy Policy<\/em>, version 1.3, 30 September 2026.\", \"href\": \"https:\/\/portraitor.ai\/privacy\"}, {\"html\": \"Portraitor, <em>Terms of Service<\/em>, version 1.3, 30 September 2026.\", \"href\": \"https:\/\/portraitor.ai\/terms\"}, {\"html\": \"Portraitor, <em>home page<\/em>, prices and accepted exports, read 5 November 2026.\", \"href\": \"https:\/\/portraitor.ai\/\"}]","pp_endcard":"{\"h3\": \"Read the order of operations before you upload\", \"body\": \"Portraitor states that identifiers are removed on your own device and that the conversation is not stored. $10 for one portrait, no account and no renewal, or $19 a month for ten.\", \"label\": \"See how Portraitor works &rarr;\"}","pp_howto":"","footnotes":""},"categories":[2],"tags":[],"class_list":["post-531","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-guides"],"_links":{"self":[{"href":"https:\/\/portraitor.ai\/blog\/wp-json\/wp\/v2\/posts\/531","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/portraitor.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/portraitor.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/portraitor.ai\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/portraitor.ai\/blog\/wp-json\/wp\/v2\/comments?post=531"}],"version-history":[{"count":1,"href":"https:\/\/portraitor.ai\/blog\/wp-json\/wp\/v2\/posts\/531\/revisions"}],"predecessor-version":[{"id":532,"href":"https:\/\/portraitor.ai\/blog\/wp-json\/wp\/v2\/posts\/531\/revisions\/532"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/portraitor.ai\/blog\/wp-json\/wp\/v2\/media\/530"}],"wp:attachment":[{"href":"https:\/\/portraitor.ai\/blog\/wp-json\/wp\/v2\/media?parent=531"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/portraitor.ai\/blog\/wp-json\/wp\/v2\/categories?post=531"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/portraitor.ai\/blog\/wp-json\/wp\/v2\/tags?post=531"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}