01
← → to navigate
Nekt Training · Agencies · ~1h

The agency
data-driven.

All customer data in one place, ready to make decisions. With context and AI, multi-tenant, no manual spreadsheet.
academy.nekt.com
Agenda
What will we see
01
Ingestion
The mental model and connection of sources for each client.
02
Catalog
Lakehouse and multi-tenant workspace organization.
03
Context and transformation
Semantic layer and modeling, when it pays off.
04
Activation
Consumption, governance and cases of agency.
01
SECTION 01

The model mental

The data maturity journey, and why value comes before optimization.
The root of the problem
Each platform is a island
Today · every customer, N loose sources
MMeta Ads
GGoogle Ads
TTTikTok
GAAnalytics
CRMCRM
GSSheets
With Nekt · one place
Unique environment
Lakehouse + Catalog
gold.midia_consolidada gold.funil_by_cliente gold.performance_360
Nekt consolidates each client's platforms into a single, isolated and comparable environment. Without this, each one tells a different story.
What fragmentation causes
The same customer, four numbers How many conversions did the customer have?
M
Meta Ads
panel
320
Conversions attributed by the platform
G
Google Ads
panel
280
Conversions counted by Google
GA
Analytics
website
240
Sessions that converted on the website
CRM
CRM
real sales
180
Sales that actually closed
180
240
280
320
140 difference conversions Four platforms, four truths. Without a single base per customer, the number generates a meeting, not a decision.
Maturity Model
Four steps, value from an early age
01
Consolidate
Sources from all clients together in the same workspace.
02
Extract value
Context plus AI, and you can already talk to any customer’s data. The value appears here, before any modeling.
03
Transform
Consolidations that become routine, when it pays off, become table.
04
Production
Dashboards and agents per client running in the agency's day-to-day operations.
The principle that guides everything
Context and agents already deliver high assertiveness. Modeling comes later, when it pays off.
Optimization is not the beginning of the journey, it is a consequence of finding what matters in each account.
02
SECTION 02

Connecting sources

Bring each client's accounts the right way, without handling someone else's password.
What can you connect
The sources of a agency
M
Meta Ads
Spending, results and campaigns
G
Google Ads
Clicks, cost and conversions
TT
TikTok Ads
Investment and performance
GA
Google Analytics 4
Sessions, events and conversions
HS
HubSpot/RD/Pipedrive
Deals, internships and contacts
SH
Shopify / Nuvemshop
Orders and billing
GS
Google Sheets
Goals and manual controls
API
REST API
Any source with endpoint
No native connector? Sales Navigator and the like enter via export CSV or spreadsheet, Nekt ingests.
Passwordless onboarding
Mode draft: the client authenticates
01 · Agency
Create the source in draft
02 · Agency
Send the auth link
03 · Customer
Authenticate to his account
04 · Ready
Source connected
Why this changes the game

The agency connects the client's Google Ads or Meta account without ever touching their password. It's the right way to scale the onboarding of dozens of accounts.

And all this flow also runs through API or MCP: create the sources in draft and trigger the auth links programmatically, to automate onboarding at scale.
Sync and cost
Update x cost
Full Sync
Full
Rereads the entire source with each run. Simple and error-proof: the destination is always an exact portrait of the origin.
Incremental Sync
Incremental
Just what has changed since the last sync. Inexpensive on large daily media tables, needs a reliable date column.
Credit savings, with many customers

Incremental on large tables, run during business hours and weekdays, and shut down pipelines for departed accounts.

03
SECTION 03

Fundamentals: the lakehouse

How each customer's data is refined, from raw to ready-to-consume.
medallion architecture
Bronze, Silver and Gold
Bronze
Raw layer
How it came from each source
  • Faithful mirror of each platform
  • One per source, per customer
  • Raw type, often text
  • No editing, immutable
refines
Silver
Treated layer
Unified channels
  • Common schema across platforms
  • Correct types, no duplicates
  • Meta, Google and TikTok comparable
  • Pleasant to read
refines
Gold
Consumption layer
Ready for deliverable
  • Consolidated by client and agency
  • Decision-ready tables
  • This is where BI, MCP and API read from
  • A source of truth
A recommendation, not a rule

Each agency organizes the layers as makes sense. What matters is the concept: raw, refined, ready.

The same line, refined
From raw at the ready
meta_insights · bronze how did it come
{ "campaign_id": "238841", "spend": "320.55", "actions": "18", "date_start": "2026-06-01" } // each platform in a format, difficult to add
gold.consolidado_midia ready
date customer channel invest leads
2026-06-01Silva StoreGoalR$32018
2026-06-01Silva StoreGoogleR$41022
2026-06-01Cafe AuroraGoalR$ 28015
Typed, readable, with already standardized customer and channel. Meta, Google and TikTok on the same ruler, ready to add and compare.
04
SECTION 04

