Skip to main content

Structured Data & Intelligence Tokens

15 min read

15 min read

Structured Data & Intelligence Tokens

Reading time: 15 minutes

TLDR

Every Surmado report includes structured JSON for programmatic access. Signal tokens contain AI visibility metrics and competitor data. Scan tokens include performance scores and technical issues. Solutions tokens have strategic recommendations and financial modeling. Integrate with Notion, Airtable, Google Sheets, Zapier, or custom tools. Track metrics over time, automate reports, build dashboards, or trigger alerts when visibility drops. A REST API is coming soon for full automation.


REST API coming soon. But you don’t have to wait. Every Surmado report already includes structured JSON for programmatic access.

What Are Intelligence Tokens?

Intelligence Tokens are structured JSON payloads included with every Signal, Scan, and Solutions report. They contain machine-readable data you can integrate into:

  • Dashboards (Notion, Airtable, Retool, custom React apps)
  • Automation workflows (Zapier, Make, n8n)
  • Internal tools (CRMs, project management, BI platforms)
  • Custom agents (AI assistants, monitoring bots, Slack integrations)

Where to find them: Every report includes a data.json file alongside the PDF.

Format: Standard JSON with consistent schemas versioned for backward compatibility.

Signal Intelligence Token

Token prefix: SIG-* Purpose: AI visibility metrics, persona analysis, competitive positioning, and ghost influence measurement.

Schema Structure

{
  "token": "SIG-2025-11-A7K3Q",
  "generated_at": "2025-11-08T23:45:12.456789+00:00",
  "report_metadata": {
    "confidence_score": 85.3,
    "schema_version": "2.0"
  },
  "entity_context": {
    "business_name": "Acme Coffee Roasters",
    "industry": "Food & Beverage",
    "target_audience": "Coffee enthusiasts",
    "competitive_set": ["Starbucks", "Blue Bottle", "Intelligentsia"]
  },
  "visibility_metrics": {
    "presence_score": 34.2,
    "ghost_influence_percentage": 48.3,
    "attributed_mentions": 12,
    "unattributed_mentions": 17
  },
  "competitive_position": {
    "rank": 4,
    "total_competitors": 12
  },
  "platform_variance": {
    "chatgpt": {
      "presence_score": 42.1,
      "attributed_mentions": 5,
      "unattributed_mentions": 7,
      "sample_responses": ["..."]
    },
    "claude": {
      "presence_score": 38.5,
      "attributed_mentions": 3,
      "unattributed_mentions": 4
    },
    "gemini": { "..." },
    "deepseek": { "..." },
    "meta_ai": { "..." },
    "grok": { "..." }
  },
  "perception_analysis": {
    "primary_associations": ["specialty coffee", "local roasting", "sustainable sourcing"],
    "sentiment_distribution": {
      "positive": 67.4,
      "neutral": 28.3,
      "negative": 4.3
    },
    "strength_signals": ["ethical sourcing", "small batch quality"],
    "weakness_signals": ["limited retail presence", "higher price point"]
  },
  "strategic_signals": {
    "visibility_opportunities": [
      {
        "platform": "chatgpt",
        "gap": "Location-based queries underrepresented",
        "recommendation": "Optimize Google Business Profile with neighborhood keywords",
        "estimated_impact": "high"
      }
    ],
    "competitive_threats": [
      {
        "competitor": "Blue Bottle",
        "platform": "claude",
        "advantage": "Brand recognition in 'premium coffee' queries",
        "mitigation": "Emphasize direct trade relationships and roast-date freshness"
      }
    ]
  },
  "evidence_samples": [
    {
      "platform": "chatgpt",
      "query": "best specialty coffee roasters in Portland",
      "response_excerpt": "...",
      "attribution_type": "named",
      "rank": 3
    }
  ],
  "persona_details": {
    "persona_name": "Coffee enthusiast seeking single-origin beans",
    "query_variations_tested": 24,
    "platforms_tested": 6,
    "test_parameters": {
      "geographic_focus": "Portland metro area",
      "price_sensitivity": "willing to pay premium for quality",
      "values": ["sustainability", "transparency", "craftsmanship"]
    }
  },
  "test_queries": [
    "best specialty coffee roasters in Portland",
    "where to buy single-origin Ethiopian coffee",
    "sustainable coffee roasters near me"
  ],
  "market_context": {
    "industry_trends": ["direct trade transparency", "micro-lot offerings"],
    "seasonal_factors": "Testing conducted during peak holiday gifting season",
    "competitive_intensity": "high"
  },
  "baseline_metrics": {
    "previous_presence_score": 28.7,
    "change_since_last_report": "+5.5",
    "trend": "improving"
  },
  "preview_content": [
    "Presence score: 34.2 (↑5.5 from last report)",
    "Ghost influence: 48.3% of relevant mentions don't name you",
    "Competitive rank: #4 of 12 in category",
    "Strongest platform: ChatGPT (42.1 presence)",
    "Top opportunity: Location-based query optimization"
  ]
}

