scanned May 17, 2026

Affonso

affonso.io

Affonso provides affiliate software for SaaS companies to launch and manage their affiliate programs

75/100

Tier 4 · Agent-Ready

Content answers70/100
Protocol plumbing88/10014 of 16 checks pass

Scored by asking 15 questions a buyer of a saas product asks, then grading this site’s own pages: answered, hedged (partial or vague), or silent (no page answers it). How scoring works

This report is public. Own affonso.io? Claiming is free: crawl every page, re-audit as you fix, and track your score over time.

Sign in to claim

The fix queue

25 points sit between affonso.io and 100: 11 open questions and 2 missing protocol checks, ordered by estimated payoff.

Point estimates are per fix under scoring v2. They are not additive to a promised total.

01operations · importance mediumGoes silent+7 content pts est.

The daily activity email reports — can I send these to multiple team members with different permission levels, or only to account owners? I need my finance team and marketing lead to get different data slices.

What the pages say

No page on the site addresses this.

The fix

Create documentation for daily/scheduled email reports covering: (1) which report types can be emailed, (2) whether multiple recipients are supported, (3) if permission-scoped data filtering is available for different team roles (finance vs marketing), and (4) whether this is limited to account owners or available to any team member with appropriate permissions.

confidence high · grounding world-knowledge · weight 0.00 · Absent

Hedged · 10 of 15 questions

A buyer gets something, then has to guess the rest. Expand any row for the evidence and the fix.

02We're already using Stripe — does Affonso require Stripe Connect to pay affiliates, or can we use our existing Stripe account without Connect? I want to understand if there are additional Stripe fees or compliance steps.integrationCollapsed+2 pts est.

We're already using Stripe — does Affonso require Stripe Connect to pay affiliates, or can we use our existing Stripe account without Connect? I want to understand if there are additional Stripe fees or compliance steps.

What the pages say

Affonso integrates with Stripe for tracking purchases and calculating commissions, but the chunks do not specify whether Stripe Connect is required or if you can use an existing Stripe account without it. The site mentions connecting your 'Stripe account' generally and shows a 'Stripe Verified Partner' badge, but does not address additional Stripe fees, compliance steps, or the Connect vs. non-Connect distinction. The payout mechanism for affiliates is referenced in a FAQ heading ('How are affiliates paid their commissions?') but the actual content is not retrieved.

The fix

Expand the FAQ sections on the Stripe affiliate program page (especially 'How are affiliates paid their commissions?') to explicitly state whether Stripe Connect is required, what the onboarding steps are, and whether additional Stripe fees apply. The current page shows FAQ headings but no answer content.

Where we looked: /help/getting-started/connect-payment-provider.md, /stripe-affiliate-program.md, /help/commission-payouts/payouts/automating-affiliate-payouts-with-affonso

confidence medium · grounding synthesized · weight 0.65 · Collapsed

03Can I set up automatic affiliate approvals for certain criteria (like email domain or application answers) while manually reviewing others? I need to know if there's conditional logic or if it's all-or-nothing.getting-startedHedges+2 pts est.

Can I set up automatic affiliate approvals for certain criteria (like email domain or application answers) while manually reviewing others? I need to know if there's conditional logic or if it's all-or-nothing.

What the pages say

Affonso offers three program access modes (Public, Private, Invite-Only) that control affiliate approval at the program level, but there is no native conditional logic for automatic approvals based on specific criteria like email domain or application answers. The AI agent feature can automate approval decisions by checking domain authority and audience fit, but this requires using their AI agent system rather than built-in conditional rules. For custom application questions, you can create onboarding forms to gather information, but manual review is still required for Private mode.

The fix

Create a dedicated documentation page explaining whether conditional/auto-approval rules exist, or clarify in the Access Modes documentation that the AI agent is the recommended path for criteria-based approvals.

Where we looked: /changelog/access-modes-portal-improvements.md, /changelog/custom-affiliate-onboarding-form.md, /agents, /agents.md

confidence medium · grounding synthesized · weight 0.65 · Vague

04With the DODO Payments integration, if an affiliate's referral uses a coupon code at checkout, does the affiliate still get credited? I need to know how coupon stacking works with referral attribution.integrationHedges+2 pts est.

With the DODO Payments integration, if an affiliate's referral uses a coupon code at checkout, does the affiliate still get credited? I need to know how coupon stacking works with referral attribution.

What the pages say

