Skip to content
AGNT

Privacy Policy

Last updated: 2026-04-18

AGNT ("we," "us," or "our") is operated by ICM Motion GmbH. This policy explains, in plain language, what personal data the AGNT platform collects, how it is stored, who can read it, and what rights you have. We aim to describe the real behaviour of the system, not a sanitised version.

AGNT is a personal AI agent you reach through Telegram, WhatsApp, and our web app. By using the Service you consent to the processing described below. If you do not agree, do not use the Service.

1. Data We Collect

We collect only what is required to run the agent and the features you use. Each category below lists the concrete database column or storage location.

Account identifiers

Your name and email address are stored encrypted at rest on the users table. An additional deterministic hash of your email is stored to enforce uniqueness and support login. Payment identifiers (Stripe customer ID, subscription ID) are stored as plain references — they point at Stripe and contain no card data.

Messaging channel identifiers

When you connect Telegram, WhatsApp, or Instagram, we store the channel identifier (your phone number or chat ID) twice: once as an HMAC-SHA256 hash for lookup, and once encrypted with Fernet for outbound delivery. The HMAC key is separate from our JWT signing key and from the Fernet key; compromise of any single key does not reveal the underlying phone number alone.

Message content

Messages you send through Telegram, WhatsApp, or Instagram, and the agent's replies, are stored in the interactions table in plaintext today. A rolling conversation snapshot used for short-term agent context is stored encrypted with Fernet in the conversation_snapshots table. Redis session context expires after 24 hours of inactivity; the database record of the interaction does not. We are developing an explicit purge policy for historical interactions; until it ships, retention of message bodies is indefinite. See section 5.

Photos you submit

Photos sent to the Dupe Search and Calorie Scan tools are forwarded to our vision model and are not persisted to the database or a file store. We cache the parsed JSON result for 30 days in Redis, keyed by a SHA-256 hash of the image bytes, so a repeat submission returns instantly. The raw pixels are not retained.

Food diary entries

If you use Calorie Scan and save an entry to your diary, the description and parsed nutrition items are stored in plaintext in the food_diary table so we can generate your daily summary.

Booking & transport history

Venue bookings, reminders, and transport addresses (pickup and dropoff for courier or ride bookings) are stored in plaintext so we can deliver reminders and support ratings.

User memory & preferences

Facts the agent learns about you (favourite cuisines, allergies you disclose, budget preferences) are stored as key/value text plus a vector embedding in the user_memory table to personalise recommendations.

Payment metadata

Payments are processed by Stripe. Card numbers, CVC, and billing addresses never touch AGNT servers — Stripe holds that data under its own PCI-DSS compliant infrastructure. We store only the Stripe customer and subscription IDs so we can reconcile your plan.

Usage & security logs

Standard technical signals — truncated IP hashes, user agent, rate-limit counters — are recorded for abuse prevention. We do not log full message bodies in application logs.

2. Encryption & At-Rest Posture

We describe here exactly what is encrypted at rest today and what is not. We prefer transparency over marketing claims.

  • Encrypted (Fernet, symmetric): users.name, users.email, and conversation_snapshots.messages_json.
  • HMAC + Fernet (separate key): messaging channel identifiers on user_channels. The HMAC key is distinct from the main Fernet key and from the JWT secret.
  • Hashed (one-way): email_hash, venue owner phone hashes, and IP hashes on response cards.
  • Plaintext at rest today: message bodies on interactions, food diary entries, transport addresses, user memory facts, CRM contacts stored by venue administrators, and B2B onboarding session contact fields. These are on our roadmap for encryption-at-rest; we do not want to claim a protection we have not shipped.
  • In transit: all traffic between your device, AGNT, and our providers uses TLS 1.2 or higher.

Encryption keys are held in environment secrets, separated per purpose (Fernet data key, HMAC phone key, JWT signing key). A rotation slot is built in so keys can be rolled without downtime.

3. How We Use Your Data

  • Operate the agent: answer your messages, deliver replies through your chosen channel, and personalise venue, transport, and nutrition recommendations.
  • Run the features you invoke: venue booking, food diary, dupe search, courier booking.
  • Process payments and manage subscriptions through Stripe.
  • Send transactional messages such as booking reminders and receipts.
  • Monitor for abuse, fraud, and service health — this is a separate legitimate-interest basis from the contract basis above.
  • Meet legal obligations such as tax record-keeping and responding to lawful requests from authorities.

5. Data Retention

  • Account data: kept while your account is active. On deletion we anonymise immediately and hard-purge within 30 days (see section 6).
  • Redis session context: 24-hour TTL; expires automatically.
  • Message history in the database: retention is indefinite today. A scheduled purge is in development. If you want your message history removed before that ships, you can request deletion at any time (see section 6).
  • Vision cache (dupe / calorie results): 30-day Redis TTL; raw images are not stored.
  • Booking history: retained while your account is active so you can see past reservations and rate them.
  • Transaction records: retained for at least seven years as required by German commercial and tax law.

6. Your Rights, Including Deletion

You can trigger account deletion yourself by calling DELETE /api/users/me through the app, or by emailing us (see section 11). When you do:

  • Your name and email are immediately anonymised to placeholder values.
  • Your subscription is marked inactive and your Redis soul state is cleared.
  • Your record is flagged for hard deletion. A daily background job permanently removes flagged accounts once they are at least 30 days past their deletion request.
  • Certain records may be retained longer where we are required by law (tax, accounting) or where they are strictly necessary to defend against a legal claim. These are kept minimised and segregated.

Under GDPR and comparable SEA data protection regimes (Indonesia UU PDP, Singapore PDPA, Thailand PDPA, the Philippines DPA), you also have the right to request access, rectification, restriction, objection, data portability, and to withdraw consent. Email privacy@agntdot.com and we will respond within 30 days. You have the right to complain to your local supervisory authority.