Key Fields Explained

visibility_metrics.presence_score: 0-100 score measuring how often your business appears in AI responses to relevant queries. Higher = more visible.

visibility_metrics.ghost_influence_percentage: Percentage of relevant mentions where AI describes your value proposition or features without naming you. High ghost influence = you’re educating the market but competitors capture attribution.

competitive_position.rank: Your position relative to competitors in the same category. Rank 1 = most mentioned.

platform_variance: Breakdown by AI platform (ChatGPT, Claude, Gemini, etc.) showing where you’re strongest and weakest.

strategic_signals.visibility_opportunities: Actionable recommendations ranked by estimated impact.

Common Use Cases

Dashboard integration: Pull presence_score, ghost_influence_percentage, and competitive_position.rank to track AI visibility over time.

Alerting: Monitor baseline_metrics.trend and trigger alerts if presence score drops >10 points.

Competitive intelligence: Compare your platform_variance to competitors’ Signal reports to identify platform-specific gaps.

Content strategy: Use perception_analysis.weakness_signals to guide content creation and FAQ optimization.


Scan Intelligence Token (Scan)

Token prefix: SCAN-* Purpose: Technical SEO audit data, performance metrics, accessibility scores, and prioritized action items.

Schema Structure

{
  "metadata": {
    "token": "SCAN-2025-11-A7K9P",
    "url": "https://www.example.com",
    "tier": "premium",
    "run_id": "pulse-20251108-143022",
    "product": "pulse",
    "version": "1.0",
    "created_at": "2025-11-08T14:30:22.445Z"
  },
  "audit_data": {
    "site_metrics": {
      "total_pages": 48,
      "crawled_pages": 48,
      "avg_word_count": 1247,
      "pages_with_schema": 42,
      "missing_titles": 0,
      "duplicate_titles": 3,
      "images_without_alt": 15,
      "broken_links": 2,
      "redirect_chains": 1
    },
    "lighthouse": {
      "performance_score": 87,
      "seo_score": 95,
      "accessibility_score": 92,
      "best_practices_score": 88,
      "first_contentful_paint": 1.2,
      "largest_contentful_paint": 2.1,
      "cumulative_layout_shift": 0.05,
      "total_blocking_time": 150
    },
    "accessibility": {
      "pa11y_errors": 8,
      "pa11y_warnings": 23,
      "combined_score": 86,
      "critical_issues": [
        {
          "code": "WCAG2AA.Principle1.Guideline1_3.1_3_1.H49.I",
          "message": "<i> element used for icon, should use aria-label",
          "selector": ".nav-icon",
          "impact": "moderate"
        }
      ]
    },
    "enrichment": {
      "page_analysis": {
        "high_priority_pages": [
          {
            "url": "/",
            "title": "Homepage",
            "recommendations": [
              "Add FAQ schema to address common queries",
              "Optimize hero image LCP (currently 2.8s)"
            ]
          }
        ]
      },
      "link_analysis": {
        "internal_link_distribution": "uneven",
        "orphaned_pages": 2,
        "deep_pages_low_authority": 5
      },
      "schema_strategist": {
        "schemas_found": ["Organization", "WebSite", "BreadcrumbList"],
        "schemas_missing": ["FAQPage", "LocalBusiness"],
        "validation_errors": [
          {
            "type": "Organization",
            "field": "logo",
            "error": "Invalid URL format"
          }
        ]
      },
      "content_inventory": {
        "thin_content_pages": 3,
        "keyword_cannibalization": [
          {
            "keyword": "best coffee beans",
            "competing_pages": ["/shop/beans", "/blog/coffee-guide"],
            "recommendation": "Consolidate or differentiate targeting"
          }
        ]
      },
      "competitor_analysis": {
        "competitors_analyzed": ["bluebottle.com", "intelligentsia.com"],
        "your_advantages": ["Faster load times", "Better mobile UX"],
        "their_advantages": ["more thorough with 150+ checks schema", "Higher blog frequency"]
      },
      "upstream_research": {
        "industry_benchmarks": {
          "avg_performance_score": 72,
          "avg_accessibility_score": 78,
          "your_vs_average": {
            "performance": "+15",
            "accessibility": "+14"
          }
        }
      },
      "content_gap_analysis": {
        "suggested_topics": [
          "Coffee brewing methods comparison",
          "Single-origin vs blend guide",
          "Roast profile differences explained"
        ],
        "rationale": "Competitors rank for these queries but you have no content"
      }
    },
    "pages": [
      {
        "url": "https://www.example.com/",
        "title": "Homepage",
        "status_code": 200,
        "word_count": 1850,
        "meta_description": "...",
        "h1_tags": ["Acme Coffee Roasters"],
        "schema_types": ["Organization", "WebSite"],
        "performance": {
          "lcp": 2.1,
          "cls": 0.05
        },
        "issues": [
          {
            "severity": "medium",
            "type": "image_optimization",
            "message": "Hero image not lazy-loaded",
            "recommendation": "Add loading='lazy' attribute"
          }
        ]
      }
    ]
  }
}