Yes, with the DODO Payments integration, affiliates DO get credited when their referral uses a coupon code at checkout. According to the DODO Payments Coupon Management documentation, 'Referrals are automatically tracked and attributed to the correct affiliate' when 'Customers apply codes during DODO checkout.' However, the chunks do not specifically address what happens when a customer uses BOTH an affiliate coupon code AND another coupon code (coupon stacking) — whether both discounts apply, whether one takes precedence, or how attribution works in that specific edge case.

The fix

Add explicit documentation about coupon stacking behavior: clarify whether customers can combine an affiliate coupon with other coupons, which discount takes precedence if not, and whether affiliate attribution still occurs if the affiliate coupon is overridden by another coupon.

Where we looked: /changelog/dodo-payments-coupon-management.md, /llms-full.txt

confidence medium · grounding synthesized · weight 0.65 · Vague

05What's the hard limit on active affiliates per program? I'm planning to scale to 10,000+ affiliates and need to know if there are tiered limits, API throttling, or performance degradation at scale.limitsHedges+2 pts est.

What's the hard limit on active affiliates per program? I'm planning to scale to 10,000+ affiliates and need to know if there are tiered limits, API throttling, or performance degradation at scale.

What the pages say

The site does not specify a hard limit on active affiliates per program. Marketing materials state the platform supports '5 affiliates or 5,000' and '10 affiliates or 10,000' with 'unlimited growth potential,' but no explicit hard cap, tiered limits, or performance degradation thresholds are documented. API rate limits exist but are not detailed in the retrieved chunks—only a mention that they exist at docs.affonso.io/api/introduction. The only specific limit found is an invitation rate limit of 1 invitation per minute per team.

The fix

Add a dedicated limits/scaling page documenting: (1) hard cap on active affiliates per program if any, (2) tiered limits by plan, (3) API rate limit specifics (requests/minute), (4) performance benchmarks or degradation thresholds at 10K+ affiliates.

Where we looked: /affiliate-programs, /agents, /help/managing-affiliates/inviting-new-affiliates.md, /api/introduction

confidence medium · grounding synthesized · weight 0.65 · Vague

06Your changelog mentions fraud monitoring improvements — what specific triggers flag suspicious activity? I need to know if I can customize thresholds (like same-IP signups, conversion time windows, or refund rates) or if it's preset.operationsHedges+2 pts est.

Your changelog mentions fraud monitoring improvements — what specific triggers flag suspicious activity? I need to know if I can customize thresholds (like same-IP signups, conversion time windows, or refund rates) or if it's preset.

What the pages say

Affonso provides seven fraud detection rules that can be set to `off`, `detect` (flag for review), or `block` (prevent action): self-referral, cross-program ban, duplicate payout, suspicious email, banned referral, paid traffic, and blocked country. You can customize thresholds for some rules: `blocked_country_config` accepts a `countries` array (e.g., `["CN", "RU", "NG"]`), `banned_referral_config` accepts configuration objects, and `paid_traffic_config` accepts configuration objects. However, the chunks do not specify the exact trigger thresholds for rules like same-IP signups, conversion time windows, or refund rates — only that these detection types exist and can be configured via the API.

The fix

Document the specific trigger thresholds and parameters for each fraud rule (e.g., what constitutes 'suspicious email', time windows for duplicate payout detection, IP matching logic for self-referral). The API reference shows config objects exist but doesn't explain what fields they accept.

Where we looked: /api/endpoint/program/update-fraud-rules.md, /api/endpoint/program/update-fraud-rules, /api/endpoint/program/get-fraud-rules.md, /help/risk-center/overview.md

confidence medium · grounding synthesized · weight 0.65 · Vague

07The danger zone confirmations — can these be disabled or require dual authorization for my team? I need to prevent accidental deletions but also don't want to be blocked if our admin is unavailable.securityHedges+2 pts est.

The danger zone confirmations — can these be disabled or require dual authorization for my team? I need to prevent accidental deletions but also don't want to be blocked if our admin is unavailable.

What the pages say

Affonso has confirmation dialogs for dangerous actions in the "danger zone" that require typing a confirmation before proceeding (added 18.04.2026). However, the chunks do not specify whether these confirmations can be disabled or configured to require dual authorization. The site mentions a "Reset Program Data action in the danger zone" and that dangerous actions require typed confirmation, but does not address team-level configuration options for the confirmation behavior itself.

The fix

Add documentation on whether danger zone confirmations can be disabled or require dual authorization, including team permission settings and fallback procedures when admins are unavailable.

Where we looked: /changelog/danger-zone-confirmations.md, /llms-full.txt, /llms-full.txt

