System Connections

HVAC Automations · Settings

Identity, integrations, release lineage and theme — read-only truth; changes flow through config + vault, never a web form.

← Growth Command Centre

Tenant identity

Tenant

hvac-automations

Vertical / lifecycle

hvac_startup

onboarding

AWS account

453983326561

us-west-2 · isolation absolute

Origins

https://os.hvacautomations.projectlunar.ai
https://hvacautomations.ca

Identity is server-derived from committed manifests (config/tenants/hvac-automations/) — never from request input. To change branding or labels, edit brand.json and redeploy the artifact; there is deliberately no web form for it.

Integrations — honest gates

IntegrationBacking envStatus
Primary LLM (Apollo route candidate 1)
model gpt-4o
HVAC_LLM_API_KEY
HVAC_LLM_BASE_URL
HVAC_LLM_MODEL
configured
Secondary LLM (Apollo fallback candidate)
vault secret llm-openai-compatible-backup not provisioned
HVAC_LLM2_API_KEY
HVAC_LLM2_BASE_URL
HVAC_LLM2_MODEL
gated / dark
Voice & Chat → assistant adapter loopback
derived shared secret set by bin/start.js when the primary LLM secret exists
HVAC_ASSISTANT_API_KEY
HVAC_ASSISTANT_API_URL
configured
Zoho CRM (lead sync + email automation)
GATED: needs the complete Zoho OAuth set (client_id + client_secret + refresh_token) in vault hvac-automations/zoho-oauth
HVAC_ZOHO_CRM_TOKEN gated / dark
Signed webhook ingress (website leads + call center)
HMAC ingress armed
HVAC_WEBHOOK_SIGNING_SECRET configured
Outbound voice dialing
HELD: live dialing additionally requires CASL/CRTC sign-off on file + supervised canary — never autonomous
HVAC_VOICE_PROVIDER_TOKEN gated / dark

Secrets live only in AWS Secrets Manager (hvac-automations/*), fetched by the instance role at boot. Nothing here displays or accepts a secret value. A gated capability returns an honest 503 — never a faked success.

Dependency contract (health truth)

DependencyKindClassEnv varStatus
database
Tenant Postgres — opportunity capture and revenue pipeline store
postgres required HVAC_DATABASE_URL up
cache
Tenant Redis — session and rate-limit state for Airtight Workflows
redis required HVAC_REDIS_URL up
crm
Zoho CRM OAuth (HVAC org) — opportunity sync + email automation, optional until onboarding completes
zoho-crm optional HVAC_ZOHO_CRM_TOKEN not configured
assistant
Assistant backend (tenant Hermes/openclaw or LLM key) — powers real chat/voice replies. Unset => chat persists history but returns clearly-labelled synthetic replies (sandbox)
llm-agent optional HVAC_ASSISTANT_API_KEY up
voice
Telephony/voice provider token — powers live AI voice calls. Gated: no live call is placed until set AND legal sign-off is recorded
telephony optional HVAC_VOICE_PROVIDER_TOKEN not configured
webhook_ingress
Shared secret for verifying signed inbound call-center webhooks. Unset => ingress rejects all signed traffic (dark)
hmac-secret optional HVAC_WEBHOOK_SIGNING_SECRET up
llm_primary
Primary OpenAI-compatible LLM (vault llm-openai-compatible) — Apollo route candidate 1. Unset => Apollo tasks return honest 503
llm-provider optional HVAC_LLM_API_KEY up
llm_secondary
Secondary OpenAI-compatible LLM (vault llm-openai-compatible-backup) — Apollo fallback candidate. Optional resilience provider
llm-provider optional HVAC_LLM2_API_KEY not configured

Theme tokens (from brand.json — the single theming source)

TokenValue
--color-bg #0f172a
--color-bg-elevated #1d2538
--color-bg-overlay #2b3346
--color-border #31394c
--color-fg #ffffff
--color-fg-muted #b9b9b9
--color-action #ea580c
--color-action-fg #000000
--color-secondary #2563eb
--color-secondary-fg #ffffff