caOS Documentation Getting started PT EN

Overview

Getting startedwith caOS

This guide covers the complete setup journey of caOS: from connecting your ad accounts to activating platform products. Here you will learn how to extract data to Google Sheets or BigQuery via Xtractor, distribute recurring reports on WhatsApp via Pacer, and protect budgets against overspend via Heimdall, using interactive simulations and a status troubleshooting dashboard.

Three-layer architecture

caOS keeps the origin of the data separate from what you do with it. Understanding that separation resolves most setup questions before they come up.

LayerRole
WorkspaceThe operation's central environment. Groups your team's ad accounts, tags, connections, and flows.
SourcesThe ad accounts connected over OAuth. Configured once and available to every contracted product.
ProductsWhat consumes the data. Xtractor exports to a spreadsheet or a warehouse; Pacer distributes reports over WhatsApp; Heimdall monitors budget.

Setup sequence

Setup has a required order. Each step depends on the previous one being complete, and skipping one can produce a silent state, where the platform shows no error message, but data does not flow properly. We recommend strictly following these steps.

  • Connect the ad platform over OAuth.
  • Add the accounts that belong to this workspace.
  • Tag every account with at least one tag.
  • Sync the accounts with contracted products.
  • Configure the product: an extraction in Xtractor, a message flow in Pacer, or a media plan in Heimdall.

Access

Authenticationand workspace

Access is by a single-use code sent over email. The platform never uses a password at any point.

Signing in

Enter your registered email and the platform sends a six-digit code, valid for a limited time and for one authentication only. The session stays active in the browser, so the code is not requested on every visit.

Because there is no password, there is also no password recovery. A code that does not arrive is usually in the spam folder or held by a corporate filter.

Workspace and users

Each workspace represents the operation's environment, identified at the top of the sidebar. In team workspaces, these resources are automatically accessible to all invited members. There, the same accounts, tags, and flows can be accessed without needing to reconnect platforms or credentials per user. Access can be granted as editor or viewer for specific members.

In team workspaces there is one exception, covered in the Pacer section: the WhatsApp number used as the sender is personal and is not shared across workspace members.

Trial accounts are individual

Self-serve signup creates an individual workspace for a single user. Adding other members requires a team workspace, activated directly with the caOS team.

Start here

Plan limitsand what each one unlocks

Each plan defines the capacity of active ad accounts, available destinations (such as Google Sheets or BigQuery), update frequency, and the level of process automation. Understanding this structure helps plan your operation according to your team's automation needs and account volume.

Xtractor

PlanLimits and automation
HobbyGoogle Sheets, 1 ad account in use, 1 platform. Manual refresh, no scheduling.
StarterGoogle Sheets, 3 accounts, 1 platform. Unlocks the automatic daily sync with scheduling.
ProBigQuery and Sheets, 6 accounts, 3 platforms. Hourly, daily or custom sync, plus access through MCP in Claude.
EnterpriseUnlimited ad accounts and platforms, sync frequency agreed with the team, and custom onboarding.

Inside the platform, Plans and limits shows the current plan and the limits the system actually enforces. That is the reference to check when in doubt.

The limit applies to accounts in use, not to connected accounts

Connecting accounts under Sources is unrestricted on any plan. The limit applies to accounts with an active extraction connection. You can register the entire operation and extract from one account at a time while evaluating the platform.

Manual updates on the Hobby plan

Automated scheduled update routines are unlocked starting from the Starter plan. On the Hobby plan, syncing remains fully functional and operates on demand whenever the user clicks Sync.

Pacer

Billing is per message flow. Each flow covers one account per platform, with up to three simultaneous flows. Frequency is chosen per flow (daily, weekly, biweekly, monthly, or custom expression) at your defined time, subject to a limit of one delivery per day. The Enterprise plan removes the flow limit and includes an SLA and priority support.

Heimdall

Heimdall is an exclusive product of the Enterprise plan. Because it acts directly on budget control with automated pause actions via platform APIs, activation requires dedicated environment provisioning, permission governance, and onboarding guided by caOS engineering.

Modular pricing upon request

The product is priced based on operational scope (volume of monitored accounts and brands) without rigid packages. The plan includes contractual time commitments: discrepancies detected within 3 hours and alerts issued within 15 minutes of detection, plus approval hierarchy settings and priority support. The detection window is a contractual parameter: operations with high daily spend can contract a shorter one.

Data

Sourcesconnecting ad accounts

Sources is the central registry of the workspace's ad accounts. Every contracted product reads from this list. It is the mandatory starting point of the operation: without connecting platforms and adding accounts here, data does not flow to Xtractor, Pacer, or Heimdall.

Walk through the full setup

The screen below reproduces the Sources page and responds the way the real one does. Walk the four steps in order, or try syncing before applying a tag to observe the behavior described further down.