7. Who Can Read Your Data

  • You: via /api/me and related endpoints, authenticated with your JWT.
  • AGNT operators: a small internal group using an internal admin token. All admin reads are audited server-side. The token is not shared with third parties.
  • Subprocessors (see section 8): only the minimum data they need to perform their function.

8. Subprocessors & Data Sharing

We share data with the following processors strictly to operate the Service. We do not sell your personal data.

ProviderPurposeData shared
StripePaymentsEmail, billing country, card details (entered directly into Stripe)
TelegramMessaging transportMessages, chat ID, photos sent in chat
Meta / WhatsAppMessaging transportMessages, phone number, photos sent in chat
Instagram (Meta)Messaging transportMessages, IG user ID
Anthropic, MoonshotLLM inferenceCurrent conversation context and system prompt; providers are under no-training data-processing terms
Nutritionix, USDANutrition lookupFood descriptions extracted from photos
Shopee, Tokopedia, LazadaProduct price searchProduct search queries and affiliate identifiers
LalamoveCourier bookingPickup and dropoff address, contact phone
SentryError trackingStack traces, device metadata, scrubbed user/tenant IDs — no raw message bodies or phone numbers
UmamiSelf-hosted, cookie-less website analyticsPage URL, referrer, country, screen size
RailwayApplication hostingAll application data (stored on our managed Postgres and Redis instances)

4. Data Storage & Security

We take the security of your data seriously and employ industry-standard technical and organizational measures:

  • Encryption at rest: Personal identifiers (name, email) are encrypted using Fernet symmetric encryption before storage.
  • Phone number hashing: Phone numbers are stored as HMAC-SHA256 hashes. We cannot recover your phone number from the stored value.
  • Chat encryption: Chat sessions are stored in encrypted Redis instances with automatic expiration.
  • Photo processing: Food and product photos are processed in memory and not retained after analysis is complete.
  • Payment isolation: All payment data is handled by Stripe in PCI-DSS compliant infrastructure. Card details never touch our servers.
  • Access controls: Internal access to personal data is restricted to authorized personnel on a need-to-know basis.
  • Infrastructure: Our backend services run on encrypted cloud infrastructure with TLS 1.2+ for all data in transit.

While we implement robust safeguards, no method of electronic storage or transmission is 100% secure. We cannot guarantee absolute security but commit to promptly notifying affected users and relevant authorities in the event of a data breach, in accordance with applicable law.

5. Data Retention

  • Account data: Retained for as long as your account is active. Upon account deletion, personal data is purged within 30 days, except where retention is required by law.
  • Chat sessions: Automatically expire from Redis. Typical session lifetime is 24 hours of inactivity.
  • Photos: Deleted immediately after processing. Not stored in any database or file system.
  • Booking history: Retained for the lifetime of your account to provide history, ratings, and recommendations.
  • Transaction records: Retained for a minimum of 7 years as required by German tax and commercial law.

6. Your Rights

Depending on your jurisdiction, you may have the following rights regarding your personal data:

Under the EU General Data Protection Regulation (GDPR)

  • Access: Request a copy of the personal data we hold about you.
  • Rectification: Request correction of inaccurate or incomplete data.
  • Erasure: Request deletion of your personal data ("right to be forgotten").
  • Restriction: Request restriction of processing in certain circumstances.
  • Data portability: Receive your data in a structured, machine-readable format.
  • Objection: Object to processing based on legitimate interests or direct marketing.
  • Withdraw consent: Where processing is based on consent, withdraw at any time without affecting the lawfulness of prior processing.
  • Complaint: Lodge a complaint with a supervisory authority (e.g., the German Federal Commissioner for Data Protection).

Under Southeast Asian Data Protection Laws

If you are located in Indonesia (UU PDP), Thailand (PDPA), Singapore (PDPA), or the Philippines (DPA), you have comparable rights including access, correction, deletion, and the right to withdraw consent. We process your data in compliance with applicable local data protection regulations.

To exercise any of these rights, email us at privacy@agntdot.com. We will respond within 30 days (or sooner where required by law). We may ask you to verify your identity before processing your request.

9. Hosting Location & International Transfers

Our application servers and primary database run on Railway in an EU region (eu-west). Users in Bali and across Southeast Asia therefore have their data transferred to the EU for processing. Transfers outside the user's home jurisdiction are covered by the European Commission's Standard Contractual Clauses where applicable, or by equivalent contractual safeguards with our subprocessors.

LLM inference calls (Anthropic, Moonshot) and marketplace-lookup calls (Shopee, Tokopedia, Lazada, Nutritionix) are routed to the provider's nearest region. Anthropic and Moonshot do not train on data sent through their paid API.

10. Cookies & Local Storage

We use a minimal set of strictly necessary cookies and browser storage. We do not use advertising, retargeting, or cross-site tracking. See the privacy@agntdot.com for the exact list.

11. Contact

For privacy questions, deletion requests, or any GDPR / UU PDP right, contact us:

ICM Motion GmbH

Data protection inquiries

Email: privacy@agntdot.com

We do not currently have a designated Data Protection Officer. All DPO-level requests are handled by the privacy mailbox above and escalated internally. You may also lodge a complaint with the supervisory authority in your country of residence.

12. Children

The Service is not intended for and not offered to children under 16. We do not knowingly collect data from children under 16. If you believe a child has provided us with personal data, contact privacy@agntdot.com and we will delete it.

13. Changes to This Policy

We may update this policy. Material changes will be announced in the Service or by email before they take effect. The "Last updated" date above always reflects the most recent revision.