Key Fields Explained

lighthouse.performance_score: 0-100 Lighthouse performance score. Industry average: 65-75 for e-commerce sites.

site_metrics.images_without_alt: Number of images missing alt text (SEO + accessibility issue).

enrichment.schema_strategist: Schema.org validation and recommendations for structured data.

enrichment.content_gap_analysis: Topics competitors rank for but you don’t cover. SEO opportunity areas.

pages[].issues: Granular issues per page with severity and actionable recommendations.

Common Use Cases

CI/CD integration: Run Scan in your deployment pipeline and fail builds if lighthouse.performance_score < 80.

Monitoring: Track lighthouse.performance_score and accessibility.combined_score over time in a time-series database.

Issue tracking: Parse pages[].issues and auto-create Jira/Linear tickets for dev team.

Reporting: Pull site_metrics summary for executive dashboards showing SEO health.


Solutions Intelligence Token

Token prefix: SOLUTIONS-* Purpose: Strategic planning output, prioritized action items, adversarial debate synthesis, and decision frameworks.

Schema Structure

{
  "token": "SOLUTIONS-2025-11-A7K3Q",
  "generated_at": "2025-11-08T23:45:12.456789+00:00",
  "business_name": "Acme Coffee Roasters",
  "decision": "Should we expand from local farmers markets to e-commerce?",
  "todo_list": [
    {
      "priority": 1,
      "action": "Validate e-commerce demand with 2-week pre-order test",
      "rationale": "CFO AI flagged cash flow risk of inventory investment. Test market demand before committing capital.",
      "estimated_effort": "1-3 days",
      "impact": "high",
      "owner_role": "Marketing",
      "dependencies": [],
      "success_criteria": "Achieve 50+ pre-orders to justify inventory investment"
    },
    {
      "priority": 2,
      "action": "Calculate true unit economics including shipping costs",
      "rationale": "Market Realist AI noted competitors use free shipping thresholds. Need to model margin impact.",
      "estimated_effort": "1 day",
      "impact": "high",
      "owner_role": "Finance",
      "dependencies": [],
      "success_criteria": "Confirm >30% margin after shipping at $35+ order value"
    },
    {
      "priority": 3,
      "action": "Research coffee subscription platform integrations (Trade, Driftaway)",
      "rationale": "Game Theorist AI suggested partnering vs competing. Explore white-label options.",
      "estimated_effort": "2-3 days",
      "impact": "medium",
      "owner_role": "Partnerships",
      "dependencies": [],
      "success_criteria": "Identify 2-3 viable platform partnerships with <15% commission"
    },
    {
      "priority": 4,
      "action": "Audit fulfillment capacity: Can we ship 100 orders/week?",
      "rationale": "COO AI raised operational risk of overwhelming current team during peak season.",
      "estimated_effort": "1 day",
      "impact": "high",
      "owner_role": "Operations",
      "dependencies": [],
      "success_criteria": "Document current capacity + identify bottlenecks"
    },
    {
      "priority": 5,
      "action": "Create content strategy for 'coffee education' blog",
      "rationale": "Upstream research showed competitors win on educational content. Build SEO moat.",
      "estimated_effort": "1 week",
      "impact": "medium",
      "owner_role": "Marketing",
      "dependencies": [1],
      "success_criteria": "Publish 3 comprehensive guides (brewing methods, origins, roast profiles)"
    },
    {
      "priority": 6,
      "action": "Build Minimum Viable Storefront (Shopify or WooCommerce)",
      "rationale": "After validating demand (Priority 1), launch simple store. Avoid custom dev.",
      "estimated_effort": "2 weeks",
      "impact": "high",
      "owner_role": "Engineering",
      "dependencies": [1, 2],
      "success_criteria": "Live storefront with 5 SKUs, payment processing, shipping integration"
    },
    {
      "priority": 7,
      "action": "Model customer acquisition cost (CAC) for paid ads",
      "rationale": "CFO AI noted farmers market CAC is $0 (foot traffic). Need to budget for online ads.",
      "estimated_effort": "2-3 days",
      "impact": "medium",
      "owner_role": "Marketing",
      "dependencies": [2],
      "success_criteria": "Target CAC <$25 with LTV >$75 (3x ratio)"
    },
    {
      "priority": 8,
      "action": "Set decision checkpoint: Launch vs pivot based on pre-order results",
      "rationale": "Chief Strategist AI synthesis: Use Priority 1 results to decide go/no-go.",
      "estimated_effort": "1 day",
      "impact": "critical",
      "owner_role": "Leadership",
      "dependencies": [1, 2, 4],
      "success_criteria": "Decision made by [specific date] based on pre-order data"
    }
  ],
  "summary": {
    "total_actions": 8,
    "high_priority": 4,
    "medium_priority": 3,
    "critical_priority": 1,
    "has_financial_analysis": true,
    "has_risk_mitigation": true,
    "estimated_total_effort": "4-6 weeks",
    "decision_framework": "Staged validation approach with clear go/no-go gates"
  },
  "adversarial_debate_summary": {
    "cfo_concerns": [
      "Inventory cash flow risk without demand validation",
      "Shipping costs erode margins below 30% threshold",
      "Customer acquisition cost unknown for paid channels"
    ],
    "coo_concerns": [
      "Current team capacity maxed at 100 orders/week",
      "Peak season overlap with farmers market commitments",
      "Fulfillment process not documented or systemized"
    ],
    "market_realist_concerns": [
      "Competitors offer free shipping (you can't at current scale)",
      "Educational content gap vs established brands",
      "Price positioning unclear (premium vs accessible)"
    ],
    "game_theorist_insights": [
      "Partnering with existing platforms reduces upfront investment",
      "Competitors may respond with farmers market presence if you succeed online",
      "First-mover advantage in 'local + online' hybrid model"
    ],
    "chief_strategist_synthesis": "Launch is feasible but only after validating demand and unit economics. Staged approach reduces risk: (1) Pre-order test, (2) MVP storefront, (3) Scale based on results. Avoid premature inventory investment."
  },
  "monte_carlo_scenarios": {
    "methodology": "10,000 simulations varying demand, CAC, and margin assumptions",
    "outcomes": {
      "success_rate": 62,
      "breakeven_12mo": 62,
      "breakeven_18mo": 28,
      "failure_24mo": 10
    },
    "key_risk_factors": [
      "Customer acquisition cost variance (if CAC >$40, failure risk jumps to 35%)",
      "Shipping cost assumptions (free shipping threshold impacts margin by 12-18%)",
      "Fulfillment bottleneck (unable to scale beyond 100 orders/week without hiring)"
    ],
    "recommendation": "Secure 18-month runway, not 12-month. Model includes 28% of scenarios requiring extended breakeven timeline."
  },
  "evidence_citations": [
    {
      "claim": "Competitors use free shipping thresholds",
      "source": "Analysis of Blue Bottle, Intelligentsia, and Stumptown pricing",
      "data": "Free shipping at $40+, $35+, and $50+ respectively"
    },
    {
      "claim": "Educational content drives SEO for coffee brands",
      "source": "SEMrush analysis of top 10 specialty coffee sites",
      "data": "Average 12 educational blog posts ranking for 'how to brew' queries"
    }
  ]
}

