Help
How Variafy works
Variafy connects your AI assistant to your Meta ad accounts. The assistant reads numbers for free and proposes changes. Nothing changes until the change is confirmed on a second call — and the owner can require that anything which increases spend be approved by a person in the console instead.
01 / Assistant
Connect your assistant
You need a Variafy account. Every assistant uses the same server address:
https://www.variafy.com/mcp
Claude (claude.ai and Claude Desktop)
- Open Customize → Connectors, choose + and then Add custom connector.
- Enter the address above and click Add.
- Connect it and sign in with Variafy when Claude asks. There is no token to paste.
On Team and Enterprise plans an owner adds the connector in Organization settings → Connectors. The Claude Free plan allows one custom connector. Current steps: Claude Help Center.
ChatGPT
- Turn on developer mode: Settings → Security and login → Developer mode.
- Go to Plugins, choose + and create a developer-mode app with the address above.
- Sign in with Variafy when ChatGPT asks.
Developer mode is available on the web on Plus, Pro, Business, Enterprise and Education plans. ChatGPT also asks you to confirm every tool that is not read-only, in addition to Variafy's own confirmation. Current steps: OpenAI developer mode guide.
Claude Code
Issue a token in the console under Assistant connection, put it in place of sk_live_YOUR_TOKEN and run:
claude mcp add --scope user --transport http variafy https://www.variafy.com/mcp --header "Authorization: Bearer sk_live_YOUR_TOKEN"
Cursor and other MCP clients
Use the same address and send the token in the header Authorization: Bearer sk_live_…. In Cursor, add this to ~/.cursor/mcp.json with your token:
{
"mcpServers": {
"variafy": {
"url": "https://www.variafy.com/mcp",
"headers": {
"Authorization": "Bearer sk_live_YOUR_TOKEN"
}
}
}
}
Menu names in Claude and ChatGPT change from time to time; the links above lead to their current instructions.
02 / Ad account
Connect an ad account
Open the console
Sign in with the code we email you and choose Connect an ad account.
Grant access in Facebook
A Facebook page opens where you choose which ad accounts to share. Variafy sees only those.
Pick the ad accounts
Back in the console, select the ad accounts to connect. How many fit depends on your plan.
To make changes, your role in the ad account has to allow them: Advertise or Manage. With Analyze the assistant can only read.
With several ad accounts connected, the assistant names the ad account it works in. A change prepared in one ad account is never applied in another.
Disconnect an ad account in the console. Removing Variafy in your Facebook settings revokes its access too.
03 / Changes
Reads and changes
Reads are free and change nothing: campaigns, metrics, audiences, creatives and diagnostics.
Every change takes two calls. The first one returns a preview: what will change, in which ad account and how it affects spend. At that point nothing has changed.
Cannot increase spend
Pausing, lowering a budget, creating paused campaigns and ads, uploading creatives. The preview includes a confirmation token, and the assistant applies the change by calling again with it within 10 minutes.
Can increase spend
Turning ads on, raising a budget, raising a bid, widening an audience, extending a schedule. By default these work the same way — preview, then a second call with the token — and the assistant must say plainly that spend will grow. The owner can switch the account to the stricter mode: then the assistant gets no token, only a link, and a person opens it, signs in and clicks Apply.
- A link stays valid for up to 72 hours, and for 4 hours when the change starts delivery right away. Opening a link changes nothing: only the Apply button does.
- Pausing is always available and free, even when a payment is overdue.
- A change that a person rejected, or a repeat of a change that was already made, is not applied from chat either: it goes back to a person.
- An approval made on a link is recorded in the console's audit log together with who approved it.
When a change waits for a decision, the console lists it and we email the people who can approve changes, at most once every 15 minutes.
04 / Automation
Watchdog, monitors and briefs
Watchdog
Every 15 minutes the watchdog reads each connected ad account and looks for:
- an ad account that is disabled or unsettled, or has reached its spend cap;
- spend that stopped while campaigns are on;
- a day that cost about 2× the usual;
- an active campaign with a budget that spent nothing while the ad account did;
- a campaign that spent enough over 7 days to get at least 3 results at the ad account's cost per result, and got none.
What it finds arrives by email at most once an hour, with a sentence to paste into your assistant. The assistant reads the same findings with list_signals and can ask for a fresh check with run_watch_now.
Monitors
Your own rules, such as "CPA above 50 yesterday". Each campaign, ad set or ad is checked on its own, every morning after 06:00 in the ad account's time zone. A rule compares a metric with a number, with an average or with the previous period in percent, and can require several days in a row. Metrics: ROAS, CTR, CPC, CPA, CPM, cost per video view, spend, conversions, impressions, clicks, cost per lead, conversion rate, budget use, video views, engagement rate.
When a monitor triggers, you get an email. Ask the assistant to set one up (create_monitor) and to try it on recent data first (test_monitor).
Prepared actions
For a campaign that spends without results, the watchdog prepares a pause. A monitor can prepare a pause or a daily budget change by a percent. A prepared action changes nothing on its own: it waits 48 hours for a decision in the console and in list_pending_actions.
Pauses and lower budgets can be approved from chat with manage_action; a higher budget only by a signed-in person. If the problem goes away, the prepared action is withdrawn; if you reject it, it is not prepared again for 24 hours.
7 days after an approved action, Variafy compares the cost per result in the week before and the week after. It gives a verdict only when both weeks have at least 10 results, and it is a before-and-after comparison, not proof of cause.
Scheduled briefs
An email summary of your ad accounts, daily, weekly or every few days, at the time and in the time zone you choose (by default weekly on Mondays at 09:00, America/New_York). It goes to a member of your console and covers spend and results by ad account, campaigns worth a look and open findings. Ask the assistant: schedule_brief.
Monitors, briefs and approving prepared pauses do not count toward the monthly change limit.
05 / HTTP API
Without an assistant: plain HTTP
Every operation the assistant can call is also a plain HTTP request, with the same key, the same rules and the same monthly limit. This is for n8n, Make, cron and your own scripts — anything with no chat in it.
curl -X POST https://www.variafy.com/v1/tools/get_insights \
-H "authorization: Bearer sk_live_…" \
-H "content-type: application/json" \
-d '{"date_preset":"last_7d"}'
GET /v1 says which ad accounts the key reaches and how many changes are left this month.
GET /v1/tools lists every operation with its fields; GET /v1/tools/<name> returns one.
Changes take the same two calls. The first answers with a preview and a confirm_token; the second
repeats the same body with that token added. A change that can increase spend is not executed this way either: the
answer carries a link for a person to open and approve. The answer is the same JSON the assistant sees.
The key belongs on a server, not in a browser: there is no cross-origin access, on purpose.
06 / Limits
Plans and limits
What counts. Only changes that write to an ad account count toward your plan's monthly change limit. Reads, pausing, monitors and briefs never count. The assistant shows your usage with usage; plans are on the home page.
Meta limits. Meta limits how many requests an app sends to each ad account. Variafy keeps count per ad account: when one gets close to its limit, reads and background checks wait, pauses keep going through, and the assistant is told how long to wait.
Request limits. To protect the service, requests are limited per minute: 300 per key, counting the assistant and plain HTTP together, 120 per network without a token and 120 page loads per network. Above that the answer is "Too many requests" with the number of seconds to wait.
07 / Troubleshooting
Troubleshooting
The assistant gave me a link instead of making the change
This account is in the stricter mode: anything that can increase spend is approved by a person. Open the link, sign in with your own account, check the preview and click Apply. The owner can change this in the console.
The assistant says the change is already waiting for a decision
The same change was already proposed. Asking again does not create a second proposal: approve or reject the existing one in the console before its link expires.
The assistant says the ad account is at its Meta limit
Wait for the time it names. Reads may return the most recent answer marked with its age. Pausing still works.
Changes are refused because of permissions
Your role in the ad account allows reading only. Ask the ad account admin for Advertise or Manage, then reconnect the ad account in the console.
The monthly change limit is reached
Reads and pausing keep working. The limit resets on the date the assistant names; a larger plan raises it.
The answer says changes are switched off on the server
The Variafy team has temporarily stopped changes to ad accounts. Pausing still works, and proposals that are waiting stay valid until they expire.
The token is invalid, revoked or expired
Reconnect the connector in your assistant, or issue a new token in the console for Claude Code, Cursor and other clients.
The assistant does not see any ad accounts
Connect an ad account in the console. If one was connected before, check that its access in Facebook was not removed.
08 / Security
Security and data
- Meta access tokens are stored encrypted (AES-256-GCM) and are used only to act in the ad accounts you connected.
- Your ad data is not sent to analytics or advertising services. Emails such as briefs and alerts are delivered through an email delivery service.
- Every call an assistant makes is written to the account's journal: who asked, which tool, the arguments and the answer. The Variafy account owner reads it in the console. Confirmation tokens and the signed links we hand out are not stored there. What a person typed in their own chat never reaches this service — only the call the assistant built from it.
- Every executed change is recorded in the console's audit log, with the account it was made from. If the owner turned on the stricter mode, a change that can increase spend is applied only after a signed-in person approves it on its link.
- How long each kind of data is kept is listed in the privacy policy. To remove your data, see data deletion.