confidence medium · grounding stated · weight 0.75 · Vague

08For the embedded affiliate dashboard — can I host it on my own subdomain (like affiliates.myapp.com) or does it have to live on an Affonso domain? I need this for brand consistency and SEO.technicalHedges+2 pts est.

For the embedded affiliate dashboard — can I host it on my own subdomain (like affiliates.myapp.com) or does it have to live on an Affonso domain? I need this for brand consistency and SEO.

What the pages say

The chunks clearly document custom domain support for the standalone affiliate portal (hosted at `yoursubdomain.affonso.io` by default, configurable to your own subdomain like `partners.yourbrand.com` via DNS TXT record verification). However, for the embedded affiliate dashboard specifically — which is rendered via iframe inside your app using a token-based integration — the chunks do not explicitly state whether this embedded version can also be served from a custom subdomain. The embedded dashboard documentation focuses on visual customization (themes, colors, languages) and iframe embedding, but does not address custom domain hosting for the embedded variant.

The fix

Add explicit documentation clarifying whether the embedded affiliate dashboard supports custom subdomain hosting (e.g., `affiliates.myapp.com` pointing to Affonso's embedded dashboard) or if it must always be served from `affonso.io` domains even when embedded via iframe. If supported, include DNS/setup instructions specific to the embedded use case.

Where we looked: /help/faq/custom-domain-setup.md, /help/faq/custom-domain-setup.md, /llms-full.txt, /integrations, /api/embedded-dashboard.md, /help/installation-guides/embedded-dashboard.md

confidence medium · grounding synthesized · weight 0.65 · Vague

09The external user ID privacy controls — can affiliates see any customer identifiers beyond the external ID, or is all PII completely masked? I need to comply with GDPR while still giving affiliates useful conversion data.operationsHedges+2 pts est.

The external user ID privacy controls — can affiliates see any customer identifiers beyond the external ID, or is all PII completely masked? I need to comply with GDPR while still giving affiliates useful conversion data.

What the pages say

Affonso lets you disable email and name tracking entirely, using only `externalUserId` for referral matching. When these privacy toggles are disabled, the system explicitly stops storing customer email addresses and names on referrals. However, the chunks do not clarify what affiliates actually see in their dashboard when PII is masked — whether they see only the externalUserId, anonymized data, or no customer identifiers at all. The API docs show affiliates have their own `external_user_id` and `metadata` fields, but don't specify what referral-level customer data is visible to them.

The fix

Add explicit documentation on the affiliate dashboard experience when privacy controls are enabled — specifically, what customer identifiers (if any) affiliates see when email and name tracking are disabled.

Where we looked: /changelog/external-user-id-privacy-controls.md, /llms-full.txt, /api/endpoint/affiliates/create

confidence medium · grounding synthesized · weight 0.65 · Vague

10Your AI agent handles affiliate support — what's the escalation path to human support? I need to know if there's 24/7 human backup, SLA for response times, or if it's AI-only during certain hours.supportHedges+2 pts est.

Your AI agent handles affiliate support — what's the escalation path to human support? I need to know if there's 24/7 human backup, SLA for response times, or if it's AI-only during certain hours.

What the pages say

Affonso offers live chat support via Fernand directly inside the dashboard, available 'instantly from anywhere in the app.' However, the chunks do not specify whether this is 24/7 human support, provide SLA response times, or clarify if there's AI-only coverage during certain hours. The site emphasizes AI agents handling affiliate operations 24/7, with human oversight for sensitive actions like payouts and account changes.

The fix

Add a dedicated support page specifying live chat hours (24/7 or business hours), human vs AI coverage, and any SLA guarantees for response times.

Where we looked: /changelog/fernand-livechat-agent-readiness.md, /agents, /agents

confidence medium · grounding synthesized · weight 0.65 · Vague

11What's the API rate limit for bulk operations — like mass-updating affiliate commission rates or exporting all referral data? I need to know burst limits and if there are different tiers for different endpoints.technicalHedges+2 pts est.

What's the API rate limit for bulk operations — like mass-updating affiliate commission rates or exporting all referral data? I need to know burst limits and if there are different tiers for different endpoints.

What the pages say

Affonso's API rate limits are tiered by subscription plan: Launch (300 requests/minute, 10 burst/second), Growth (600/min, 20/s), Elite (1,200/min, 40/s), and Enterprise (3,000/min, 100/s). These limits apply across the API including MCP requests. However, the chunks do not specify whether bulk operations like mass-updating affiliate commission rates or exporting all referral data have separate rate limits or different burst limits from standard endpoints. The Clicks endpoint mentions 'burst rate limiting for high-frequency tracking' but no specific numbers are given for that endpoint. For data export specifically, the site directs users to email silvestro@affonso.io for manual export rather than using an API endpoint.

The fix

Add explicit documentation on whether bulk operations (batch updates, mass exports) consume standard rate limits or have dedicated quotas, and whether specific endpoints like referrals/list or commissions/bulk-update have different limits than the general tiers.

Where we looked: /api/rate-limits.md, /mcp/setup/other-clients, /api/endpoint/clicks/create, /help/faq/how-to-export-your-affiliate-data.md

confidence medium · grounding synthesized · weight 0.65 · Vague

What the pages already answer cleanly

4 of 15. Answered with enough specificity for a buyer to act on. This is the bar the queue above is chasing.

migrationAnswered

We're migrating from FirstPromoter — what exactly transfers over? I need to know if historical affiliate performance data, existing referral links, and unpaid commission balances come with us or if we start fresh.

What the pages say

When migrating from FirstPromoter, Affonso imports five types of data: (1) **Campaigns → Groups** — each FirstPromoter campaign becomes an affiliate group in Affonso; (2) **Rewards → Incentives** — commission rules (percentage or flat amount, duration, type) are imported as incentives; (3) **Promoters** — name, email, and payout details (PayPal, bank), but only accepted promoters with at least one referral are imported (dormant or pending promoters are skipped); (4) **Referrals** — name, email, customer ID, and status, linked to the correct affiliate automatically; and (5) **Commissions** — sale amounts, commission earnings, currency, and their status (pending, approved, paid, etc.). This means historical affiliate performance data (via promoters, referrals, and commissions), existing referral links (via the referral data with customer IDs), and unpaid commission balances (via commissions with pending/approved status) all transfer over. The migration is idempotent — safe to re-run with no duplicates created.

Source: /llms-full.txt, /help/migration/migrate-from-firstpromoter-to-affonso.md

confidence high · grounding stated · weight 1.00 · Answered

pricingAnswered

I'm comparing affiliate platforms for my SaaS — does Affonso charge a percentage of affiliate commissions earned, or is it purely a flat monthly subscription? I need to know if my costs scale with affiliate payouts.

What the pages say

Affonso charges a flat monthly subscription with no percentage of affiliate commissions earned. The site explicitly states 'No transaction fees' and 'Fair, scalable pricing with no revenue cut.' Plans start at €15/month. The only usage-based fee is a high-volume payout fee: for managed payouts to more than 25 affiliates in a single month, Affonso charges an additional $0.50 per affiliate payout beyond the first 25.

Source: /blog/affonso-affiliate-software-alternatives.md, app.affonso.io, /help/commission-payouts/payouts/automating-affiliate-payouts-with-affonso.md, /blog/best-affiliate-software-for-saas

confidence high · grounding synthesized · weight 0.95 · Answered

integrationAnswered

What specific webhook events does Affonso send — just conversions and payouts, or also affiliate status changes, fraud flags, and commission adjustments? I need this for our internal automation.

What the pages say

Affonso sends webhook events across five categories: (1) Affiliate events: affiliate.created, affiliate.confirmed, affiliate.updated, affiliate.deleted — including status changes; (2) Referral events: new referrals and conversions (referral.converted); (3) Commission/Transaction events: transaction.created, transaction.paid, transaction.rejected — covering created, approved, rejected, and paid commissions; (4) Payout events: payout.created, payout.updated, payout.paid, payout.failed, payout.deleted; and (5) Fraud-related events: transaction.rejected is emitted when transactions are blocked for self-referral fraud or risk flags. The chunks do not explicitly mention 'commission adjustments' as a separate event type, though payout.updated and affiliate.updated cover modifications to payouts and affiliate details respectively.

Source: /llms-full.txt, /help/connect/webhooks.md, /webhooks/events/affiliate, /webhooks/events/payout, /webhooks/examples.md, /llms-full.txt, /help/risk-center/self-referral-detection.md

confidence high · grounding synthesized · weight 0.95 · Answered

operationsAnswered

The affiliate finder that targets competitors' affiliates — how does it identify them and what platforms does it cover? I need to know if it finds YouTube reviewers, newsletter writers, or just traditional blog affiliates.

What the pages say

The Affiliate Finder identifies competitors' affiliates by letting you enter a competitor's website URL, then using AI to scan across platforms to find creators who are already promoting that competitor. The platforms covered include: YouTube (video creators and reviewers), websites/bloggers, Instagram, Reddit, LinkedIn, TikTok, Facebook, X/Twitter, Medium, and Substack. This explicitly covers YouTube reviewers and newsletter writers (via Substack), not just traditional blog affiliates.

Source: /help/getting-started/affiliate-discovery-agent-setup.md, /llms-full.txt, /help/affiliate-finder/what-is-affiliate-finder.md, /affiliate-recruitment.md, /affiliate-finder, /how-to-find-affiliates.md

confidence high · grounding synthesized · weight 0.95 · Answered

Protocol plumbing · 88/10014 of 16 checks pass · each fix +6 protocol pts est.

The other half of the score: 16 checks for the files and headers agents look for. The 2 below are installs, not judgment calls, and most are an afternoon. Expand any for the snippet and the standard it follows. They sit after the queue because none of them changes what your pages say.

OpenAPI specInteraction+6 pts est.

StandardOpenAPI SpecIndustry standard

WebMCP widgetInteraction+6 pts est.

Sitedex generates this file from your crawl. Grab it in Files from this audit below.

StandardW3C WebMCP draftW3C / WHATWG

Already passing 14 of 16: robots.txt, sitemap.xml, llms.txt, AI crawler access, Content signal, Clean crawl, Markdown negotiation, Server-rendered content, MCP card, Canonical URLs, Meta descriptions, HTML lang attribute, Organization schema, Sitemap lastmod.

Ask this site’s index

Sitedex already serves affonso.io as an MCP endpoint. Ask affonso.io anything an AI agent might ask, and see what its index returns. (To score your own site, use the form below.)

Snippets & configs

For developers and the engineer-on-call: copy these into your tools or your site.

Files from this audit

Built from this crawl. Download or copy each, then install it at the path noted.

llms.txt

Built from this crawl. Install at /llms.txt so agents start here.

organization.json

Organization JSON-LD, pre-filled from this crawl. Wrap in a ld+json script.

server-card.json

MCP server card built from this crawl. Host at /.well-known/mcp/server-card.json.

webmcp.json

WebMCP discovery manifest built from this crawl. Host at /.well-known/webmcp.json.

MCP endpoint

https://mcp.sitedex.dev/s/affonso-io/mcp

The URL anyone's agent points at. Read-only; safe to share.

Claude Code

claude mcp add affonso --transport http https://mcp.sitedex.dev/s/affonso-io/mcp

One command, then the agent has it.

Cursor / Continue

{
  "mcpServers": {
    "affonso": {
      "url": "https://mcp.sitedex.dev/s/affonso-io/mcp"
    }
  }
}

Drop into mcp.json.

WebMCP: two parts

WebMCP-capable browsers run the widget at runtime. Crawlers without JS rendering need the discovery manifest to find your tool surface. Install both.

1 · Widget script

<script async src="https://sitedex.dev/widget.js"></script>

Drop in <head>. In browsers with WebMCP, this script registers your site's tools with navigator.modelContext.registerTool().

2 · Discovery manifest

{
  "schema_version": "2026-04",
  "name": "Affonso",
  "description": "Affonso provides affiliate software for SaaS companies to launch and manage their affiliate programs. WebMCP tools served by Sitedex.",
  "homepage": "https://affonso.io",
  "documentation": "https://app.sitedex.dev/sites/affonso.io",
  "source": "navigator.modelContext",
  "tools": [
    {
      "name": "search_site_content",
      "description": "Ask about this site in plain language and get the most relevant passages from its pages, each with the source URL and a relevance score. Searches the site's published text, not live inventory or accounts."
    },
    {
      "name": "get_site_info",
      "description": "This site's profile: name, description, category, who it is for, page count, and AI Visibility Score. Use it to learn what the site is before you search it."
    },
    {
      "name": "list_site_pages",
      "description": "The pages indexed on this site, with title, URL, and path. Use it to see what the site covers, or to find the path to pass to get_site_page."
    },
    {
      "name": "get_site_page",
      "description": "The full markdown of one page on this site, by path. Use it after search_site_content points you at a page and you want all of it."
    }
  ]
}

Host alongside the script at /.well-known/webmcp.json. Crawlers that don't render JS rely on this.

Your turn

See which of these questions your site goes silent on.

Free, about 5 minutes. We crawl your site, test it against the buyer questions your category asks, and name what’s vague, contradictory, or missing, plus the files AI agents look for.

ComingEmbeddable grade badgeScore history and deltasOpt-in public board