Key Fields Explained

todo_list[].priority: 1 = highest priority. Order represents logical sequence and dependencies.

todo_list[].dependencies: Array of priority numbers this action depends on. Used for project management sequencing.

adversarial_debate_summary: Condensed view of concerns raised by each AI perspective (CFO, COO, Market Realist, Game Theorist) and final synthesis.

monte_carlo_scenarios: Probabilistic stress testing results showing likelihood of success/failure under varying assumptions.

evidence_citations: Sources backing key claims and recommendations. Transparency into reasoning.

Common Use Cases

Project management: Import todo_list into Linear, Asana, or Notion with priorities and dependencies pre-mapped.

Decision tracking: Store Solutions tokens in your strategy repository to document why decisions were made.

Board reporting: Pull summary and monte_carlo_scenarios to show executive team how strategy was stress-tested.

Knowledge management: Index evidence_citations to build institutional memory of strategic research.


Accessing Intelligence Tokens

Via Email

When your report is ready, you’ll receive an email with two attachments:

  1. report.pdf - Human-readable report
  2. data.json - Machine-readable intelligence token

Via Surmado Dashboard

Navigate to Reports → Select your report → Download JSON

Future: REST API

We’re building a REST API to query reports programmatically:

# Coming soon
GET /v1/reports/{reportId}
GET /v1/reports?business_name=Acme&type=signal
POST /v1/reports/signal

