Skip to main content

Deep-Two · no vanity grid

Integration Hub

We do not sell LLM rankings. Nobody can measure them honestly. We sell what can be measured: structure, accessibility, and receipts to prove it. Two pipelines only: agency webhooks and developer CI gates.

Why only two integrations?

Agencies need CRM event firehose. Developers need PR score gates. Wide connector walls without live dispatch destroy trust. Depth over catalog width.

AGENCY PIPELINE

CRM and webhook event sync

POST a real JSON test payload to Zapier, Make, Slack, or any HTTPS webhook. Server SSRF firewall applies. Success is HTTP 2xx from the remote, not a fake timer.

DEVELOPER TOOLCHAIN

GitHub Actions score gate

Copy a workflow that runs @aio-geo/cli on PRs and fails when structural readiness is below your floor. Structural scores only.

name: AIO.GEO Readiness Gate

on:
  pull_request:
  workflow_dispatch:

jobs:
  audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version: "22"

      - name: Run AIO.GEO structural audit
        env:
          AIO_FAIL_UNDER: "70"
        run: |
          set -euo pipefail
          # Open-core CLI: structural readiness only (not LLM rankings)
          npx --yes @aio-geo/cli@latest audit "aiogeoprotocol.com" --json > aio-geo-audit.json || true
          node -e "
            const fs=require('fs');
            let j={};
            try { j=JSON.parse(fs.readFileSync('aio-geo-audit.json','utf8')); } catch {}
            const score = Number(j.overallScore ?? j.score ?? j.aio?.overallAioScore ?? NaN);
            const floor = Number(process.env.AIO_FAIL_UNDER || 70);
            console.log('AIO.GEO score', score, 'floor', floor);
            if (!Number.isFinite(score)) {
              console.error('Could not parse score from CLI JSON. Check @aio-geo/cli output shape.');
              process.exit(1);
            }
            if (score < floor) {
              console.error('Readiness gate failed: score below floor.');
              process.exit(1);
            }
            console.log('Readiness gate passed.');
          "

      - name: Upload audit artifact
        if: always()
        uses: actions/upload-artifact@v4
        with:
          name: aio-geo-audit
          path: aio-geo-audit.json

Commit to .github/workflows/aio-geo.yml

ENTERPRISE CRM · BYOK

Salesforce and HubSpot (real tokens)

Paste live access tokens. We POST to Salesforce and HubSpot over HTTPS from the server. Full tokens stay in this browser tab (sessionStorage). Metadata only (last 4) is stored locally. Tokens are never written to Neon.

Salesforce: Setup → Apps → App Manager → Connected App (OAuth) or use a session / JWT access token. Instance like https://YOURORG.my.salesforce.com
HubSpot: Settings → Integrations → Private Apps → create app with crm.objects.contacts.write (and read for test).
Salesforce Lead
Not tested
HubSpot Contact
Not tested
GOOGLE AUTHORITY

Google Indexing API (BYOK)

Paste a service account JSON with Indexing API access. We mint a real RS256 JWT, exchange a token, and POST URL_UPDATED. Failures return Google error text. No fake 202.