Trust

Security you can read before you connect anything

Awish is designed so you can see what it can reach, decide what it may do, and review what happened. Every control on this page is one we can evidence today; what we cannot evidence yet is not here.

11 controls are in place today, each one mapped to a verified fact. Where a protection belongs to a provider we rely on, we name the provider rather than borrow the badge.

Per-app permissions · Human approvals · Dedicated container per customer · Published DPA

Animation: each connected app shows the exact access it was granted. A run executes in an isolated container, then a person revokes one app’s access, the workflow that depended on it pauses, and the change is recorded in the audit log.

Every control, with its evidence

This list is generated from our facts file and shows only what is verified. Nothing here is aspirational, and nothing missing is being hidden — it is simply not yet evidenced.

11 controls in place todayEach one maps to a verified row in our facts file. What is not verified is not listed.
  • Per-app permissions

    Connections are granted one app at a time, by the account holder, before a workflow runs — an automation given your inbox cannot reach your files.

    Where this is stated
  • Approval before sensitive actions

    External messages, refunds and publishing hold for a person by default, in the channel you choose, and the decision is recorded with the run.

  • Revocable, one app at a time

    Any connection can be declined at the prompt or withdrawn later, without touching the others. A withdrawn connection stops every workflow that used it.

    Where this is stated
  • A dedicated container per customer

    Your workflows run in their own container with their own credentials and network identity — never in the same process or namespace as another customer’s.

    Where this is stated
  • WhatsApp replies only to you

    The WhatsApp agent replies only to the account owner’s own number. That is enforced on our servers, not offered as a setting.

    Where this is stated
  • Encrypted transport, hardened headers

    HTTPS throughout, a content-security policy and other security headers, and cross-origin requests restricted to an allow-list.

    Where this is stated
  • Password and session hygiene

    Passwords are hashed with bcrypt; sessions use a short-lived access token with a separate refresh token.

    Where this is stated
  • A published DPA

    Written against GDPR, the UK GDPR and DPA 2018, and the CCPA/CPRA, with EU Standard Contractual Clauses and the UK Addendum. Public, not gated.

    Where this is stated
  • Coordinated disclosure

    A published path for reporting a vulnerability, and a commitment not to pursue researchers who report in good faith.

    Where this is stated
  • Card data never reaches Awish

    Payments are processed by Stripe, a PCI DSS Level 1 Service Provider. Card details go from your browser to Stripe directly; they are never sent to, processed by, or stored on Awish servers.

    Where this is stated
  • An audited connection layer

    App connections are established through Composio, which publishes its own audits, including a SOC 2 Type II report — that report is Composio’s, and we say so rather than borrow it.

Permission-first model

An automation can only reach an account you have connected. Connections are approved one app at a time, by you, before anything runs — you see which app is being requested and can decline it. Two concrete consequences: an automation that was granted Gmail cannot read your Drive, and the WhatsApp agent replies only to the phone number of the account owner. That last restriction is not a setting you could switch off by accident; it is enforced on the server for every request.

Permission decides what a workflow may reach. What it may do without asking is decided separately, by the approval gate. How human approvals work

Animation: a sensitive step waits for approval. The owner is asked in Slack, edits one line, approves, and the approval is recorded.

What happens to a request

The path a request takes, end to end. This describes only the steps we can attest to.

The request“Publish the campaign update and let the team know.”

  • Draft the update
  • Publish itneeds approval
  • Post to #team
SlackGranted on its own, before anything runsConnected
Publishing reaches people. It waits for you.
A container for your workspace alone — its own credentials, its own network identity
Published campaign updateSlack · Completed · Today, 14:32

Who controls what

A connected automation has four owners, and a certification held by one of them is not held by the others. Here is where each boundary sits.

You

You hold the accounts. Every connection Awish uses is one you granted, and the app you granted it in still applies its own permissions on top.

Awish

What the product enforces before, during and after a run. These are ours, and each one is evidenced.

  • Connections granted one app at a time
  • Sensitive actions wait for a person
  • Each workspace runs in its own container
  • Any connection can be withdrawn
  • HTTPS throughout, with a restricted origin allowlist
  • Passwords hashed, sessions short-lived
