# Adea documentation > How to set up and use Adea: connect a read-only database, ask questions, watch numbers, and use it from Claude, ChatGPT, Grok and Cursor. Every page is also at https://adea.app/docs/.md. A short map of the product is at https://adea.app/llms.txt. ## Start here: Start here Source: https://adea.app/docs/start > What Adea does, what you need, and the four steps from signing up to your first watched number. Adea watches your company's numbers, straight from your own database and code. It checks every number against what is normal for it, tells you when one moves and finds out why. What it finds becomes lists your team works through. You can also ask it questions in plain words. Adea only reads. It never writes to your database, your code or anything else you connect. ### What you need - **A database.** Adea works with PostgreSQL, MySQL, MariaDB, Amazon Redshift, BigQuery and Snowflake. The [integrations page](/integrations) shows everything you can connect. - **A user that can only read.** If you don't run the database yourself, send the person who does [the developer link](/docs/developer-link). They connect it without an account. - **About five minutes.** That is how long connecting a database takes when the read-only user already exists. You don't need a card to start on the Free plan. The trial gives you 14 days of Pro, with a card. ### The four steps 1. **Create your company.** Sign up with your work email. Your company gets its own address, such as `your-company.adea.app`. You sign in there and your AI assistants connect there. 2. **Connect a source.** Add a database with a read-only user. Adea tests the connection step by step: it reaches the database, signs in, checks that the user can only read, and reads the list of tables. Each step turns green, or says what to fix. See [Connect a database](/docs/connect-database). 3. **Let Adea get to know it.** Adea studies your tables and writes down in plain words what it understood: what a booking is, what counts as an active member, which column holds the date. Read it, and correct anything it got wrong. Adea uses these notes in every answer. 4. **Ask, and watch.** Ask your first question, and pick the numbers you want Adea to keep an eye on. See [Ask a question](/docs/ask) and [Watch your numbers](/docs/watch). ### What Adea does with your data Adea reads what a question needs, works out the answer and drops the rows. It does not keep a copy of your database. Every query passes a check that allows one read and nothing else, and Guardian looks at every pull of data. Read more in [Guardian and security](/docs/guardian). Adea reaches your database from fixed addresses, which you allow in your firewall. Adea shows them when you add the database. [Connect a database](/docs/connect-database#allow-adeas-addresses) explains where they go. ### Where to go next - [Connect a database](/docs/connect-database): the read-only user for each kind of database - [Connect your code](/docs/connect-code): see which change moved a number - [Use Adea from your AI assistant](/docs/ai-assistants): Claude, ChatGPT, Grok and Cursor - [Credits and plans](/docs/plans-and-credits): what each plan includes --- ## Start here: Frequently asked questions Source: https://adea.app/docs/faq > Short answers to what people ask most, from “what if the answer is wrong?” to “can Adea change my data?”. ### Using Adea #### What if the answer is wrong? Open the answer and look at how it was worked out: the sources, the numbers and the assumptions it rests on. If an assumption is wrong, a developer or administrator corrects it under **What Adea understands**, and every answer after that follows the correction. If a number looks wrong and you can't see why, ask the question again with more detail, such as the period or what you mean by a word of your own. A failed or refused answer costs nothing. #### What can I ask? Anything about your business that your data can answer: how many, how much, which customers, and why a number moved. You can also paste an order number or an email address to see what happened to that record. See [Ask a question](/docs/ask). #### What does a question cost? Most questions are free: a number Adea already watches, a record looked up by its number, and a new question over your tables. A deep question and **Find out why** use one Deep credit, and the button shows the cost. See [Credits and plans](/docs/plans-and-credits). #### Do we pay per person? No. One price covers the whole company, however many people use Adea. ### Your data #### Can Adea change my data? No. Adea connects with a user that can only read, checks that before it connects, and refuses a user that can write. It never writes to your database, your code or anything else you connect. #### Which databases can I connect? PostgreSQL, MySQL, MariaDB, Amazon Redshift, BigQuery and Snowflake. See [Connect a database](/docs/connect-database). You can also connect your code, to find out which change moved a number: see [Connect your code](/docs/connect-code). #### How long does it take to connect? About five minutes when the read-only user already exists. If you don't run the database yourself, send the person who does [the developer link](/docs/developer-link). They connect it without an account. #### Does Adea keep a copy of my data? No. Adea reads what a question needs, works out the answer and drops the rows. It keeps the totals behind the numbers it watches, so it can tell what is normal, and the rows you save in a list. #### Where is my data, and is it used to train AI? Adea and its database run in the EU. Your data is never used to train AI models. See [Security facts](/docs/security-facts). ### People and access #### Who sees what? Everyone in the company sees the same numbers, unless you limit it. On Pro and Business an administrator can hide or mask tables and columns for a role, and give a person only one location or team. An AI assistant never sees more than the person who connected it. See [Access and roles](/docs/access-and-roles). #### Can I show a dashboard to someone outside the company? Yes, on Pro and Business. An administrator creates a link that anyone can open, and can switch it off at any time. See [Dashboards and sharing](/docs/dashboards-and-sharing). ### Plans #### Can I try it before I pay? Yes. The Free plan needs no card and has no end date, and a new company can try Pro for 14 days. #### Can I cancel? Yes. An administrator cancels under **Settings**, then **Plan and billing**. You can cancel a trial at any time, and nothing is charged. #### Can I take my data with me? An administrator can export everything Adea holds for the company under **Settings**, then **Company**: your questions and answers, dashboards, lists, insights, the team and the security log, as files. Your own database stays where it is, so it is not part of the export. The export asks for a passkey, and a link to the files comes by mail. See [Credits and plans](/docs/plans-and-credits) for what each plan includes. --- ## Connect your data: Connect a database Source: https://adea.app/docs/connect-database > Create a user that can only read, allow Adea's addresses and connect. Steps for PostgreSQL, MySQL, MariaDB, Redshift, BigQuery and Snowflake. Adea needs one thing from your database: a user that can only read. You create it, give Adea the details, and Adea starts reading. It takes about five minutes. If you don't run the database yourself, send the person who does [the developer link](/docs/developer-link). They connect it without an account. ### Before you start - **Use a read replica if you have one.** Adea runs one query at a time on each connection, and holds back when your database is busy. A replica keeps that load off your main database. - **The database must be reachable from the internet.** Adea connects only to public addresses, never to a private network. - **Use SSL** if your database supports it. - **Have the host, the port and the database name** ready. ### Allow Adea's addresses If your database sits behind a firewall or an allowlist, you allow Adea's addresses there. When you add the database in Adea, the connect screen shows them with a copy button. Adea reaches your database from those and from nowhere else, and they are the same for every company. If you are setting this up for someone else, the developer link you send from Adea shows them too. ### Create the read-only user Choose your kind of database. Replace `your_database`, the other `your_` names and the password with your own, and use a long password. #### PostgreSQL ```sql CREATE USER adea_readonly WITH PASSWORD 'choose-a-long-password'; GRANT CONNECT ON DATABASE your_database TO adea_readonly; GRANT USAGE ON SCHEMA public TO adea_readonly; GRANT SELECT ON ALL TABLES IN SCHEMA public TO adea_readonly; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO adea_readonly; ``` If your tables are not in the `public` schema, repeat the schema lines for each schema Adea should read. #### MySQL and MariaDB The same statements work on both. ```sql CREATE USER 'adea_readonly'@'%' IDENTIFIED BY 'choose-a-long-password'; GRANT SELECT, SHOW VIEW ON your_database.* TO 'adea_readonly'@'%'; FLUSH PRIVILEGES; ``` #### Amazon Redshift ```sql CREATE USER adea_readonly PASSWORD 'choose-a-long-password'; GRANT USAGE ON SCHEMA public TO adea_readonly; GRANT SELECT ON ALL TABLES IN SCHEMA public TO adea_readonly; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO adea_readonly; ``` #### BigQuery BigQuery has no users with passwords. You create a service account that can run queries and view data, and give Adea its key. ```sh gcloud iam service-accounts create adea-readonly --project=your-project \ --display-name="Adea (read-only)" gcloud projects add-iam-policy-binding your-project --role=roles/bigquery.jobUser \ --member=serviceAccount:adea-readonly@your-project.iam.gserviceaccount.com gcloud projects add-iam-policy-binding your-project --role=roles/bigquery.dataViewer \ --member=serviceAccount:adea-readonly@your-project.iam.gserviceaccount.com gcloud iam service-accounts keys create adea-key.json \ --iam-account=adea-readonly@your-project.iam.gserviceaccount.com ``` Adea checks that the key cannot write to any dataset, and refuses one that can. Before every query, Adea asks BigQuery how much data it would read, and refuses a query above the limit per query or per month. A question can't run up your BigQuery bill. #### Snowflake ```sql CREATE ROLE adea_readonly; GRANT USAGE ON WAREHOUSE your_warehouse TO ROLE adea_readonly; GRANT USAGE ON DATABASE your_database TO ROLE adea_readonly; GRANT USAGE ON ALL SCHEMAS IN DATABASE your_database TO ROLE adea_readonly; GRANT USAGE ON FUTURE SCHEMAS IN DATABASE your_database TO ROLE adea_readonly; GRANT SELECT ON ALL TABLES IN DATABASE your_database TO ROLE adea_readonly; GRANT SELECT ON ALL VIEWS IN DATABASE your_database TO ROLE adea_readonly; GRANT SELECT ON FUTURE TABLES IN DATABASE your_database TO ROLE adea_readonly; GRANT SELECT ON FUTURE VIEWS IN DATABASE your_database TO ROLE adea_readonly; CREATE USER adea_readonly TYPE = SERVICE DEFAULT_ROLE = adea_readonly DEFAULT_WAREHOUSE = your_warehouse RSA_PUBLIC_KEY = 'paste-the-public-key'; GRANT ROLE adea_readonly TO USER adea_readonly; ``` Adea signs in with a key pair. Generate the pair, put the public key in the user as above, and give Adea the private key. ### Connect it in Adea 1. Open **Data** and choose to add a source. 2. Choose the kind of database and enter the details, or paste a connection string. 3. Adea tests the connection one step at a time: it reaches the database, signs in, checks that the user can only read, and reads the list of tables. Each step turns green. If one fails, Adea says what to fix. 4. Adea reads the names of your tables and columns, and starts learning what they mean. ### What Adea reads, and what it keeps Adea does not keep a copy of your database. It reads what a question needs, works out the answer and drops the rows. Each query runs in its own short-lived process that holds only that one connection. Every query is checked before it runs. Only a single read is allowed, and Adea refuses anything that could change data. [Guardian](/docs/guardian) looks at every pull of data on top of that. ### If it doesn't connect | What you see | What to do | |---|---| | Adea can't reach the database | Check the host and port, and that the addresses Adea shows are allowed in your firewall. | | Adea says the user can write | Adea refuses a user that can change data. Create the user as shown above and take away any other rights. | | Sign-in fails | Check the user name and password. In MySQL and MariaDB the user must be allowed from any host (`'%'`). In PostgreSQL the user must be allowed to connect from outside your network. | | Adea connects but sees no tables | Give the user `SELECT` on the schema that holds your tables, as in the examples above. | | Questions are slow | Connect a read replica instead of your main database. | --- ## Connect your data: Connect your code Source: https://adea.app/docs/connect-code > Connect GitHub so Adea can tell you which change moved a number, and what shipped this week. Connect your code, and Adea checks your recent changes when a number moves: which commit, which pull request, and whether the timing fits. Connecting code is included from the Start plan. See [Credits and plans](/docs/plans-and-credits). ### What you get - **Code as a cause.** When Adea finds out why a number moved, it checks recent changes alongside prices, campaigns and the calendar, and says how well each one fits. - **What shipped.** A list in plain words of what changed in your code, week by week, that anyone on the team can read. - **Better answers about your data.** Adea reads the code that writes to your database, and learns what a status or a column really means. ### Connect GitHub 1. Open **Data** and choose to add a source, then **GitHub**. 2. Install the Adea GitHub App on your account or organization. GitHub asks you to approve it. 3. Choose which repositories Adea may read. Choose only the ones that matter for the data you have connected. 4. Back in Adea, the repositories appear on the map next to your database. If you can't install apps on your GitHub, send the person who can [the developer link](/docs/developer-link). They install it without an Adea account. ### What Adea does with your code - **Adea only reads.** It never writes to your repositories, never opens a pull request and never changes a branch. - **It keeps no copy.** Adea fetches a repository into memory when it needs it, and lets go of it a short while after. - **Secrets stay out.** Files that usually hold secrets, such as `.env` files, keys, certificates and configuration with passwords, are never read. Anything Adea passes on is cleaned of values that look like keys or passwords first. - **What it remembers is small.** Adea keeps short notes about what the code does and the few lines it quoted in an answer, not the files themselves. --- ## Connect your data: The developer link Source: https://adea.app/docs/developer-link > Send the setup to the person who holds the database or the code. They connect it without an account, and you are told when it's done. If you can't connect a database or a code repository yourself, send a developer link to someone who can. They open a page and connect what you asked for, and it appears in your Adea. ### Send one 1. Open **Data** and choose **Send to your developer**. Only developers and administrators can make a link. 2. Choose what you need connected. You can make one link per kind of source, so a finance colleague only gets the accounting step. 3. Add the person's email and a short note, or copy the link instead. ### What the person sees A page that needs no account. It shows who asked, what Adea gets (read-only access), a one-page summary of how Adea handles data, and the fixed addresses to allow. They can connect in whichever way suits them: - **Paste a connection string.** Adea tests it live, one step at a time. - **Run the SQL for a read-only user.** The page shows the statements for their kind of database. - **Install the GitHub App.** - **Do it with an AI assistant.** The page has a short prompt to paste into Claude Code or Cursor, which then does the setup together with the person. ### What the link can and can't do - It can only add sources. It never shows your data. - It stops working after 7 days, and you can withdraw it sooner. - Every use is logged, for example "connected by jonas@example.com through Mette's link". - When something is connected, you are told, and your Home starts filling. > **Note.** The person doesn't need an Adea account. If they want one, they can ask for one from the same page. --- ## Use Adea: Ask a question Source: https://adea.app/docs/ask > Ask in plain words and get the answer with the numbers and sources behind it. When a question needs a deeper look, Adea says what it costs before it starts. Ask Adea anything about your business in the words you would use with a colleague. It answers from your own data, and shows where the answer came from. ### Where to ask - **The ask field** at the top of every page. - **The command menu.** Press ⌘K (Ctrl K on Windows) and type. - **By voice.** Hold the microphone to talk, release to send. - **From your AI assistant.** See [Use Adea from your AI assistant](/docs/ai-assistants). ### What you get back - **The answer**, in plain words, with the number in front. - **The sources.** You can open how it was worked out: which tables it read and the query behind the answer. - **A way to carry on.** Ask a follow-up, save the question, or turn the answer into a [list](/docs/lists) of the people or records behind it. Paste an order number, an email address or a booking number into the ask field, and Adea opens the story of that record: what happened to it, in order. ### Easy questions are free Most questions cost nothing. A number Adea already watches, a record looked up by its number and a new question over your tables are free on every plan, within fair use. A deep question or **Find out why** uses one Deep credit. The button shows the cost, and if Adea needs a deeper look than you asked for, it asks first. A failed answer, or one Adea refuses, costs nothing. See [Credits and plans](/docs/plans-and-credits). ### Good questions - "How many members did we have last Monday, and how does that compare with a month ago?" - "Why did booking completion fall since Tuesday?" - "Which customers have paid late three times this year?" If you use a word of your own, say what you mean by it. Adea writes down what it learned about your data when it first read it, and you can correct it there. Every answer after a correction follows it. --- ## Use Adea: Watch your numbers Source: https://adea.app/docs/watch > Adea checks every number it watches against what is normal for it, and tells you the day one moves and why. Adea watches the numbers that matter to your business and tells you when one moves. ### What Adea watches When Adea has read your data, it proposes the numbers worth watching for your kind of business: bookings, revenue, active members, orders, failed payments, and whatever else your tables describe. You choose which ones to keep. Every watched number is compared with what is normal for it, for that weekday and that time of year. A quiet Sunday isn't a drop. ### When a number moves Adea writes an insight: what moved, by how much, and a chart that shows it against its normal range. An insight that needs you says so, and says what to do next. On the Start plan and above, Adea also finds out **why**. It tests the likely causes one by one, such as a code change, a price change, a campaign or the calendar, and tells you which one fits best and how sure it is. With [your code connected](/docs/connect-code), changes to your code count as a cause too. An insight can turn into a [list](/docs/lists) in one click: the people or records behind the number, with an owner for each. ### How you hear about it - On your Home page, in the order they matter. - As a push message on your phone. - By mail or Slack, if you turn that on. An urgent finding can escalate to the person on duty: push first, then Slack, then a text message, on the plans that include it. You decide who is on duty and when. ### Plans On the Free plan Adea watches five numbers. From Start it watches every number it finds. Every plan checks just as often. A Free company that nobody opens pauses watching after 30 days, and starts again at the next visit. --- ## Use Adea: Insights Source: https://adea.app/docs/insights > What Adea tells you when a number moves: the headline, the story of why, the causes it tested, and the list of people behind it. An insight is what Adea writes when a number it watches moves more than is normal. Adea checks every morning. You find the insights on your Home and under **Insights**. ### What one insight has - **The headline.** What moved, by how much and since when, with a chart against the normal range. You can see at a glance whether it is a blip or a change. - **The story.** Where the change is, how sure Adea is, and what happened around then. - **The causes.** Adea tests the likely causes one at a time, such as a code change, a price change or the calendar. Each one gets a verdict: fits, same time, or ruled out. Adea never calls a cause confirmed on its own. A person does that, with **That's the cause**. - **Who is affected.** The people or records behind the number, ready to become a [list](/docs/lists). - **A next step.** One suggestion: find out why, make a list, give it to someone, or nothing to do now. On the Free plan an insight shows the headline. The story, the causes and lists are part of Start and above. See [Credits and plans](/docs/plans-and-credits). ### Find out why When an insight has no story yet, choose **Find out why**. Adea looks for where the change is and since when, then tests what happened around then. It takes about a minute, and you can leave the page. It uses one Deep credit, and the button shows that. Insights Adea starts on its own are included in your plan, within its daily limit. ### Choose what to watch Adea proposes the numbers worth watching for your business. Under **What I watch** on your Home, choose **Watch** on a number, and Adea checks it from the next morning. Taking a number off your Home doesn't stop Adea checking it. See [Watch your numbers](/docs/watch). ### Work with an insight - **Give it an owner,** so someone is responsible. - **Make a list** of the people or records behind it. When the list is done, Adea watches the number for seven days and tells you whether it is back to normal. It says what changed, not that the work caused it. - **Snooze it,** until a date or until it moves again. - **We know.** Mark it as something you expected, and Adea expects it next time. - **Standing lists** keep themselves up to date as people qualify, and show on a quiet week's summary. They are part of Start and above. ### A quiet week When nothing moved, Insights says so: how many numbers Adea checked, what changed in the business, your standing lists and your pace against a goal. ### Who sees what Everyone in the company can open the insights. What a person sees of the people and records behind one follows their own access. See [Access and roles](/docs/access-and-roles). --- ## Use Adea: Lists Source: https://adea.app/docs/lists > Turn an answer or a finding into a list of the people or records behind it, with an owner and a status on every row. A list is how a finding turns into work. When Adea finds that 41 regulars have gone quiet, or that 12 payments failed, the list holds those people or payments, and your team works through it. ### Make a list Start from any answer or insight and choose **Make a list**. Adea builds the list from the same query, so it holds exactly the rows behind the number. ### Work through it - **An owner on every row.** Give a row to a colleague, or take it yourself. - **A status on every row.** Mark it open, in progress or done, so everyone can see how far the work has come. ### Standing lists A standing list keeps itself up to date. If your list is "members who haven't trained in three weeks", it adds new rows as people qualify and takes off rows that no longer fit. Standing lists are part of the Start plan and above. ### Sharing and exporting Anything that leaves Adea is checked first. [Guardian](/docs/guardian) watches exports of personal data, and on the Business plan an administrator can be asked to approve them. --- ## Use Adea: Slack Source: https://adea.app/docs/slack > Get findings in a Slack channel and work with them without leaving Slack. ### What you get - **Findings in a channel you choose.** Adea posts a finding as a card: what moved, the chart and the buttons to act on it. - **Questions in Slack.** Ask Adea in a channel or in a message to it, and get the answer in the thread. - **One click to act.** A change that needs your confirmation asks for it on the card. Only your own click counts, never a message. You choose the channel, and you can turn it off. ### Who can connect it An administrator connects Slack for the company under **Settings**, then **Slack**. Slack is part of the Start plan and above. --- ## Use Adea: Invite your team Source: https://adea.app/docs/team > One price covers everyone in the company. Invite colleagues, choose what each person may do, and give a person only the location they work for. Your plan covers the whole company, however many people use Adea. Invite everyone who needs to know when a number changes. ### Invite people 1. Open **Settings**, then **Team**. 2. Choose **Invite**, enter the work email, and choose a role. 3. The person gets a mail, signs in and lands on their own Home. ### Roles | Role | What it can do | |---|---| | Member | Ask questions, read insights, work through lists. | | Developer | Everything a member can, and send [developer links](/docs/developer-link). | | Admin | Everything a developer can, and manage people, the plan and security settings. | ### Give a person one location On the Pro plan and above, you can limit a person to a part of the business, such as one location or one team: "Mette only sees Aalborg". Her Home, her insights, her lists and her briefing then follow Aalborg. The option appears only when Adea finds something in your data that maps to people, such as a location or a team. ### Remove a person Remove a person in **Settings**, then **Team**. Their access ends at once, and so does every AI assistant they had connected. --- ## Use Adea: Dashboards and sharing Source: https://adea.app/docs/dashboards-and-sharing > Pin an answer to a dashboard or to your Home, share it with colleagues, and let an administrator make a public link for people outside the company. An answer you want to see again belongs on a dashboard. A dashboard you want others to see can be shared with colleagues, or, with a link, with people outside the company. ### Put an answer on a dashboard Save a question, and it joins the main dashboard of the group it is filed in. To put it on another dashboard, choose **Add to dashboard** on the answer and pick one. You can also make a new dashboard from saved questions. A dashboard always shows the latest numbers. You can arrange the blocks, take one off and bring it back, and look at the dashboard as it was on an earlier day. ### Pin it to your Home Choose **Pin to Home** on a question, a list, a dashboard or a number, and it shows under **Pinned** on your own Home. Nothing changes for anyone else, and **Take off Home** removes it again. ### Share with colleagues A saved question belongs to the team. A question you haven't saved stays private to you until you choose **Share**. To show a colleague a dashboard or an answer, send them its address. They open it with their own sign-in and see what their own access allows. If a table or column is hidden from their role, they get a note instead of those numbers. See [Access and roles](/docs/access-and-roles). ### Download In the **…** menu on an answer, a list or a dashboard you can download it as Excel, as CSV or as a PDF. You get the rows and numbers your own access allows. [Guardian](/docs/guardian) checks a download before it leaves Adea. ### Public links On Pro and Business an administrator can make a link that anyone can open, without an Adea account. It can show a dashboard, an answer, an insight or a list. - **What visitors see.** The numbers as they were when the link was made, or when it was last refreshed. A link can refresh itself every hour or every day, if its maker chooses. A visitor never sets off a new look at your data, and the query behind a number is never shown. Tables on a shared page leave out personal columns. - **Lists.** A link to a list can be read only, or let guests give their name and email, change statuses and add notes. A frozen copy of a list never follows later changes and stops working after 30 days. - **Visitors can ask questions.** If you allow it, a visitor can ask about what is on the page. The answer comes only from the numbers shown there, never from the rest of your data. - **Protect it.** Add a password, a last day, and the sites that may show the page inside their own. - **Your look.** Shared pages carry your logo and colours, which you set under **Settings**, then **Brand**. - **Check first.** Making a link sends data out of Adea, so [Guardian](/docs/guardian) checks it and you confirm it. ### Switch a link off The person who made a link, or any administrator, can switch it off, and it stops working at once. **Settings**, then **Sharing**, lists every public link: what it opens, who made it, how often it was opened and when it stops. Administrators see all of them, and everyone else sees their own. --- ## AI assistants and API: Use Adea from your AI assistant Source: https://adea.app/docs/ai-assistants > Connect Claude, ChatGPT, Grok or Cursor to Adea, with exactly the access you have, and ask about your business from inside the assistant. Claude, ChatGPT, Grok and Cursor can use Adea as a tool. You ask your assistant about your business, and it asks Adea, with the same access you have. This works over MCP, the standard way an AI assistant uses outside tools. ### The quick way: give this to your assistant Paste this to your assistant, and it does the steps with you: ```text Set up Adea for me. Read https://adea.app/assistant.md and follow its steps. If I don't have an account yet, help me create one first. ``` If you have no account yet, it helps you create one first. Then it asks you for your company's address, adds it, and sends you to Adea to sign in and choose **Allow**. If you would rather do it yourself, the steps for each assistant are below. ### Your address Every company has its own address for assistants: ```text https://your-company.adea.app/mcp ``` Replace `your-company` with the address you sign in to. You can also find it in Adea, under **Settings**, then **AI assistants**. ### Claude 1. Open **Settings**, then **Connectors**, and add a custom connector. 2. Name it Adea and paste your address. 3. Sign in to Adea when Claude asks, read what the connection may do, and choose **Allow**. In Claude Code, run this instead, and sign in when it asks: ```sh claude mcp add --transport http adea https://your-company.adea.app/mcp ``` ### ChatGPT 1. Open **Settings** and find the connectors, which are called apps in some versions. 2. Turn on developer mode under **Advanced**, then create a connector with your address and OAuth sign-in. 3. Sign in to Adea when ChatGPT asks, and choose **Allow**. ### Grok 1. Open **Settings** and find the connectors. 2. Add a custom connector and paste your address. 3. Sign in to Adea when Grok asks, read what the connection may do, and choose **Allow**. ### Cursor 1. Open the MCP settings, or edit the file `mcp.json`. 2. Add Adea with your address: ```json { "mcpServers": { "adea": { "url": "https://your-company.adea.app/mcp" } } } ``` 3. Choose **Login** when Cursor shows it, sign in to Adea and choose **Allow**. For Cursor and other tools, the sign-in screen says Adea hasn't verified the app by name. Check that the name and address are the ones you just set up, and choose **Allow**. > **Note.** The menus in each assistant change from time to time. If a name above doesn't match, look for "connectors", "apps" or "MCP servers" in its settings. ### What happens when you connect 1. The assistant opens a sign-in page at Adea. 2. You sign in as yourself. Adea shows what the connection is, and the role it gets, which can be at most your own. 3. You choose **Allow**. The assistant is now connected to your company, and to that company only. ### What an assistant can and can't do - **It sees what you see, and no more.** An assistant can do at most what both its own role and your role allow. - **Every call is logged in your name.** You can see what an assistant did. - **It can't confirm for you.** When an action needs a person's confirmation, the assistant gets a link for you to open. Only your own click confirms. - **Reading data comes first.** Once an assistant has read your data in a conversation, any change in that conversation waits for your click. - **Guardian watches.** The same checks apply to an assistant's questions as to yours. See [Guardian](/docs/guardian). - **Each answer starts with a sentence to read aloud**, for when you talk to your assistant hands-free. Demo companies can't be connected to an assistant. ### Disconnect Open **Settings**, then **AI assistants**, and disconnect the assistant. It stops working at once and its access is deleted. When a person leaves the company, every assistant they connected stops working too. --- ## AI assistants and API: The API Source: https://adea.app/docs/api > Every action in Adea is an API call, with the same checks as a click. The OpenAPI file lists them all. Everything you can click in Adea is an action, and you can call every action over the API. The same checks apply as for a click: your role, your plan, Guardian and credits. ### The address Each company has its own address, and the API lives under it: ```text https://your-company.adea.app/api/v1 ``` ### The list of actions The OpenAPI file describes every action: its name, what it needs, what it returns, whether it only reads or also changes something, and what it costs. ```sh curl https://adea.app/api/v1/openapi.json ``` ### Call an action Send a `POST` to `/api/v1/actions/{name}` with the input as JSON. For example, to read the rows of a list: ```sh curl -X POST https://your-company.adea.app/api/v1/actions/lists.rows \ -H "Authorization: Bearer $ADEA_KEY" \ -H "Content-Type: application/json" \ -d '{ "listId": "..." }' ``` A call that works returns `ok: true` and the result in `data`: ```json { "ok": true, "data": { "listId": "...", "name": "...", "statuses": [], "rows": [] }, "changed": [] } ``` A call that doesn't work returns `ok: false` and an `error` with a code and a message in plain words. The codes you will meet most often: | Code | Meaning | |---|---| | `invalid_input` | Some of the details aren't valid. The error says which. | | `unauthenticated` | You aren't signed in, or the key is not valid. | | `forbidden` | Your role doesn't allow this. | | `plan_required` | The action isn't part of your plan. | | `credit_limit` | The month's Deep credits are used. | | `cost_approval_required` | The work needs a deeper look and uses credits. Go ahead only if you accept the cost. | | `confirmation_required` | A person has to confirm this first. See below. | | `guardian_held` | An administrator has to approve this first. | | `rate_limited` | Too many calls at once. Wait a minute. | ### Actions that need a confirmation Some actions need a person to confirm them: anything that sends data out of Adea, for example. A call to one of these returns `confirmation_required` with a preview of what would happen. The API can't confirm on a person's behalf. A person confirms in Adea, or you send them the link. ### Keys and sign-in Calls from the signed-in app use your session. A script uses a key, sent as `Authorization: Bearer adea_...`. A key belongs to one company and works only on that company's address. It acts as the person who made it, with at most the role you give it, and every call is logged. To make a key, open **Settings**, then **Developers**, and choose a name, a role and when it should expire. The key is shown once, so copy it when it appears. Only administrators and developers can make keys, a key can't have more than your own role, and an administrator sees everyone's keys and can switch any of them off. A key stops working when its person is removed from the team. ### Webhooks To have Adea call your service when something happens, see [Webhooks](/docs/webhooks). ### Limits Calls are limited per person and per key. When you go over, the answer is `rate_limited`. ### Other ways in - [Use Adea from your AI assistant](/docs/ai-assistants): the same actions as tools in Claude, ChatGPT, Grok and Cursor. - [Markdown for every page](/llms-full.txt): all of these docs in one file, for an agent to read. --- ## AI assistants and API: Webhooks Source: https://adea.app/docs/webhooks > Tell your own service when something happens in Adea. Each message is signed, carries ids, titles and links, and is sent again if it doesn't arrive. A webhook is an address of your own that Adea calls when something happens. Use it to start work in your own tools: open a ticket when an insight appears, update a sheet when a list changes, or tell a chat room when someone is given a row. Only administrators can add and change webhooks. They are on the **Developers** page in **Settings**, under the API keys. ### Add a webhook 1. Open **Settings**, then **Developers**, and find **Webhooks**. 2. Write the address of your service. It has to start with `https://` and be reachable from the internet. Addresses on a private network are refused. 3. Choose what it hears about, then choose **Add webhook**. 4. Copy the signing secret and keep it somewhere safe. It is shown once. Each webhook has its own signing secret. A company can have up to 10 webhooks. Adding one is written to the security log. ### What you can listen for | Event | Sent when | |---|---| | `insight.created` | Adea creates an insight. | | `list.changed` | A list gets new rows, or rows leave it. | | `list.row_assigned` | A row of a list is given to someone. | | `answer.saved` | Someone saves an answer. | ### What a message holds A message is JSON, sent with `POST`. It carries ids, titles and a link, never the values in your rows and never personal data. It doesn't say who a row was given to either. To see more, follow the link, where Adea's usual access rules apply. ```json { "id": "0198f1c2-7d1e-7c3a-9b5e-2f6a8d4c1e90", "type": "insight.created", "createdAt": "2026-10-07T08:30:12.000Z", "data": { "insightId": "0198f1c2-5a0b-7e11-8c44-91d2b7e3a6f5", "title": "Orders from Aarhus fell 18 %", "url": "https://your-company.adea.app/insights/0198f1c2-5a0b-7e11-8c44-91d2b7e3a6f5" } } ``` The fields in `data` depend on the event. Every event has a `title` and a `url`. ### Check that it came from Adea Every message has these headers: - `Adea-Signature`: `t=,v1=` - `Adea-Event`: the event, like `insight.created` - `Adea-Delivery`: the message's id, the same as `id` in the body The signature is an HMAC with SHA-256 over the timestamp, a dot and the exact body, using the webhook's signing secret. Compute it yourself and compare. Refuse a message whose timestamp is more than five minutes old. ```js import { createHmac, timingSafeEqual } from "node:crypto"; export function fromAdea(secret, header, rawBody) { const t = /t=(\d+)/.exec(header)?.[1]; const v1 = /v1=([0-9a-f]+)/.exec(header)?.[1]; if (!t || !v1 || Math.abs(Date.now() / 1000 - Number(t)) > 300) return false; const expected = createHmac("sha256", secret).update(`${t}.${rawBody}`).digest(); const given = Buffer.from(v1, "hex"); return expected.length === given.length && timingSafeEqual(expected, given); } ``` Use the body exactly as it arrived, before any parsing. ### Answer quickly Answer with any `2xx` status within 10 seconds. Do the slow work after you have answered. Adea doesn't follow redirects. ### If it doesn't arrive A message that doesn't get a `2xx` answer is sent again, after 1 minute, 5 minutes, 30 minutes, 2 hours, 6 hours, 12 hours and a day. After the eighth try Adea gives up on it. A message can arrive more than once, so use `Adea-Delivery` to ignore one you have already handled. If 20 messages in a row fail, Adea pauses the webhook and the page says so. Fix your service, then switch the webhook on again. ### Test and look back - **Send a test** sends a message of type `test` to the address, signed like the real ones. It holds none of your data. - **Last messages** shows the last 50 sent to a webhook: which event, whether it arrived, the status your service answered with and when the next try is. A message that didn't arrive can be sent again from there. ### Switch off or delete Switch a webhook off to stop messages without losing its settings. Delete it to remove it and its log. Deleting one is written to the security log. ### With the API Everything on the page is an action, so you can manage webhooks from a script too: `webhooks.list`, `webhooks.create`, `webhooks.change`, `webhooks.test`, `webhooks.log`, `webhooks.retry` and `webhooks.delete`. See [the API](/docs/api). --- ## Security and plans: Guardian and security Source: https://adea.app/docs/guardian > How Adea keeps your data safe. A read-only connection, a check on every pull of data, and an administrator's approval where you want one. A stolen password or a careless request can't pull your customers' data out of Adea in bulk. This page shows what stops it. ### Adea only reads Adea connects with a user that can only read, and checks that before it connects. It refuses a user that can write. Adea never writes to your database, your code or any other system you connect. See [Connect a database](/docs/connect-database). ### It keeps no copy For databases and code, Adea reads what a question needs, works out the answer and drops the rows. Each job runs in its own short-lived process, so one company's data never shares memory with another's. ### Where your data is Adea and its database run in the EU. Adea reaches your database from fixed addresses that it shows when you connect, so you can allow exactly those and nothing else. Your data is never used to train AI models. ### What Guardian checks Guardian looks at every pull of data, whoever asks: you, a colleague, a scheduled list or an AI assistant. It weighs: - **Personal data.** Columns that hold names, emails, phone numbers, addresses, ID numbers and the like, and whether a result is mostly made of them. A count of members is not personal data. A list of their emails is. - **How much.** The number of rows, and how that compares with what this person normally pulls. - **How unusual.** A first export, the same pull repeated in a short while, or a pull at an hour the person never works. - **What the request says.** Instructions hidden in data, and requests for passwords or keys. ### What Guardian does - **On every plan,** Guardian flags what looks unusual. You see flags in the decision log and in a digest, and ordinary work is never blocked. - **On the Business plan,** Guardian can also hold a request until an administrator approves it. Every administrator who has been in the company for a day gets a link to approve or reject. An approval covers the same request, with up to 10 % more rows, for 24 hours. The person who asked is told when it's decided. - **Weakening protection takes two people.** Turning off a rule or lowering a limit needs a second administrator to approve, or it takes effect only after 24 hours unless someone stops it. This applies on every plan. - **If Guardian can't run,** requests for personal data, exports and changes to protection wait, instead of going through unchecked. Everyday questions about numbers carry on. A request that Guardian holds never costs a credit. ### The log Guardian keeps a decision log, and a security log that can't be altered without it showing. On the Business plan you can export the log. ### On the Business plan Business adds approvals, your own rules written in plain words ("hold any export over 500 rows"), the log export and the option to require sign-in with Google or Microsoft. See [Credits and plans](/docs/plans-and-credits). ### Questions from your security team Write to security@adea.app. --- ## Security and plans: Credits and plans Source: https://adea.app/docs/plans-and-credits > What each plan includes, how Deep credits work, and how to get more. There are four plans. Each has one price for the whole company, however many people use Adea. On every plan Adea watches your numbers from the first day, and everyday questions are free. ### The plans | | Free | Start | Pro | Business | |---|---|---|---|---| | Price per month | €0 | €99 | €199 | €499 | | Sources | 1 | 3 | 10 | No limit, and data warehouses | | Watched numbers | 5 | All | All | All | | Why a number moved, standing lists | No | Yes | Yes | Yes | | Investigations Adea starts on its own | None | 1 a day | 5 a day | 20 a day | | Your code connected | No | Yes | Yes | Yes | | A brief per location or team | No | No | Yes | Yes | | Urgent findings by text or call | No | No | Yes | Yes | | Access rules, public links, your brand | No | No | Yes | Yes | | Guardian approvals, your own rules, log export | No | No | No | Yes | | Deep credits | 25 in all | 200 a month | 800 a month | 2,500 a month | Prices are per month, plus VAT. The price is the same number in euros and in US dollars. ### Deep credits Everyday questions are free. Deep work uses Deep credits. - **Free, within fair use:** a number Adea already watches, a record looked up by its number, and a new question over your tables. - **1 Deep credit:** a deep question and **Find out why**, such as finding out why something happened or reading code, a report or a presentation. A bigger job can use more. - **You see the cost first.** The button shows the cost, and if Adea needs a deeper look than you asked for, it asks first. - **A failed or refused answer costs nothing.** - **Work Adea starts on its own is included.** Getting to know your data and the investigations Adea starts itself don't use your credits, up to your plan's daily limit. Your plan's credits are used first, then credits from packs. ### The trial A new company can try Pro for 14 days. The trial needs a card and includes 25 Deep credits. Nothing is charged until the trial ends, and Adea reminds you 3 days before. Cancel before then and you pay nothing. ### More credits When your credits run out, an administrator can buy a pack of 100 Deep credits for €39 plus VAT. Packs can be bought while you pay for a plan, not during the trial. A pack is valid for 12 months. You can also move to the next plan. ### The Free plan Free needs no card and has no end date. Its 25 Deep credits are for the whole time, not per month. If nobody opens Adea for 30 days, watching pauses and starts again at the next visit. After 90 days without a visit, Adea deletes your connection details. --- ## Security and plans: Security facts Source: https://adea.app/docs/security-facts > The short list your security team asks for: where Adea runs, what it can do to your data, how it connects, who can sign in and what is logged. The facts, one line each. The details are in [Guardian and security](/docs/guardian), and the company-level view is on the [security page](/security). ### Where your data is - Adea and its database run in the EU. - Your data is never used to train AI models. - Personal values, such as names, emails, phone numbers and addresses, are replaced with stand-ins like “Person 1” before the AI model sees them. Your screen shows the real ones. - The data processing agreement and the list of sub-processors are on the [security page](/security), and administrators accept the agreement under **Settings**, then **Agreements**. ### What Adea can do to your data - Adea only reads. It connects with a user that can only read, checks that before it connects, and refuses a user that can write. - Every query is checked before it runs: one plain read, nothing else. - Adea keeps no copy of your database. It reads what a question needs, works out the answer and drops the rows. It keeps the totals behind the numbers it watches and the rows you save in a list. - Each job runs in its own short-lived process, so one company's data never shares memory with another's. ### How Adea connects - From fixed addresses that Adea shows when you connect a database. You allow exactly those in your firewall, and they are the same for every company. See [Connect a database](/docs/connect-database). - To public addresses only, never to a private network. - Passwords and tokens you give Adea are encrypted with a key that belongs to your company alone. ### Who can sign in - People sign in with a link sent to their email, a passkey, Google or Microsoft. - On the Business plan an administrator can require Google or Microsoft. - Three roles decide what a person can change, and on Pro and Business an administrator can hide or mask tables and columns per role. See [Access and roles](/docs/access-and-roles). - An AI assistant works as the person who connected it, never with more access. ### What is watched and logged - [Guardian](/docs/guardian) checks every pull of data, whoever asks. On every plan it flags what looks unusual. On Business it can hold a request until an administrator approves. - Weakening a protection takes a second administrator, or waits 24 hours. - Guardian keeps a decision log and a security log. On Business you can export the log. ### Questions from your security team Write to security@adea.app. --- ## Security and plans: Access and roles Source: https://adea.app/docs/access-and-roles > Who can see and do what in Adea, how people join, and how an administrator limits what a person sees of your data. Everyone in Adea has one of three roles. The role decides what a person can change. Access rules decide which of your data a person's questions can use. ### The three roles | | Member | Developer | Administrator | |---|---|---|---| | Ask questions, save them and build dashboards | Yes | Yes | Yes | | Read insights and work through lists | Yes | Yes | Yes | | Connect databases and code | | Yes | Yes | | Correct what Adea understands about your data | | Yes | Yes | | Send a [developer link](/docs/developer-link) | | Yes | Yes | | Create API keys | | Yes | Yes | | Invite people and change roles | | | Yes | | Set access rules, sign-in rules and your brand | | | Yes | | Create and switch off public links | | | Yes | | Plan, billing and the data processing agreement | | | Yes | | Approve or decline what Guardian holds | | | Yes | | Export everything, or delete the company | | | Yes | Whoever creates the company is its first administrator. Give most people the Member role, your developers the Developer role, and keep the Administrator role for the few who run Adea. ### Invite a person 1. Open **Settings**, then **Team**. 2. Enter the work email, choose **Member** or **Developer**, and send the invitation. 3. The person gets a mail with a link that works for 14 days, signs in and joins. You can send the link again, which stops the earlier one, or cancel the invitation. To make someone an administrator, change their role in the team list. A second administrator has to approve that, or it takes effect after 24 hours, so one stolen account can't hand out control. There always has to be one administrator, and you can't change your own role. ### How people sign in A person signs in with a link sent to their email, a passkey, Google or Microsoft. Each person can add a passkey under **Settings**, then **Profile and preferences**. On the Business plan an administrator can require sign-in with Google, with Microsoft, or with either. Adea refuses the change unless the administrator can sign in that way themselves, and tells them how many colleagues still need to. This is a rule about which accounts are allowed, not a link to your company's own single sign-on. ### Take a person out Remove a person under **Settings**, then **Team**. Their access ends at once, and so do their API keys and every AI assistant they had connected. ### Limit what a person can see On Pro and Business an administrator can set rules for each role under **Settings**, then **Access**: - **Hide a table or a column.** The role can't use it at all, not even inside another question. - **Mask a column.** The role can count and group by it, but its values show as ••••. - **A rule in plain words**, such as "Only administrators see salaries". Adea follows it as well as it can, but use a hidden or masked column when you must be sure. The same page shows who sees what, by table, for every person and every connected AI assistant, so you can check a rule did what you meant. If you move to a plan without access rules, the rules you already have keep working, but you can't add new ones. ### Give a person one location On Pro and above an administrator can limit a person to a part of the business, such as one location or one team. Their Home, insights, lists and briefing then follow only that part. The choice appears under **Settings**, then **Team**, once Adea finds a location or a team in your data. See [Invite your team](/docs/team). ### AI assistants and Slack An AI assistant works as the person who connected it, with at most that person's role and rules, and every call is logged in their name. Questions from Slack follow the same rules. See [Use Adea from your AI assistant](/docs/ai-assistants). ### Keys for your own tools An API key acts as the person who made it, with at most their role. Members can't make keys. See [The API](/docs/api). ### What an administrator sees Guardian keeps a log of what was asked and what it decided, which administrators can read under **Settings**, then **Guardian**. See [Guardian and security](/docs/guardian).