getcaos.com/app/fontes Simulation

Sources

Active connections0
Ad accounts0
Tagged0 of 0
Lost connections0

Step 1 of 4 · connect the platform

An intermediate state with no error shown

Between authorization and selection, the credential exists and no account is registered. The listing stays empty and the platform flags nothing beyond the notice of accounts found. If accounts do not appear under Sources after authorization, check this step before repeating the connection.

Available connectors

The connector screen presents released integrations, among them Meta Ads, Google Ads, TikTok Ads, Pinterest Ads, Kwai Ads, LinkedIn Ads, Google Analytics, Google BigQuery, and Google Sheets. Connectors under development are flagged and cannot be selected.

Selecting a connector opens the authorization flow of the ad platform itself. caOS receives a delegated access token and never sees or stores your password. That token is kept encrypted, as described under Connectors. Authorization can be revoked at any time, either from the platform of origin or from the Credentials tab, where revocation is allowed for the credential holder and workspace administrators.

Data

Tagsa sync requirement

Tags organize accounts by client, brand, or region, determining which accounts are propagated to the products.

Applying tags

Sidebar · Sources · TAGS column

Create the first tag under New tag and apply it with the add button on each account's row. An account accepts multiple tags, and the panel at the top shows the TAGGED counter, which indicates how many accounts are eligible to sync.

Untagged accounts are not synced

The sync routine propagates to Xtractor, Pacer, and Heimdall exclusively the accounts that carry at least one tag. An untagged account remains visible in Sources and is enrolled in no product.

No error message is displayed. In practice, the account simply does not appear in the options for Xtractor, Pacer, or Heimdall, even though it appears normally on the Sources page.

To fix it, apply a tag and run Sync with contracted products again. The same applies when removing the last tag from an account that was already synced.

Data

Connectorsone page per platform

The baseline connection flow is identical for all connectors: authenticate the account on the origin platform, select the ad accounts that belong to this workspace, and apply a tag. Network-specific technical rules, such as history limits, permission scopes, and metric formats, are detailed on each individual connector page.

Two things hold everywhere. Whoever authorizes defines what you can extract, because the account list comes from that user's access. And authorizing is not the same as adding: after connecting, caOS asks which accounts belong to this workspace, and what you do not tick does not come in.

Your credential

Connect once and you are connected. The credential renews itself, indefinitely. There is no date to put in the calendar and no need to reconnect periodically. There is only one way the connection drops: someone revokes access on the platform side. The account then shows up under Lost connections, and reconnecting fixes it, keeping the tags it already had.

The single exception is Kwai, which has no automatic login and works with a fixed-term credential. Its dedicated page below explains the process in detail.

Your credential is encrypted end to end. It is encrypted before it is stored, and the key does not live in the database, so even database access does not reveal it. Nobody at caOS, and not the user themselves, can read the credential back after it is saved; the screen shows only that it exists and is valid. Only requested metrics are read, caOS does not write to your ad account to extract data, and it stores no personal data about who saw the ad. Processing follows LGPD, and deletion is yours: revoking the connection erases the stored credential.

Pick a platform

Versions and deprecation

Every ad platform periodically updates its API version. This is the list of versions used by caOS today, checked on September 11, 2026.

PlatformAPI in useHow it is versionedSupport window
Meta AdsGraph API v22.0new version every ~3 monthseach version lasts ~2 years
Google AdsGoogle Ads API v22about 3 versions a yeareach version lasts ~1 year
TikTok AdsBusiness API v1.3stable since 2022no successor announced
LinkedIn AdsREST, versão 202601new version every montheach version lasts ~12 months
Pinterest AdsPinterest API v5v5 is currentv3 and v4 already retired
Kwai AdsMarketing API (mAPI)no version in the URLchanges arrive by announcement
Google Analytics 4Data API v1betav1beta stableno end date announced

How we keep track. The table is reviewed every quarter against each platform's official calendar. When a version enters its last six months of support, the migration becomes a scheduled task rather than an emergency.

What you get told, and what you do not need to know. A version change that moves a number (a metric definition, an attribution window, a field that stops existing) is announced beforehand, with what changes and in which reports. A change that moves no number happens without notice, because for you nothing changes.

Before you add platforms together

Two traps show up whenever a report puts different platforms side by side.

Reach does not add up. Reach is people, not events: the same person reached on Meta and on TikTok is one person, and adding the two numbers counts them twice. Google and Kwai do not even offer reach. Add impressions, never reach.

“Video view” means different things. On TikTok it is the play started, on Kwai it is ThruPlay, on Pinterest it is 2 seconds, on LinkedIn it is 2 seconds with half the screen, and on Meta it is 15 seconds. Adding those columns produces a total that means nothing. Each platform's page says which field is which.

Product

Xtractorextraction to a spreadsheet or warehouse