Connection layer

App connections are established through Composio, so a connected account is authorised there rather than handed to Awish as a password. Composio holds the audit below. Awish holds none of its own.

SOC 2 Type IIheld by ComposioTheir controls and subprocessors, kept current
The connected app

Whatever the app allows the connection to do is the ceiling. Awish cannot exceed it, and removing the connection there removes it here.

Connection, transport and accounts

The site and the API are served over HTTPS. Our API sets hardened HTTP security headers (via Helmet), including a Content-Security-Policy that restricts which origins may load scripts and styles and which hosts the browser is allowed to connect to. Cross-origin access to the API is limited to an allowlist — awish.ai and www.awish.ai — so another site cannot call the API from your browser using your session.

Passwords are never stored. We keep only a bcrypt hash generated with a cost factor of 12, which is designed to be slow to brute-force and cannot be reversed back into your password — not by an attacker, and not by us. Sessions use a short-lived access token plus a separate refresh token, so a leaked access token expires on its own. Email verification is required, and phone verification gates the features that need it.

Animation: a request travels from your browser to your Awish account through five checks: HTTPS throughout, security headers and CSP, allow-listed CORS, bcrypt-hashed passwords, and short-lived session tokens.

Isolation between customers

Each customer’s workflows run in a dedicated container with its own credentials and network identity, so one workspace cannot reach another.

Automation runtimes are not shared. Each customer's workflows execute in a dedicated, isolated container in our orchestration cluster, with its own credentials and its own network identity. One customer's workflow cannot read another customer's data or credentials, because it never runs in the same process or namespace.

  • Access scoped per app
  • Every approval kept on the record
  • Each workspace in its own container
Animation: two customer workspaces run in separate containers with their own credentials and network identity. A request from one toward the other is blocked at the boundary, and a reviewer checklist confirms scoped access, logged approvals and a dedicated container.
PCI DSS Level 1 Service Provider — via Stripe

Payments — PCI DSS Level 1 (via Stripe)

Card payments are processed by Stripe, which is certified as a PCI DSS Level 1 Service Provider — the strictest tier of the payment card industry standard, covering how card numbers are captured, transmitted and stored. Concretely, this means your card details go from your browser to Stripe directly: they are never sent to, processed by, or stored on Awish servers. We keep only a Stripe customer reference and the subscription status. This is the one certification in this list that we inherit rather than hold ourselves, and we say so deliberately.

Reporting a vulnerability

If you believe you have found a security issue, email support@awish.ai with enough detail to reproduce it. Please report it to us before disclosing it publicly, and we will confirm receipt and keep you updated while we investigate. We do not pursue researchers who report in good faith and avoid accessing other people's data.

support@awish.ai

Security questions we get asked

What can an automation actually reach?

Only the accounts you have connected, and only the app each workflow was granted. Connections are approved one app at a time, by you, before anything runs — so an automation granted your inbox cannot reach your files. You can decline a request, and you can revoke a connection later.

Can Awish send a message or move money without me?

Sensitive actions are approval-gated by default. Sending an external message, issuing a refund and publishing all hold for a person, in the channel you choose. On WhatsApp there is a further limit: the agent replies only to the account owner’s own number, and that is enforced on our servers rather than being a setting.

Does my workflow run alongside other customers’?

No. Each customer’s workflows execute in a dedicated, isolated container in our orchestration cluster, with their own credentials and their own network identity. One customer’s workflow never runs in the same process or namespace as another’s.

Are my card details stored by Awish?

No. Card payments are processed by Stripe, which is certified as a PCI DSS Level 1 Service Provider. Card details go from your browser to Stripe directly; they are never sent to, processed by, or stored on Awish servers. We keep a Stripe customer reference and the subscription status.

Reviewing Awish for your team?

Tell us what your security review needs to cover and we will answer directly — including the questions this page does not yet answer.

This page describes the controls in place today.