Skip to main content

Architecture

The GTM Agent showcase has three layers:

  • agent-facing experience,
  • governed ANIP services,
  • data and verification substrate.

High-level map

The agent runtime does not ask the user to pick a service. It discovers the capability catalog, selects a bounded capability, requests a scoped token, invokes the selected service, and renders the result.

The dbt edge in the diagram is a transformation flow, not a separate dbt datastore. Raw CRM data is loaded into Postgres, dbt materializes governed marts in Postgres, and both the ANIP service adapters and BI tools read those modeled tables.

Service topology

ServiceResponsibilityExample capabilities
gtm-pipeline-servicePipeline, forecast, bottleneck, product, team, risk, and write-adjacent preparation previews.gtm.pipeline_summary, gtm.account_risk_summary, gtm.prepare_reassignment_plan
gtm-enrichment-serviceAccount enrichment and lookalike account context.gtm.account_enrichment_summary, gtm.lookalike_accounts
gtm-prioritization-serviceLead/account scoring, prioritization, and routing previews.gtm.score_leads, gtm.route_leads
gtm-outreach-serviceDraft-only outreach content and response variants.gtm.draft_outreach_message, gtm.prioritized_outreach_draft

The four-service topology is intentional. It proves ANIP can represent multi-service domains without hiding all behavior behind one generic tool.

Data substrate

The data path is:

Maven CRM CSV files
-> Postgres raw schema
-> dbt staging and mart models materialized in Postgres
-> ANIP service adapters, Cube, and Metabase verification

The dbt models provide repeatable GTM slices such as pipeline stage summary, forecast summary, risk accounts, product pipeline, sales team performance, and account enrichment.

Cube is included as a semantic layer for aggregate GTM concepts. Metabase is included as a human-verifiable BI surface over the same modeled data.

Runtime boundary

The generated services own:

  • capability discovery,
  • scoped token validation,
  • input resolution behavior,
  • approval-required outcomes,
  • denial and restriction outcomes,
  • audit shape,
  • generated runtime substrate.

The custom bundles own:

  • backend adapter logic,
  • GTM-specific data access,
  • language-specific integration seams,
  • actor and approval helper implementations.

The bundles must not mutate the public ANIP contract.

Why Metabase is present

Metabase is not the agent interface. It is a verification surface.

It lets users inspect the same governed GTM slices the agent sees, without trusting the agent output blindly and without writing SQL joins by hand.