Xtractor maintains an automatic path between the ad platform and the destination where your operation consumes the data. The setup combines three independent objects.

Object model

ObjectDefinition
SourceAn extraction configuration: platform, ad account, tables and fields, and the initial period.
DestinationWhere the data is written. Google Sheets on the entry plan; BigQuery from the Pro plan up.
ConnectionThe link between a source and a destination, with its own schedule and a sync mode set per table.

About the term "source" in the menus

In the sidebar, Sources refers to the workspace's ad accounts. Inside Xtractor, the Sources tab lists product-specific extraction configurations, rather than the accounts connected in the main tab.

Building a connection

The form below reproduces the connection builder. The sync mode step appears only after selecting a destination, because available options depend on the chosen destination type (Google Sheets or BigQuery).

The sync mode combines two technical decisions: what to fetch from the source (full refresh or recent changes only) and how to write to the destination (overwrite the block, append new rows, or update existing records by removing duplicates).

There are six possible combinations, configured per table rather than for the entire connection. The recommended default is full refresh with deduplicated append: this option retroactively updates modified data using primary keys while preserving past report history.

A spreadsheet accepts two of the six modes

On Google Sheets only whole-tab overwrite and incremental append are available. A spreadsheet performs no joins or key-based deduplication, which is what supports the remaining modes. On BigQuery all six are available.

getcaos.com/app/xtractor/connections/new Simulation

New connection

1 · Source
2 · Destination
3 · Sync mode (per table)
4 · Schedule

Step 3 appears once the destination is set.

Select a source and a destination to watch the form react

Creating the extraction source

Xtractor · Sources tab · New source

The form is sequential and each step appears as the previous one is filled in. Select the platform, the ad account and an internal identifier. Platforms without an active credential appear as no connection and redirect to the connection flow, returning to the form without losing what you had entered.

Next, select the tables from the catalog. For performance reports, the insights table concentrates spend, impressions, clicks and conversions. Finally, set the start date of the extraction; the end date may be left open, in which case the extraction follows the current period. On save, the platform validates the field combination against the source API.

Creating the destination

Xtractor · Destinations tab · New destination

Select the destination platform and enter an identifier. Then authorize the Google account that will have write permission and select the spreadsheet, either through the Google picker or by pasting the document's address. The access granted is restricted to the selected document. Writing happens per table: each table in the source maps to one tab of the spreadsheet.

Authorizing the Google account does not complete the registration

Authorization is one step of the form. The destination is only created after the spreadsheet is selected and confirmed with Verify and save. Abandoning the form after authorizing leaves the credential registered and no destination created.

Saving performs a real write to the document, so that permission is validated at registration time rather than on the first scheduled extraction.

Product

Pacerrecurring reports on WhatsApp

Pacer composes a message from the metrics of connected accounts and delivers it on a scheduled and automated frequency to a WhatsApp contact or group.

1. Connecting a sender number

Pacer · WhatsApp Integration tab · Connect number

Authentication is done by scanning a QR code, the same model as WhatsApp Web. The number is bound to the user who authenticated it, and only that user can use it as a sender. The restriction prevents one workspace member from sending messages through another member's WhatsApp. Until a number of your own is connected, flows can be configured but not activated.

The platform monitors the session and notifies the number's owner if the binding drops, in which case deliveries are halted until it is reconnected.

2. Composing the message

Pacer · Flows tab · Template step

The editor validates each tag as you type. Recognized tags are highlighted and replaced by value on delivery; unrecognized tags are transmitted as literal text to the recipient. Try in the simulation below inserting an existing metric, such as {{ctr}}, and then typing an unrecognized one.

getcaos.com/app/pacer/flows Simulation

Template

Metrics created

How it arrives on WhatsApp

Click a metric to insert it, or edit the text freely

3. Validating and scheduling

Pacer · Preview and Delivery

Generate preview renders the message with illustrative values, without querying the platforms and without sending anything. Send test performs an immediate delivery with real data, letting you validate content and destination before scheduling.

Once validated, select the sender number, the destination, which can be a contact or a group, and the frequency. Activating Delivery active requires a sender number of your own to be selected.

Product

Heimdallbudget monitoring and protection

Heimdall monitors delivery pacing and campaign setup across your ad accounts throughout the day in verification cycles. It compares campaign velocity against your media plan, notifies you of discrepancies before the budget is exceeded, and automatically pauses delivery if authorized.

What Heimdall requires to work

Unlike reporting products, budget protection relies on a target reference. Heimdall requires your ad accounts to be connected under Sources, tags applied, and your media plan entered into the Operational Template: the spreadsheet provided during onboarding where you define each account's planned budget month by month.

Your only recurring commitment: keeping the monthly plan up to date