Want early access? Email api@surmado.com with your use case.


Intelligence Token Schemas

The complete schemas for Signal, Scan, and Solutions tokens are documented above. Each token type has its own structure optimized for different use cases.

Schema Versioning

Intelligence Token schemas follow semantic versioning:

  • Major version (e.g., 1.0 → 2.0): Breaking changes. Field removals or type changes.
  • Minor version (e.g., 2.0 → 2.1): Additive changes. New fields added, backward compatible.
  • Patch version (e.g., 2.1.0 → 2.1.1): Bug fixes. No schema changes.

Current versions:

  • Signal: 2.0
  • Scan: 1.0
  • Solutions: 1.0

Backward compatibility: We maintain compatibility for 12 months after major version releases. Your integrations won’t break.


Integration Examples

Notion Dashboard

// Parse Signal token and create Notion database entry
const signalData = JSON.parse(fs.readFileSync('data.json', 'utf8'));

await notion.pages.create({
  parent: { database_id: 'YOUR_DATABASE_ID' },
  properties: {
    'Business Name': { title: [{ text: { content: signalData.entity_context.business_name } }] },
    'Presence Score': { number: signalData.visibility_metrics.presence_score },
    'Ghost Influence': { number: signalData.visibility_metrics.ghost_influence_percentage },
    'Competitive Rank': { number: signalData.competitive_position.rank },
    'Report Date': { date: { start: signalData.generated_at } },
    'Token': { rich_text: [{ text: { content: signalData.token } }] }
  }
});

Zapier Webhook

// Trigger Zapier workflow when presence score drops
const currentScore = signalData.visibility_metrics.presence_score;
const previousScore = signalData.baseline_metrics.previous_presence_score;

if (currentScore < previousScore - 10) {
  await fetch('https://hooks.zapier.com/hooks/catch/YOUR_WEBHOOK/', {
    method: 'POST',
    body: JSON.stringify({
      alert: 'Presence score dropped significantly',
      business: signalData.entity_context.business_name,
      current_score: currentScore,
      previous_score: previousScore,
      drop: previousScore - currentScore
    })
  });
}

Linear Issue Creation (Scan)

// Auto-create Linear issues from Scan findings
const scanData = JSON.parse(fs.readFileSync('data.json', 'utf8'));

for (const page of scanData.audit_data.pages) {
  for (const issue of page.issues.filter(i => i.severity === 'high')) {
    await linearClient.createIssue({
      teamId: 'YOUR_TEAM_ID',
      title: `[SEO] ${issue.type}: ${page.url}`,
      description: `**Issue**: ${issue.message}\n\n**Recommendation**: ${issue.recommendation}\n\n**Page**: ${page.url}`,
      priority: 1,
      labels: ['seo', 'technical-debt']
    });
  }
}

Example 4: Google Sheets Time-Series Tracking

// Append Signal scores to Google Sheets for time-series tracking
const { GoogleSpreadsheet } = require('google-spreadsheet');
const doc = new GoogleSpreadsheet('YOUR_SHEET_ID');

await doc.useServiceAccountAuth(credentials);
await doc.loadInfo();

const sheet = doc.sheetsByIndex[0];
await sheet.addRow({
  'Date': signalData.generated_at,
  'Business': signalData.entity_context.business_name,
  'Presence Score': signalData.visibility_metrics.presence_score,
  'Ghost Influence': signalData.visibility_metrics.ghost_influence_percentage,
  'Rank': signalData.competitive_position.rank,
  'ChatGPT Score': signalData.platform_variance.chatgpt.presence_score,
  'Claude Score': signalData.platform_variance.claude.presence_score
});

Quick Answers

What is an Intelligence Token?

