Back to daily | Back to connection status

Site Setup Guide

AI evidence page

Return to /daily for daily decisions

  1. AI runs collection, analysis, drafting, and queueing from the daily pipeline.
  2. Humans only approve, reject, or request edits from Today's decisions.
  3. Site setup is connector configuration evidence for administrators. AI can operate only after Shopify, GSC, GA4, Trends, competitors, and video safeguards are configured; daily decisions stay in /daily.

Use this page to understand what AI did; do not use it as the normal daily operating path.

PetVibess · petvibess.com. Secret references and private keys are not displayed.

Configure Shopify

Paste only the token reference name. Daily sales, amount and order-link sync require read_orders; publishing product SEO updates requires review plus write_products.

Configure GSC

Paste only the secret reference name, not the JSON private key. URL Inspection requires Full or Owner permission in Search Console.

Configure GA4

Use this after the service account has access to the GA4 property. GrowthOS stores only the reference name.

Configure Trends

Use comma or newline separated keywords. Publishing remains gated by admin review.

Configure Competitors

Only public storefront URLs are accepted. GrowthOS stores them with public_only policy and never requests private competitor metrics.

Configure AI & Video Providers

Store only secret reference names such as DEEPSEEK_API_KEY or HEYGEN_API_KEY. Do not paste raw API keys into pages. Video generation can run automatically only after provider, model, key reference, and rights/QA safeguards are configured.

Configure Social Publisher

Store only the Postiz API key reference name. Approved social posts can become dry-run ready here, but final scheduling still requires GrowthOS approval gates.

Configure Video

Reference URLs are stored for structure-only analysis. Source media reuse stays disabled and every generated video remains gated by rights review and admin approval.

ConnectorStatusMissingEndpointRequired fieldsSample payloadCurl template
shopify ready POST /api/config/sites/petvibess/shopify storeDomain, tokenRef
{
  "storeDomain": "example.myshopify.com",
  "tokenRef": "SHOPIFY_TOKEN_REF"
}
curl -X POST /api/config/sites/petvibess/shopify \n  -H "Content-Type: application/json" \n  -d '{
  "storeDomain": "example.myshopify.com",
  "tokenRef": "SHOPIFY_TOKEN_REF"
}'
gsc ready POST /api/config/sites/petvibess/gsc siteUrl, serviceAccountKeyRef
{
  "siteUrl": "sc-domain:example.com",
  "serviceAccountKeyRef": "GSC_SERVICE_ACCOUNT_KEY_REF"
}
curl -X POST /api/config/sites/petvibess/gsc \n  -H "Content-Type: application/json" \n  -d '{
  "siteUrl": "sc-domain:example.com",
  "serviceAccountKeyRef": "GSC_SERVICE_ACCOUNT_KEY_REF"
}'
ga4 blocked verified POST /api/config/sites/petvibess/ga4 propertyId, serviceAccountKeyRef, verified
{
  "propertyId": "123456789",
  "serviceAccountKeyRef": "GA4_SERVICE_ACCOUNT_KEY_REF",
  "verified": true
}
curl -X POST /api/config/sites/petvibess/ga4 \n  -H "Content-Type: application/json" \n  -d '{
  "propertyId": "123456789",
  "serviceAccountKeyRef": "GA4_SERVICE_ACCOUNT_KEY_REF",
  "verified": true
}'
trends ready POST /api/config/sites/petvibess/trends geo, keywords
{
  "geo": "US",
  "keywords": [
    "product keyword",
    "brand keyword"
  ]
}
curl -X POST /api/config/sites/petvibess/trends \n  -H "Content-Type: application/json" \n  -d '{
  "geo": "US",
  "keywords": [
    "product keyword",
    "brand keyword"
  ]
}'
ai blocked textProvider, textApiKeyRef, videoProvider, videoApiKeyRef POST /config/sites/petvibess/setup/ai textProvider, textApiKeyRef, videoProvider, videoApiKeyRef
{
  "textProvider": "deepseek",
  "textModel": "deepseek-chat",
  "textApiKeyRef": "DEEPSEEK_API_KEY",
  "videoProvider": "heygen",
  "videoModel": "avatar_v",
  "videoApiKeyRef": "HEYGEN_API_KEY"
}
curl -X POST /config/sites/petvibess/setup/ai \n  -H "Content-Type: application/json" \n  -d '{
  "textProvider": "deepseek",
  "textModel": "deepseek-chat",
  "textApiKeyRef": "DEEPSEEK_API_KEY",
  "videoProvider": "heygen",
  "videoModel": "avatar_v",
  "videoApiKeyRef": "HEYGEN_API_KEY"
}'
competitors blocked competitors POST /api/config/sites/petvibess/competitors competitors
{
  "competitors": [
    {
      "siteUrl": "https://competitor.example",
      "label": "Competitor"
    }
  ]
}
curl -X POST /api/config/sites/petvibess/competitors \n  -H "Content-Type: application/json" \n  -d '{
  "competitors": [
    {
      "siteUrl": "https://competitor.example",
      "label": "Competitor"
    }
  ]
}'
video blocked defaultAvatarId, avatarConsent POST /api/config/sites/petvibess/video defaultAvatarId, avatarConsent
{
  "defaultAvatarId": "avatar-id",
  "avatarConsent": {
    "likeness": true,
    "voice": true,
    "commercialUse": true
  }
}
curl -X POST /api/config/sites/petvibess/video \n  -H "Content-Type: application/json" \n  -d '{
  "defaultAvatarId": "avatar-id",
  "avatarConsent": {
    "likeness": true,
    "voice": true,
    "commercialUse": true
  }
}'
social pending POST /api/config/sites/petvibess/social provider, baseUrl, apiKeyRef
{
  "provider": "postiz",
  "baseUrl": "https://postiz.example.com",
  "apiKeyRef": "POSTIZ_API_KEY",
  "defaultAccounts": [
    "brand-main"
  ],
  "defaultPlatforms": [
    "instagram_reels"
  ]
}
curl -X POST /api/config/sites/petvibess/social \n  -H "Content-Type: application/json" \n  -d '{
  "provider": "postiz",
  "baseUrl": "https://postiz.example.com",
  "apiKeyRef": "POSTIZ_API_KEY",
  "defaultAccounts": [
    "brand-main"
  ],
  "defaultPlatforms": [
    "instagram_reels"
  ]
}'