'Reference architecture for Clari revenue intelligence integrations. Use when designing a forecast data platform, planning Clari integration architecture, or establishing team patterns for revenue analytics. Trigger with phrases like \"clari architecture\", \"clari data platform\", \"clari integration design\", \"clari best practices\". '
Scanned 9/12/2026
Install to Claude Code
npx -y skills add thedixitjain/the-mega-skill-library --skill clari-reference-architecture --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Clari Reference Architecture?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/thedixitjain-clari-reference-architecture)More formats (shields.io, HTML) on the badges page.
---
name: clari-reference-architecture
description: "'Reference architecture for Clari revenue intelligence integrations. Use when designing a forecast data platform, planning Clari integration architecture, or establishing team patterns for revenue analytics. Trigger with phrases like \"clari architecture\", \"clari data platform\", \"clari integration design\", \"clari best practices\". '"
allowed-tools: "Read, Write, Edit, Grep"
category: engineering-core
source_repo: jeremylongshore/claude-code-plugins-plus-skills
source_path: "plugins/saas-packs/clari-pack/skills/clari-reference-architecture/SKILL.md"
source_url: https://github.com/jeremylongshore/claude-code-plugins-plus-skills/blob/HEAD/plugins/saas-packs/clari-pack/skills/clari-reference-architecture/SKILL.md
---
# Clari Reference Architecture
## Overview
Production architecture for Clari revenue intelligence integrations: export pipeline design, data warehouse schema, analytics layer, and alerting.
## Architecture Diagram
```
┌──────────────┐ ┌─────────────────┐ ┌──────────────────┐
│ Clari App │ │ Clari Export │ │ Data Warehouse │
│ (SaaS) │────▶│ API (v4) │────▶│ (Snowflake/BQ) │
└──────────────┘ └─────────────────┘ └────────┬─────────┘
│
┌─────────────────┐ ┌────────▼─────────┐
│ Change │ │ Analytics / │
│ Detection │────▶│ Dashboard │
└─────────────────┘ │ (Looker/Metabase)│
│ └──────────────────┘
┌──────▼──────────┐
│ Alerts │
│ (Slack/Email) │
└─────────────────┘
```
## Project Structure
```
clari-data-platform/
├── src/
│ ├── clari_client.py # API client wrapper
│ ├── export_pipeline.py # ETL pipeline
│ ├── change_detector.py # Forecast change tracking
│ ├── models.py # Data models
│ └── config.py # Environment config
├── dags/
│ └── clari_export_dag.py # Airflow DAG
├── sql/
│ ├── schema.sql # Warehouse table definitions
│ ├── merge.sql # Upsert logic
│ └── analytics/
│ ├── forecast_accuracy.sql
│ ├── pipeline_coverage.sql
│ └── rep_performance.sql
├── tests/
│ ├── fixtures/ # Sample API responses
│ ├── test_pipeline.py
│ └── test_change_detector.py
├── scripts/
│ ├── run_export.sh
│ └── validate_schema.py
└── monitoring/
├── alerts.yaml # Alert rules
└── dashboard.json # Grafana/Looker config
```
## Data Warehouse Schema
```sql
-- Core tables
CREATE TABLE clari_forecasts (
id BIGINT GENERATED ALWAYS AS IDENTITY,
owner_name VARCHAR NOT NULL,
owner_email VARCHAR NOT NULL,
forecast_amount DECIMAL(15,2),
quota_amount DECIMAL(15,2),
crm_total DECIMAL(15,2),
crm_closed DECIMAL(15,2),
adjustment_amount DECIMAL(15,2),
time_period VARCHAR NOT NULL,
forecast_name VARCHAR NOT NULL,
exported_at TIMESTAMP NOT NULL,
PRIMARY KEY (owner_email, time_period, forecast_name, exported_at)
);
-- Change tracking
CREATE TABLE clari_forecast_changes (
id BIGINT GENERATED ALWAYS AS IDENTITY,
owner_email VARCHAR NOT NULL,
time_period VARCHAR NOT NULL,
previous_amount DECIMAL(15,2),
current_amount DECIMAL(15,2),
change_pct DECIMAL(5,2),
detected_at TIMESTAMP NOT NULL
);
-- Analytics views
CREATE VIEW v_forecast_accuracy AS
SELECT
time_period,
owner_name,
forecast_amount,
crm_closed AS actual_closed,
ROUND((1 - ABS(forecast_amount - crm_closed) / NULLIF(forecast_amount, 0)) * 100, 1) AS accuracy_pct
FROM clari_forecasts
WHERE exported_at = (SELECT MAX(exported_at) FROM clari_forecasts f2 WHERE f2.time_period = clari_forecasts.time_period);
```
## Key Design Decisions
| Decision | Choice | Rationale |
|----------|--------|-----------|
| Export frequency | Daily | Balances freshness vs API load |
| Data format | JSON export | Structured, easy to parse |
| Pipeline orchestration | Airflow | Retry, monitoring, DAG visualization |
| Change detection | Snapshot comparison | Clari has no real-time webhooks |
| Warehouse | Snowflake | SQL analytics, dbt compatibility |
## Resources
- [Clari Developer Portal](https://developer.clari.com)
- [Clari API Reference](https://developer.clari.com/documentation/external_spec)
- [Snowflake Documentation](https://docs.snowflake.com)
## Next Steps
This completes the Clari skill pack. Start with `clari-install-auth` for new integrations.
---
**Source:** [`jeremylongshore/claude-code-plugins-plus-skills`](https://github.com/jeremylongshore/claude-code-plugins-plus-skills) → `plugins/saas-packs/clari-pack/skills/clari-reference-architecture/SKILL.md`
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!