Organization of workspace

Operate dozens of clients in one place: isolated from each other and, at the same time, consolidated in an agency vision.
The challenge
Many customers, many sources
12 customers
each with its own set of accounts and platforms.
5 sources
per customer on average: media, analytics, CRM, e-commerce.
60+
data sources in total, each in its own pattern.
The trap

Mixing customer data in the same table without isolation breaks everything, and confuses the AI. Manual cross-checking in a spreadsheet does not scale.

The most important rule
One layer per customer
Layer · acme
Acme
acme_meta_ads_daily
acme_googleads_daily
acme_ga4_events
acme_crm_deals
Layer · loja_silva
Silva Store
loja_silva_meta_ads_daily
loja_silva_ga4_events
loja_silva_shopify_orders
Layer · cafe_aurora
Cafe Aurora
cafe_aurora_meta_ads_daily
cafe_aurora_googleads_daily
cafe_aurora_crm_deals
Choose a pattern and stick

One layer per client, or folders per client within the layers. The important thing is that isolation has no exceptions.

Table naming
A name that the AI understand
{client}_{source}_{granularity}
acme_googleads_campaign_daily
acme_goal_ads_daily
loja_silva_crm_deals
It is the client's prefix that makes the MCP find the right table among dozens, without confusing accounts.
Context document per customer
Each customer, their ruler
client-acme.md Context document
#Acme ## CAC Media investment divided by sales closed in CRM, in the month. ## ROAS Income attributed on the investment. Cost always net of taxes. ## Qualified lead CRM stage greater than or equal to "Meeting held".
The definition of CAC, ROAS and lead changes from client to client. The document per customer sets the right rule.
The effect on AI

With the metric recorded, the agent responds with the business rule for that account, instead of guessing.

The cat's leap
Isolated and consolidated
gold.consolidado_agencia 1 table · N customers
customer channel invest revenue roas
AcmeGoalR$ 8.2 thousandR$41 thousand5.0x
Silva StoreGoogleR$ 5.1 thousandR$ 12 thousand2.3x
Cafe AuroraGoalR$ 3.4 thousandR$ 18 thousand5.3x
The client column maintains separation, and at the same time gives a view of the entire portfolio in a single query.
Every customer isolated. The agency, a single vision.
Both at the same time

Prefix per client guarantees isolation. A consolidated Gold with the client column gives an overview of the agency, without mixing.

05
SECTION 05

Context and semantics

What makes AI understand each client's metrics the agency's way.
Two houses, two roles
Where does each live? thing
Description in the Catalog · what the data is
table acme_meta_ads_daily
ColumnDescription
spend decimal Investment of the day, net of taxes, in BRL
actions int Conversions attributed by the platform
campaign text Campaign name, agency pattern
Context document · what the metric means
metrics-agencia.md Context document
# Agency metrics ##CPL Investment in qualified leads. ## Attribution Last click, 7 day window. ## Comparison Always at the same granularity and time zone.
The message
What drives assertiveness the most is not modeling everything. It is give context.
06
SECTION 06

Modeling: when optimize

Unify channels and consolidate when the value has already appeared.
The agency standard
Silver unified by channel
Each platform
Different scheme
Silver
Common schema: date, customer, channel, cost, conversions
Gold
One per deliverable
Not always from scratch

There are ready-made templates for common agency cases, media consolidation and mirrored CRM, so you don't always need to write the SQL by hand.

Value first, model second
Model what repeat
  • Value first. Model only after the answer has proven that it works.
  • The consolidation of media that runs every day deserves to become a leader.
  • For AI, Nekt tends to favor wide tables, without joins.
Beware of over-engineering

Don't create a star schema when a wide table resolves. A beautiful model in the diagram is often expensive in practice.

Two transformation tools
Query or notebook?
SQL · declarative
Query
Joins, aggregations, filters: the day to day transformation. Scheduled run, it's quick to write and the MCP already generates it for you.
SELECT channel, SUM(invest) FROM silver.anuncios GROUP BY channel
Python/PySpark · procedural
Notebook
When logic doesn't fit in SQL: step by step, libraries and integrations. Also generated by MCP in natural language.
import nekt df = nekt.load_table("Silver", "advertisements") df = consolidate_canais(df) nekt.save_table(df, "Gold", ...)
What only the notebook does

Enrich via external API, apply an ML model, process free text or nested JSON, and iterative calculations. Rule of thumb: SQL for most, notebook when you need logic or libs.