Intelligence Token = Your unique code (format: SIG-2025-11-XXXXX, SCAN-2025-11-XXXXX, or SOLUTIONS-2025-11-XXXXX) that unlocks structured JSON data from your Surmado report.

Why it’s valuable:

  • Programmatic access: Parse report data into your tools (Notion, Linear, Google Sheets)
  • Automation: Build workflows that trigger on new reports
  • Time-series tracking: Store historical data for trend analysis
  • Team sharing: Give token to developers/analysts for integration work

Where you get it: Included in every Surmado report (PDF + JSON)


How do I access my Intelligence Token?

3 ways to get your token:

  1. Email receipt: Token included in order confirmation

    • Subject: “Your Surmado [Signal/Scan/Solutions] Report”
    • Body: Download link to JSON file containing token
  2. PDF report: Token printed on first page

    • Format: Token: SIG-2025-11-A7K3Q
    • Valid until: [Expiration date]
  3. Dashboard (coming soon): View all tokens in account history

Token lifespan: 90 days from generation date


Can I use Intelligence Tokens with Zapier?

Yes! Example Zapier workflow:

Trigger: New email from support@surmado.com with “Report” in subject Action 1: Extract JSON attachment Action 2: Parse visibility_metrics.presence_score Action 3: Create Notion database entry with scores Action 4: Send Slack notification if presence_score < 10%

Common integrations:

  • Notion: Auto-populate marketing dashboard
  • Linear: Create tasks for low-scoring issues
  • Google Sheets: Time-series tracking
  • Slack: Alert team on visibility changes

See integration examples →


Do Intelligence Tokens expire?

Yes: 90 days from generation

Why expiration?:

  • AI platforms change data sources frequently
  • Scores drift over time (competitor movement, algorithm updates)
  • Fresh data = accurate strategy

What happens after expiration:

  • Token still works for historical reference
  • Solutions recommendations based on expired token may be outdated
  • Re-run report to get fresh token + updated scores

Best practice: Run Signal quarterly (every 90 days) for continuous tracking


What’s the difference between SIG, SCAN, and SOLUTIONS tokens?

Different schemas for different products:

*SIG- (Signal tokens)**:

  • Schema: AI visibility metrics (presence_score, ghost_influence, platform_variance)
  • Use case: Track AI discoverability over time
  • Example: SIG-2025-11-A7K3Q

*SCAN- (Scan tokens)**:

  • Schema: Technical SEO metrics (lighthouse, schema_validation, accessibility)
  • Use case: Monitor site health, track Core Web Vitals
  • Example: SCAN-2025-11-A7K9P

*SOLUTIONS- (Solutions tokens)**:

  • Schema: Strategic recommendations (todo_list, priority, rationale)
  • Use case: Integrate action items into project management tools
  • Example: SOLUTIONS-2025-11-A7K3Q

All tokens: JSON format, 90-day validity, included in every report

See schema documentation →


Does Surmado have a REST API?

Current state: No REST API yet

What’s available now:

  • Intelligence Tokens (structured JSON with every report)
  • Manual report generation (via website)
  • JSON export for automation

REST API roadmap (coming 2025):

  • POST /signal - Generate Signal report programmatically
  • GET /reports/:id - Retrieve report by ID
  • GET /reports - List all reports
  • Webhooks - Get notified when report completes

Early access: Email api@surmado.com to join waitlist


Can I automate Signal reports?

Not yet via API, but workarounds exist:

Option 1: Manual + Zapier integration

  1. Manually run Signal report monthly
  2. Zapier detects email with JSON attachment
  3. Auto-parses and sends to Notion/Sheets/Linear

Option 2: Bulk purchase + manual trigger

  1. Buy 10 Signal reports upfront
  2. Run manually quarterly
  3. Integrate JSON outputs via Zapier

Option 3: Wait for REST API (2025)

  • Fully automated monthly reports
  • Webhook notifications when complete
  • No manual triggering needed

Best for now: Option 1 (manual + Zapier)


Need Help?

Questions about schema fields? Check our FAQ or email support@surmado.com.

Building an integration? We’d love to hear about it! Share your use case at api@surmado.com.

Want the REST API sooner? Email api@surmado.com to join the early access waitlist.

Help Us Improve This Article

Know a better way to explain this? Have a real-world example or tip to share?

Contribute and earn credits:

  • Submit: Get $25 credit (Signal, Scan, or Solutions)
  • If accepted: Get an additional $25 credit ($50 total)
  • Plus: Byline credit on this article
Contribute to This Article