If the current month's target is unfilled or outdated, Heimdall will compare campaign pacing against old targets or treat the budget as zero, causing false-positive alerts. Updating the media template for each new month or budget adjustment is the only ongoing task required on your end.

Three action modes

You control Heimdall's level of autonomy over your operation, setting a default behavior for the workspace or customizing the mode per ad account:

  • Alerts only (Simple): Heimdall notifies the team without pausing any campaigns.
  • Gradual (Medium): notifies the team at each verification cycle. If the discrepancy persists for three consecutive alerts within the same occurrence, it triggers an automatic pause.
  • Active Containment (Full): immediately pauses delivery as soon as a campaign crosses the configured tolerance threshold.

Flexible tolerance threshold. Discrepancy triggers can be set per account or campaign in monetary values, a percentage of the planned budget, or both.

Alerts and scope of action

Notifications are delivered via email and WhatsApp, displaying the account, planned target, current delivery rate, and projected spend. For Gradual and Active Containment modes, WhatsApp is the primary recommended channel for immediate team response.

When a threshold is breached under an active pause mode, Heimdall pauses the active elements of that account directly via the origin platform's API. This acts as a safety containment lock to prevent budget overruns.

Human-controlled resumption

Heimdall never resumes campaigns on its own. After updating the plan template or adjusting setup on the ad platform, campaigns can be resumed in bulk directly from our dashboard (Mass Resume) or manually within the native ad manager.

Products

Other productson the platform

Products outside the contracted plan stay visible in the menu, marked as locked and with a sales contact channel.

Available

Xtractor

Extraction of data from ad platforms into a spreadsheet or data warehouse, with scheduling and a run history.

Available

Pacer

Recurring reports delivered over WhatsApp, composed from the metrics of the connected accounts.

Separate product

Agents

AI agents configured by the caOS team for specific routines of a media operation.

Reference

Troubleshootingthe setup

The situations below account for most of what comes up during initial setup. In all of them, the platform operates with no apparent error.

Observed behaviorLikely cause and fix
Authorization completed and no account listed under SourcesThe accounts were found but not added to the workspace. Use Select accounts on the Sources page.
Account listed under Sources and missing from Pacer's selectionThe account probably has no tag. Apply at least one tag and run Sync with contracted products.
Xtractor reports "no source created yet"That refers to the extraction configuration, not to the connected accounts. Create the first one under New source.
Google account authorized and destination missing from the listThe form was not completed. Select the spreadsheet and confirm with Verify and save.
Connection created and no run recordedThe schedule is set to Manual. Set a time or run it by hand with Sync.
A Pacer flow cannot be activatedNo sender number of your own is selected. Connect a number under WhatsApp Integration and select it in the delivery step.
A metric shows as a placeholder in the received textThe tag was not recognized in the template. Re-insert it from the editor and confirm that it appears highlighted.
Heimdall alerts on an account that did not overspendThe account is delivering with no planned budget for the month in the Operational Template. Fill in the month's row and the alert stops on the next cycle.
The Heimdall alert only arrives by emailNo WhatsApp number is configured. Add one under Alerts; on the Medium and Full modules it is the expected channel.
Campaigns paused by Heimdall stay pausedResuming is not automatic. Correct the target in the Operational Template and resume the campaigns on the origin platform.

Reference

Glossary

Workspace
The operational environment on the platform. Holds ad accounts, tags, sources, destinations, connections, and flows. In team workspaces, shared across members.
Ad account
An account on a media platform, such as a Meta Ads account. The unit of connection, tagging and selection in reports.
Credential
An OAuth authorization granted to a platform. One credential can give access to several ad accounts.
Tag
An organizing label applied to ad accounts. A requirement for the account to be propagated to the products on sync.
Source
In the sidebar, the registry of the workspace's ad accounts. In Xtractor, an extraction configuration.
Destination
Where extracted data is written, such as a Google Sheets spreadsheet or a BigQuery dataset.
Connection
The link between a source and a destination in Xtractor, with its own sync mode and schedule.
Flow
In Pacer, the complete definition of a recurring report: accounts, metrics, period, text, destination and frequency.
Operational Template
In Heimdall, the spreadsheet caOS hands over at onboarding, which you fill in with the planned budget of each account, month by month. It is the target actual spend is compared against.
Verification cycle
The interval between two Heimdall readings of your accounts. The standard plan commits to a maximum of 3 hours between cycles, and this interval defines how quickly a discrepancy becomes known. Not to be confused with an occurrence: the three alerts that trigger a pause in Gradual mode are counted within the same occurrence of a discrepancy, not within a single cycle.
Security module
In Heimdall, how much the product may do on its own when it detects an overspend: Simple (warns only), Medium (warns, then pauses if it persists) or Full (pauses once the trigger is crossed).
Trigger
In Heimdall, the tolerance above the planned budget that fires an alert and a pause. Set as a percentage, as an amount, or both. The default is zero.