Two ways to organize
Star schema vs. wide table
gold.fato_midiakeys · need to add
data_id
→ dim_data
client_id
→ dim_cliente
channel_id
→ dim_canal
invest
d_06cl_31ch_1R$320
d_06cl_31ch_2R$410
Just keep the keys. To read customer or channel, you need joins with the dimensions.
gold.midia_wide 1 table · no joins
date customer channel invest conv
06-01AcmeGoalR$32018
06-01AcmeGoogleR$41022
06-01Silva StoreGoalR$ 28015
All on a wide table. No joins, great for AI and quick exploration.
07
SECTION 07

Consuming the data

The last kilometer: where each customer's data becomes a decision and deliverable.
Two ways to consume
Data API vs. MCP
Data API · the customer dashboard · deterministic
GET/v1/tables/gold.consolidado_midia?cliente=acme
answer
{
  "client": "acme",
  "invest_mes": 8200,
  "roas": 5.0
}
One dashboard per customer asks, the same table responds the same every time.
MCP · service and exploration · natural
Account manager
What was Acme's ROAS like in June, by channel?
Agent
Find Acme tables by prefix, apply the document's ROAS rule and respond, without opening any platform.
A question in Portuguese, the answer ready for the customer.
MCP with dozens of customers
The agent finds the bill right
Team
Compare the CPL of Loja Silva and Café Aurora this month.
Agent
Locate loja_silva_* and cafe_aurora_* by prefix, uses the agency's CPL definition and returns both side by side.
The client prefix is the client's compass. agent.
the formula for success

Prefix per customer, more table descriptions, more context documents. With this, the agent navigates dozens of customers without getting lost.

08
SECTION 08

Operation and governance

Run with confidence and control who, from each customer, sees what.
Governance and permissions
Each customer sees only the his Growth
Level 01
Viewer
See and use, read-only. Ideal for the end customer to just look at his layer.
Level 02
Editor
Everything from the Viewer, and edit and create: the account analyst touches what belongs to the client.
Level 03
Manager
Everything from the Editor, and grants access. The role of whoever manages the agency.
Token scoped per client

A token limited to a customer's tables means the agent only sees that account. The customer's dashboard never reaches another's data.

When something fails
Read the log and summary by AI
run #1 · failed Runs
failure Source Meta Ads · Acme · 6/30 05:58 · 14s · 401 Unauthorized
Analyst Summary · AI-Generated
What happened
Acme Meta account token has expired and source responded 401 Unauthorized. The run stopped at the beginning and no lines were processed.
Recommended actions
1) Resend the auth link to the client  ·  2) Check permissions  ·  3) Reprocess the pipeline
The first measure in the event of a failure: open the run and read. Nekt already explains what happened and what to do.
09
SECTION 09

Use cases agency

What can be built on top of the consolidated customer base.
Panorama
Five cases that the agency turn on quickly
Media
Performance consolidated
Google, Meta and TikTok for each account in one place, comparable.
Data app
Portal customer
A data app where the client sees campaigns and performance for themselves.
CRM
CRM mirrored
Marketing and commercial aligned at the same funnel stage.
revenue
Revenue analytics
CAC, attribution and forecast, with an agent that suggests action.
Internal
Vision of agency
The agency's own CRM via chat: pipeline and revenue.
And much more
The basis is the same
Once consolidated, each new case is just a query.
Scenario · agency with 12 clients
Case: performance consolidated
gold.consolidado_midia 1 table · N customers
date customer channel investment leads
2026-06-01Silva StoreGoalR$32018
2026-06-01Silva StoreGoogleR$41022
2026-06-01Cafe AuroraGoalR$ 28015
2026-06-01Cafe AuroraGoogleR$ 1909
Meta and Google for each account, in the same table, with standardized columns.
Value Agency
The manager asks which account has CPL outside the curve and receive the answer instantly, comparing all customers on a single basis.
Scenario · self-service for the customer
Case: data app do customer
Goal
ROAS 5.0x
TikTok
ROAS 4.1x
Google
ROAS 3.4x
Instagram
ROAS 2.6x
What Acme sees in the data app itself: ROAS by channel, updated every day.
Value Agency
Each customer gets one data app to monitor campaigns, spending and performance on your own, instead of waiting for the agency's spreadsheet. The scoped token guarantees that he only sees his account.
Built on top of the Data API

The app reads Gold via the Data API, with little code: fast, stable, and the customer accesses it whenever they want.

Scenario · the agency itself
Case: internal view of agency
Partner
What is the agency's recurring revenue and pipeline for the next 60 days?
Agent
Reads the agency's CRM (Pipedrive), adds active contracts and considers the pipeline opened by historical conversion.
Value Agency
In addition to customer data, the own business of the agency becomes a conversation: revenue, account churn and portfolio health, without a spreadsheet.
Get to work
Data from all
customers, turning value today.
Connect an account in draft mode, isolate by client, provide context and plug in the MCP. The rest is evolution, at the agency’s pace.
Academy academy.nekt.com Docs docs.nekt.com
Thank you