{
 "schema_version": "1.0",
 "id": "assembly",
 "name": "Assembly",
 "research_status": "researched",
 "vendor_domain": "assembly.com",
 "category": "Business Operations",
 "task": "Projects, planning & team workflow",
 "summary": "Branded client portal for agencies and professional service firms: messaging, invoices, proposals, contracts and e-signatures in one place.",
 "best_for": "agencies and professional services firms who want one branded place for clients to message, sign, pay and share files instead of four tools and an email thread",
 "skip_if": "you have a handful of clients and already use a shared drive and an invoicing tool, because the value here is the single branded portal and that only matters once clients get confused about where things live",
 "honest_knock": "Two meters run at once. Active contacts bite first: Starter stops at 50, and the step to 500 costs $70 more a month on yearly billing ($90 monthly). Internal users are the other, and they get dearer as you climb: an extra colleague is $29 a month on Professional and $59 on Advanced (yearly-billed; $39 and $79 monthly), so the more expensive plan makes each additional person more expensive too. A newer third meter is build credits for the AI app builder — 200 a month on every paid plan, $0.60 each beyond that.",
 "pricing": {
  "status": "public",
  "entry_price": "$29",
  "entry_price_terms": "a month, billed annually ($49 billed monthly)",
  "from_price_usd_month": 29.0,
  "plans": [
   {
    "name": "Free",
    "price": "$0",
    "includes": "5 active contacts, 1 internal user, 50 build credits a month, 3 apps"
   },
   {
    "name": "Starter",
    "price": "$29 a month billed yearly or $49 monthly",
    "includes": "50 active contacts, 1 internal user"
   },
   {
    "name": "Professional",
    "price": "$99 billed yearly or $139 monthly",
    "includes": "500 active contacts, 3 internal users included"
   },
   {
    "name": "Advanced",
    "price": "$499 billed yearly or $599 monthly",
    "includes": "unlimited active contacts, 5 internal users included"
   },
   {
    "name": "Enterprise",
    "price": "no published price",
    "includes": "quoted after a demo"
   }
  ],
  "plans_source": "summarised from pricing.notes; every plan name and amount appears verbatim in those notes",
  "notes": "(re-verified 28 September 2026 in a rendered browser, both billing tabs and the full comparison table) Assembly, the client-portal platform at assembly.com, publishes five tiers. Free, a free-forever plan: $0 with 5 active contacts, 1 internal user, 50 build credits a month and 3 apps. Starter: $29 a month billed yearly or $49 monthly, 50 active contacts, 1 internal user. Professional: $99 billed yearly or $139 monthly, 500 active contacts, 3 internal users included and each extra one +$29 a month yearly or +$39 monthly. Advanced: $499 billed yearly or $599 monthly, unlimited active contacts, 5 internal users included and each extra one +$59 or +$79. Enterprise is quoted after a demo. Every paid plan includes 200 build credits a month and 5 apps; extra credits are $0.60 each up to 10,000 a month, unused credits roll over for one month, and extra apps are $5 a month each. If you bill clients through Assembly, cards cost 2.9% + $0.30 on every plan and ACH 1% (capped at $10 from Professional up); the table also lists store fees of 2.0%, 1.5%, 1% and 0.7% from Free to Advanced, invoices at +0.7% down to +0.3% and recurring subscriptions at +1.1% down to +0.5%. The FAQ says there are no setup, hosting or per-client fees, no contracts on self-serve plans, and downgrades take effect at the end of the billing period. Correction: until 28 September 2026 this field described a different company's employee-recognition plan at $3 per user; that was never the price of Assembly's client portal.",
  "verified_at": "2026-09-28",
  "source_url": null,
  "schema_offer": {
   "price": 29.0,
   "currency": "USD",
   "description": "Starter, Starter per month billed annually; $49 billed monthly; a free-forever plan sits below it. Read on the vendor's own pricing page on 2026-09-28.",
   "page": "https://officesoftwaremarketplace.com/assembly-review.html"
  },
  "source_quotes": null
 },
 "free_plan": true,
 "free_plan_evidence": "Free, a free-forever plan: $0 with 5 active contacts, 1 internal user, 50 build credits a month and 3 apps.",
 "cost_traps": [
  {
   "id": "usage_metered",
   "label": "Usage-metered",
   "evidence": "Free, a free-forever plan: $0 with 5 active contacts, 1 internal user, 50 build credits a month and 3 apps.",
   "verified_at": "2026-09-28",
   "source_url": null
  }
 ],
 "compare_with": {
  "name": "Copilot or HoneyBook",
  "why": "the direct client-portal peers — compare on client count and cost per extra internal user, not on the feature list"
 },
 "links": {
  "record": "https://aibuildermarketplace.com/api/v1/products/assembly.json",
  "review": "https://officesoftwaremarketplace.com/assembly-review.html",
  "marketplace": "https://aibuildermarketplace.com/marketplace/assembly/",
  "vendor_site": "https://assembly.com"
 },
 "purchase": {
  "seller": "the vendor",
  "how": "AIBuilder Marketplace does not sell this software. Sign up, start a trial or buy on the vendor's site.",
  "handoff_url": "https://try.assembly.com/dfgq60cnkuu3",
  "affiliate": true,
  "disclosure": "Where purchase.affiliate is true, purchase.handoff_url is an affiliate link: AIBuilder Marketplace may earn a commission at no extra cost to the buyer. Commission never changes what a record says, and products are not ranked by commission. Where it is false the link is the vendor's plain site."
 },
 "provenance": {
  "research": "hand-researched dossier, read on the vendor's own pages",
  "researched_since": "2026-07",
  "method": "https://aibuildermarketplace.com/how-we-review/",
  "license": "CC BY 4.0. Credit 'AIBuilder Marketplace' with a link to https://aibuildermarketplace.com/atlas/.",
  "note": "A rebuild is not a new measurement: pricing.verified_at is the date that matters."
 },
 "cost": {
  "status": "available",
  "engine": "https://aibuildermarketplace.com/agents/#cost",
  "rules": {
   "currency": "USD",
   "unit": "internal user",
   "axis": "users",
   "plans": [
    {
     "id": "free",
     "name": "Free",
     "model": "free",
     "max_units": 1,
     "evidence": "Free, a free-forever plan: $0 with 5 active contacts, 1 internal user"
    },
    {
     "id": "starter",
     "name": "Starter",
     "model": "flat",
     "max_units": 1,
     "annual_month": 29,
     "monthly": 49,
     "evidence": "Starter: $29 a month billed yearly or $49 monthly, 50 active contacts, 1 internal user"
    },
    {
     "id": "professional",
     "name": "Professional",
     "model": "flat",
     "included_units": 3,
     "annual_month": 99,
     "monthly": 139,
     "extra_unit": {
      "annual_month": 29,
      "monthly": 39
     },
     "evidence": "Professional: $99 billed yearly or $139 monthly, 500 active contacts, 3 internal users included and each extra one +$29 a month yearly or +$39 monthly"
    },
    {
     "id": "advanced",
     "name": "Advanced",
     "model": "flat",
     "included_units": 5,
     "annual_month": 499,
     "monthly": 599,
     "extra_unit": {
      "annual_month": 59,
      "monthly": 79
     },
     "evidence": "Advanced: $499 billed yearly or $599 monthly, unlimited active contacts, 5 internal users included and each extra one +$59 or +$79"
    },
    {
     "id": "enterprise",
     "name": "Enterprise",
     "model": "quote",
     "evidence": "Enterprise is quoted after a demo"
    }
   ],
   "not_computable": [
    "Plans are also capped by active contacts (5, 50, 500, unlimited); the rule counts internal users only.",
    "Payment fees on client billing (cards 2.9% + $0.30, ACH 1%) and extra build credits or apps are not included."
   ],
   "notes": [],
   "rules_verified_at": "2026-10-23"
  },
  "growth": {
   "annual": {
    "product_id": "assembly",
    "currency": "USD",
    "axis": "users",
    "unit": "internal user",
    "billing": "annual",
    "rows": [
     {
      "units": 1,
      "cheapest_plan": "free",
      "cheapest_plan_name": "Free",
      "total_month": 0.0,
      "billed": {
       "amount": 0.0,
       "every": "month"
      },
      "ranges": [],
      "per_plan": {
       "free": 0.0,
       "starter": 29.0,
       "professional": 99.0,
       "advanced": 499.0,
       "enterprise": "quote"
      }
     },
     {
      "units": 2,
      "cheapest_plan": "professional",
      "cheapest_plan_name": "Professional",
      "total_month": 99.0,
      "billed": {
       "amount": 1188.0,
       "every": "year"
      },
      "ranges": [],
      "per_plan": {
       "free": "not_eligible",
       "starter": "not_eligible",
       "professional": 99.0,
       "advanced": 499.0,
       "enterprise": "quote"
      }
     },
     {
      "units": 3,
      "cheapest_plan": "professional",
      "cheapest_plan_name": "Professional",
      "total_month": 99.0,
      "billed": {
       "amount": 1188.0,
       "every": "year"
      },
      "ranges": [],
      "per_plan": {
       "free": "not_eligible",
       "starter": "not_eligible",
       "professional": 99.0,
       "advanced": 499.0,
       "enterprise": "quote"
      }
     },
     {
      "units": 5,
      "cheapest_plan": "professional",
      "cheapest_plan_name": "Professional",
      "total_month": 157.0,
      "billed": {
       "amount": 1884.0,
       "every": "year"
      },
      "ranges": [],
      "per_plan": {
       "free": "not_eligible",
       "starter": "not_eligible",
       "professional": 157.0,
       "advanced": 499.0,
       "enterprise": "quote"
      }
     },
     {
      "units": 10,
      "cheapest_plan": "professional",
      "cheapest_plan_name": "Professional",
      "total_month": 302.0,
      "billed": {
       "amount": 3624.0,
       "every": "year"
      },
      "ranges": [],
      "per_plan": {
       "free": "not_eligible",
       "starter": "not_eligible",
       "professional": 302.0,
       "advanced": 794.0,
       "enterprise": "quote"
      }
     },
     {
      "units": 15,
      "cheapest_plan": "professional",
      "cheapest_plan_name": "Professional",
      "total_month": 447.0,
      "billed": {
       "amount": 5364.0,
       "every": "year"
      },
      "ranges": [],
      "per_plan": {
       "free": "not_eligible",
       "starter": "not_eligible",
       "professional": 447.0,
       "advanced": 1089.0,
       "enterprise": "quote"
      }
     },
     {
      "units": 20,
      "cheapest_plan": "professional",
      "cheapest_plan_name": "Professional",
      "total_month": 592.0,
      "billed": {
       "amount": 7104.0,
       "every": "year"
      },
      "ranges": [],
      "per_plan": {
       "free": "not_eligible",
       "starter": "not_eligible",
       "professional": 592.0,
       "advanced": 1384.0,
       "enterprise": "quote"
      }
     },
     {
      "units": 25,
      "cheapest_plan": "professional",
      "cheapest_plan_name": "Professional",
      "total_month": 737.0,
      "billed": {
       "amount": 8844.0,
       "every": "year"
      },
      "ranges": [],
      "per_plan": {
       "free": "not_eligible",
       "starter": "not_eligible",
       "professional": 737.0,
       "advanced": 1679.0,
       "enterprise": "quote"
      }
     },
     {
      "units": 50,
      "cheapest_plan": "professional",
      "cheapest_plan_name": "Professional",
      "total_month": 1462.0,
      "billed": {
       "amount": 17544.0,
       "every": "year"
      },
      "ranges": [],
      "per_plan": {
       "free": "not_eligible",
       "starter": "not_eligible",
       "professional": 1462.0,
       "advanced": 3154.0,
       "enterprise": "quote"
      }
     },
     {
      "units": 100,
      "cheapest_plan": "professional",
      "cheapest_plan_name": "Professional",
      "total_month": 2912.0,
      "billed": {
       "amount": 34944.0,
       "every": "year"
      },
      "ranges": [],
      "per_plan": {
       "free": "not_eligible",
       "starter": "not_eligible",
       "professional": 2912.0,
       "advanced": 6104.0,
       "enterprise": "quote"
      }
     }
    ],
    "switch_points": [
     {
      "from_units": 1,
      "to_units": 2,
      "from_plan": "free",
      "to_plan": "professional",
      "from_plan_name": "Free",
      "to_plan_name": "Professional"
     }
    ],
    "conflicts": [],
    "unknowns": [
     "Plans are also capped by active contacts (5, 50, 500, unlimited); the rule counts internal users only.",
     "Payment fees on client billing (cards 2.9% + $0.30, ACH 1%) and extra build credits or apps are not included."
    ],
    "measured": [
     {
      "claim": "\"75 build credits / month\"",
      "claim_source": "https://assembly.com/pricing",
      "claim_read_on": "2026-10-23",
      "observed": "Settings > Plans in the new Free workspace showed 'Build credits 50 available' and 'Used this billing period 0 of 50 monthly', with the credits expiring on 24 Nov 2026.",
      "observed_on": "2026-10-24",
      "evidence": {
       "label": "Our test observations",
       "url": "https://officesoftwaremarketplace.com/assembly-review.html#claim-vs-measured"
      },
      "plan": "Free",
      "comparability": "Same quantity: monthly build credits on the Free plan.",
      "status": "contradicted",
      "buying_consequence": "Expect 50 build credits a month on Free rather than 75; the app showed them expiring on 24 November 2026. Whether unused credits roll over we did not test.",
      "buyer_direction": "unfavourable",
      "claim_changed_on": null,
      "status_label": "Contradicted",
      "review_url": "https://officesoftwaremarketplace.com/assembly-review.html"
     }
    ]
   },
   "monthly": {
    "product_id": "assembly",
    "currency": "USD",
    "axis": "users",
    "unit": "internal user",
    "billing": "monthly",
    "rows": [
     {
      "units": 1,
      "cheapest_plan": "free",
      "cheapest_plan_name": "Free",
      "total_month": 0.0,
      "billed": {
       "amount": 0.0,
       "every": "month"
      },
      "ranges": [],
      "per_plan": {
       "free": 0.0,
       "starter": 49.0,
       "professional": 139.0,
       "advanced": 599.0,
       "enterprise": "quote"
      }
     },
     {
      "units": 2,
      "cheapest_plan": "professional",
      "cheapest_plan_name": "Professional",
      "total_month": 139.0,
      "billed": {
       "amount": 139.0,
       "every": "month"
      },
      "ranges": [],
      "per_plan": {
       "free": "not_eligible",
       "starter": "not_eligible",
       "professional": 139.0,
       "advanced": 599.0,
       "enterprise": "quote"
      }
     },
     {
      "units": 3,
      "cheapest_plan": "professional",
      "cheapest_plan_name": "Professional",
      "total_month": 139.0,
      "billed": {
       "amount": 139.0,
       "every": "month"
      },
      "ranges": [],
      "per_plan": {
       "free": "not_eligible",
       "starter": "not_eligible",
       "professional": 139.0,
       "advanced": 599.0,
       "enterprise": "quote"
      }
     },
     {
      "units": 5,
      "cheapest_plan": "professional",
      "cheapest_plan_name": "Professional",
      "total_month": 217.0,
      "billed": {
       "amount": 217.0,
       "every": "month"
      },
      "ranges": [],
      "per_plan": {
       "free": "not_eligible",
       "starter": "not_eligible",
       "professional": 217.0,
       "advanced": 599.0,
       "enterprise": "quote"
      }
     },
     {
      "units": 10,
      "cheapest_plan": "professional",
      "cheapest_plan_name": "Professional",
      "total_month": 412.0,
      "billed": {
       "amount": 412.0,
       "every": "month"
      },
      "ranges": [],
      "per_plan": {
       "free": "not_eligible",
       "starter": "not_eligible",
       "professional": 412.0,
       "advanced": 994.0,
       "enterprise": "quote"
      }
     },
     {
      "units": 15,
      "cheapest_plan": "professional",
      "cheapest_plan_name": "Professional",
      "total_month": 607.0,
      "billed": {
       "amount": 607.0,
       "every": "month"
      },
      "ranges": [],
      "per_plan": {
       "free": "not_eligible",
       "starter": "not_eligible",
       "professional": 607.0,
       "advanced": 1389.0,
       "enterprise": "quote"
      }
     },
     {
      "units": 20,
      "cheapest_plan": "professional",
      "cheapest_plan_name": "Professional",
      "total_month": 802.0,
      "billed": {
       "amount": 802.0,
       "every": "month"
      },
      "ranges": [],
      "per_plan": {
       "free": "not_eligible",
       "starter": "not_eligible",
       "professional": 802.0,
       "advanced": 1784.0,
       "enterprise": "quote"
      }
     },
     {
      "units": 25,
      "cheapest_plan": "professional",
      "cheapest_plan_name": "Professional",
      "total_month": 997.0,
      "billed": {
       "amount": 997.0,
       "every": "month"
      },
      "ranges": [],
      "per_plan": {
       "free": "not_eligible",
       "starter": "not_eligible",
       "professional": 997.0,
       "advanced": 2179.0,
       "enterprise": "quote"
      }
     },
     {
      "units": 50,
      "cheapest_plan": "professional",
      "cheapest_plan_name": "Professional",
      "total_month": 1972.0,
      "billed": {
       "amount": 1972.0,
       "every": "month"
      },
      "ranges": [],
      "per_plan": {
       "free": "not_eligible",
       "starter": "not_eligible",
       "professional": 1972.0,
       "advanced": 4154.0,
       "enterprise": "quote"
      }
     },
     {
      "units": 100,
      "cheapest_plan": "professional",
      "cheapest_plan_name": "Professional",
      "total_month": 3922.0,
      "billed": {
       "amount": 3922.0,
       "every": "month"
      },
      "ranges": [],
      "per_plan": {
       "free": "not_eligible",
       "starter": "not_eligible",
       "professional": 3922.0,
       "advanced": 8104.0,
       "enterprise": "quote"
      }
     }
    ],
    "switch_points": [
     {
      "from_units": 1,
      "to_units": 2,
      "from_plan": "free",
      "to_plan": "professional",
      "from_plan_name": "Free",
      "to_plan_name": "Professional"
     }
    ],
    "conflicts": [],
    "unknowns": [
     "Plans are also capped by active contacts (5, 50, 500, unlimited); the rule counts internal users only.",
     "Payment fees on client billing (cards 2.9% + $0.30, ACH 1%) and extra build credits or apps are not included."
    ],
    "measured": [
     {
      "claim": "\"75 build credits / month\"",
      "claim_source": "https://assembly.com/pricing",
      "claim_read_on": "2026-10-23",
      "observed": "Settings > Plans in the new Free workspace showed 'Build credits 50 available' and 'Used this billing period 0 of 50 monthly', with the credits expiring on 24 Nov 2026.",
      "observed_on": "2026-10-24",
      "evidence": {
       "label": "Our test observations",
       "url": "https://officesoftwaremarketplace.com/assembly-review.html#claim-vs-measured"
      },
      "plan": "Free",
      "comparability": "Same quantity: monthly build credits on the Free plan.",
      "status": "contradicted",
      "buying_consequence": "Expect 50 build credits a month on Free rather than 75; the app showed them expiring on 24 November 2026. Whether unused credits roll over we did not test.",
      "buyer_direction": "unfavourable",
      "claim_changed_on": null,
      "status_label": "Contradicted",
      "review_url": "https://officesoftwaremarketplace.com/assembly-review.html"
     }
    ]
   }
  }
 },
 "unknowns": [
  "Data export tested on 2026-10-24; contract terms not researched. Scope and untested export routes are listed in measured.exit_test.",
  "Being verified: free trial and refund terms are not yet matched to a verbatim line on the vendor's own pages. Not matched does not mean there is none."
 ],
 "verification": {
  "price": "read",
  "free_trial": "being_verified",
  "refund": "being_verified"
 },
 "status_page": {
  "source_url": "https://status.assembly.com",
  "platform": "incident_io",
  "period": {
   "from": "2026-07-27T05:40:02.114019Z",
   "to": "2026-10-25T05:40:02.114019Z",
   "days": 90
  },
  "read_at": "2026-10-25T05:40:02.114019Z",
  "source_urls": [
   "https://status.assembly.com/feed.rss"
  ],
  "claim": null,
  "scope": "Assembly Status. Counts cover all incidents on this page; no component filtering. May include services beyond the reviewed product.",
  "incident_count": null,
  "observed_count": 9,
  "counts_by_vendor_label": {
   "unknown": 9
  },
  "major_or_critical_count": null,
  "observed_major_or_critical_count": 0,
  "duration_seconds": null,
  "known_duration_seconds": null,
  "duration_known_count": 0,
  "ongoing_count": null,
  "incidents": [
   {
    "id": "https://status.assembly.com//incidents/01M5JR33HPBW7S1GZKBW6FN07Y",
    "source_url": "https://status.assembly.com//incidents/01M5JR33HPBW7S1GZKBW6FN07Y",
    "label": "unknown",
    "title": "Intermittent App Loading and Functionality Issues",
    "started_at": null,
    "published_at": "2026-10-22T21:52:32Z",
    "resolved_at": null,
    "ongoing": null,
    "kind": "notice"
   },
   {
    "id": "https://status.assembly.com//incidents/01M32FK5F2RREW1K2EG6C4VR5P",
    "source_url": "https://status.assembly.com//incidents/01M32FK5F2RREW1K2EG6C4VR5P",
    "label": "unknown",
    "title": "Live App Navigation Stuck on Preview Loading",
    "started_at": null,
    "published_at": "2026-09-21T17:50:59Z",
    "resolved_at": null,
    "ongoing": null,
    "kind": "notice"
   },
   {
    "id": "https://status.assembly.com//incidents/01M32FCM0FQMFY9FWEXFX2V3TY",
    "source_url": "https://status.assembly.com//incidents/01M32FCM0FQMFY9FWEXFX2V3TY",
    "label": "unknown",
    "title": "Elevated \"page cannot be loaded\" errors ",
    "started_at": null,
    "published_at": "2026-09-21T17:50:38Z",
    "resolved_at": null,
    "ongoing": null,
    "kind": "notice"
   },
   {
    "id": "https://status.assembly.com//incidents/01M1H91GYP4FJJJHXCAKJVBZ63",
    "source_url": "https://status.assembly.com//incidents/01M1H91GYP4FJJJHXCAKJVBZ63",
    "label": "unknown",
    "title": "Issues with creating new workspaces",
    "started_at": null,
    "published_at": "2026-09-02T14:52:58Z",
    "resolved_at": null,
    "ongoing": null,
    "kind": "notice"
   },
   {
    "id": "https://status.assembly.com//incidents/01M15J552QP2HA10HT7M8T28VW",
    "source_url": "https://status.assembly.com//incidents/01M15J552QP2HA10HT7M8T28VW",
    "label": "unknown",
    "title": "Platform API Degradation",
    "started_at": null,
    "published_at": "2026-08-29T01:50:30Z",
    "resolved_at": null,
    "ongoing": null,
    "kind": "notice"
   },
   {
    "id": "https://status.assembly.com//incidents/01M0ZRE0ABBQM0X2XP3QP5J1WX",
    "source_url": "https://status.assembly.com//incidents/01M0ZRE0ABBQM0X2XP3QP5J1WX",
    "label": "unknown",
    "title": "App builder is failing ",
    "started_at": null,
    "published_at": "2026-08-26T19:37:05Z",
    "resolved_at": null,
    "ongoing": null,
    "kind": "notice"
   },
   {
    "id": "https://status.assembly.com//incidents/01M091AKMAWX16X243KWWHW1EW",
    "source_url": "https://status.assembly.com//incidents/01M091AKMAWX16X243KWWHW1EW",
    "label": "unknown",
    "title": "\"Add app\" page is currently down",
    "started_at": null,
    "published_at": "2026-08-17T23:48:22Z",
    "resolved_at": null,
    "ongoing": null,
    "kind": "notice"
   },
   {
    "id": "https://status.assembly.com//incidents/01M0881K273D892CM2N53B9XDW",
    "source_url": "https://status.assembly.com//incidents/01M0881K273D892CM2N53B9XDW",
    "label": "unknown",
    "title": "App Builder Issues",
    "started_at": null,
    "published_at": "2026-08-17T23:34:46Z",
    "resolved_at": null,
    "ongoing": null,
    "kind": "notice"
   },
   {
    "id": "https://status.assembly.com//incidents/01KZP2X79S76GTEE94NGC9PM3Z",
    "source_url": "https://status.assembly.com//incidents/01KZP2X79S76GTEE94NGC9PM3Z",
    "label": "unknown",
    "title": "Task App Experiencing Issues",
    "started_at": null,
    "published_at": "2026-08-10T15:58:06Z",
    "resolved_at": null,
    "ongoing": null,
    "kind": "notice"
   }
  ],
  "coverage": "feed_entries_only",
  "note": "Vendor-reported incidents, not measured uptime. Durations are summed per incident, clipped to the window; overlaps count separately. Feed notices use publication dates, may include maintenance and lack original start/end times. Counts cover the whole vendor page, not product-only incidents.",
  "availability": "ok"
 },
 "measured": {
  "support": null,
  "onboarding": null,
  "inbox": {
   "window_start": "2026-10-23T22:00:00Z",
   "window_end": "2026-11-06T23:00:00Z",
   "window_days": 14,
   "time_basis": "signup_date_midnight_Europe_Amsterdam",
   "status": "partial",
   "observed_at": "2026-10-25T02:18:01.652249Z",
   "counts": {
    "transactional": 1,
    "onboarding_tips": 0,
    "sales_upsell": 0,
    "personal_looking_sales": 0
   },
   "first_sales_email_hours": null,
   "has_list_unsubscribe": true,
   "uncertain": 1,
   "after_cancel": {
    "status": "not_tested"
   },
   "after_deletion": {
    "status": "not_tested"
   },
   "after_unsubscribe": {
    "status": "not_tested"
   }
  },
  "invites": {
   "status": "not_tested",
   "default_on": "not_tested",
   "plus_accepted": "not_tested",
   "invitee_can_unsubscribe": "not_tested",
   "address_book_requested": "not_tested",
   "workspace_requested": "not_tested"
  },
  "entry_exit": {
   "signup": {
    "screens": "not_tested",
    "card_required": "not_tested",
    "call_required": "not_tested",
    "observed_on": null,
    "evidence_url": null
   },
   "cancel": {
    "screens": "not_tested",
    "call_required": "not_tested",
    "observed_on": null,
    "evidence_url": null
   }
  },
  "tested_on": "2026-10-24",
  "tested_by": "Our team; actor, account and scope are documented in the review.",
  "review_url": "https://officesoftwaremarketplace.com/assembly-review.html",
  "method": [
   "Opened the app builder and Settings > Plans",
   "Imported two CRM contacts using Import only",
   "Downloaded the Companies and Contacts tabs through CRM > Export"
  ],
  "claims": [
   {
    "claim": "\"75 build credits / month\"",
    "claim_source": "https://assembly.com/pricing",
    "claim_read_on": "2026-10-23",
    "observed": "Settings > Plans in the new Free workspace showed 'Build credits 50 available' and 'Used this billing period 0 of 50 monthly', with the credits expiring on 24 Nov 2026.",
    "observed_on": "2026-10-24",
    "evidence": {
     "label": "Our test observations",
     "url": "https://officesoftwaremarketplace.com/assembly-review.html#claim-vs-measured"
    },
    "plan": "Free",
    "comparability": "Same quantity: monthly build credits on the Free plan.",
    "status": "contradicted",
    "buying_consequence": "Expect 50 build credits a month on Free rather than 75; the app showed them expiring on 24 November 2026. Whether unused credits roll over we did not test.",
    "buyer_direction": "unfavourable",
    "claim_changed_on": null
   }
  ],
  "exit_test": {
   "run_date": "2026-10-24",
   "what": "On 24 October 2026, in the Free workspace from this test, we exported the Companies and Contacts tabs of the CRM after importing two made-up contacts, and compared the files with our import file. We did not re-import them.",
   "first_import": null,
   "file_inspected": true,
   "reimport_tested": false,
   "awkward": "Creation dates come out as a date only, without a time, and a company's contacts are merged into a single cell.",
   "friction": {
    "export_route": "CRM > Companies or Contacts tab > Export; direct download.",
    "format": "One CSV per tab; for companies the contacts are merged into one cell.",
    "reimport": "Not tested.",
    "cancellation": "Not tested."
   },
   "not_tested": [
    "Exporting files (the Files app) and messages",
    "Re-importing the export",
    "Custom fields"
   ],
   "came_along": [
    "Both test contacts with first name, last name, email, company, status, creation date and 'Invited by'",
    "Both companies, with their contacts (name and email) listed in one cell"
   ],
   "lost": [],
   "note": "A check of this export route with synthetic records, on the account and date stated. Re-importing the export was not tested. Friction is described, not scored; this is not a verdict on the product.",
   "evidence_url": "https://officesoftwaremarketplace.com/assembly-review.html#exit-test"
  },
  "facts": {
   "trial_requires_card": {
    "value": "not_tested",
    "basis": "No explicit observation in the public evidence.",
    "observed_on": "2026-10-24",
    "evidence_url": "https://officesoftwaremarketplace.com/assembly-review.html#hands-on"
   },
   "trial_duration_confirmed": {
    "value": "not_tested",
    "basis": "No explicit observation in the public evidence.",
    "observed_on": "2026-10-24",
    "evidence_url": "https://officesoftwaremarketplace.com/assembly-review.html#hands-on"
   },
   "export_file_inspected": {
    "value": "not_tested",
    "basis": "No explicit observation in the public evidence.",
    "observed_on": "2026-10-24",
    "evidence_url": "https://officesoftwaremarketplace.com/assembly-review.html#hands-on"
   },
   "export_reimport_tested": {
    "value": false,
    "basis": "On 24 October 2026, in the Free workspace from this test, we exported the Companies and Contacts tabs of the CRM after importing two made-up contacts, and compared the files with our import file. We did not re-import them. A check of this export route with synthetic records, on the account and date stated. Re-importing the export was not tested. Friction is described, not scored; this is not a verdict on the product.",
    "observed_on": "2026-10-24",
    "evidence_url": "https://officesoftwaremarketplace.com/assembly-review.html#exit-test"
   },
   "export_direct_download": {
    "value": true,
    "basis": "CRM > Companies or Contacts tab > Export; direct download.",
    "observed_on": "2026-10-24",
    "evidence_url": "https://officesoftwaremarketplace.com/assembly-review.html#exit-test"
   },
   "marketing_emails_14d": {
    "value": "not_tested",
    "basis": "No complete unambiguous 14-day inbox observation available.",
    "observed_on": "2026-10-25",
    "evidence_url": null
   }
  }
 },
 "task_evidence": {
  "structured_checks": [],
  "sessions": [
   {
    "source": "session",
    "product_name": "Assembly",
    "product_id": "assembly",
    "run_date": "2026-10-24",
    "session_type": "hands_on",
    "what": "Tested by our team on 24 October 2026 on the Free plan, without inviting anyone, without building an app and without using build credits: Daan created the account and our AI assistant ran the test in Daan's browser. We imported two made-up contacts into the CRM and exported the contacts and companies.",
    "findings": [
     "Settings > Plans showed the Free plan with 'Build credits 50 available', '50 credits expire on November 24, 2026' and 'Used this billing period 0 of 50 monthly', while Assembly's pricing page lists '75 build credits / month' for Free. The paid plans in the app were Starter $49, Professional $139 and Advanced $599 a month, each with 200 credits.",
     "The contact import ('Email and First name/Last name are required') mapped all four of our columns and previewed 'New contacts (2)', 'Updated contacts (0)' and 'Skipped rows (0)'. It offers 'Import only' or 'Import and invite'; with Import only, the companies were created automatically and both contacts stayed 'Inactive', not invited.",
     "Export downloads a CSV of the open CRM tab straight away. The Contacts file had first name, last name, email, company, status, creation date and 'Invited by'; the Companies file listed each company's contacts in one cell. Both test contacts came back complete.",
     "After sign-up Assembly opens on its app builder ('what app will you add?') with an AI prompt and 30 templates, such as a client project tracker, intake form, helpdesk, data room and contracts."
    ],
    "not_tested": [
     "Building apps with AI (build credits)",
     "The client portal and invitations",
     "Files and Messages",
     "The limit on active contacts"
    ],
    "report": null,
    "disclosure": null,
    "evidence_status": null,
    "result": "reported",
    "note": "Findings as written up after the session; no pass/fail per task was scored.",
    "claim_checks": [
     {
      "claim": "\"75 build credits / month\"",
      "claim_source": "https://assembly.com/pricing",
      "claim_read_on": "2026-10-23",
      "observed": "Settings > Plans in the new Free workspace showed 'Build credits 50 available' and 'Used this billing period 0 of 50 monthly', with the credits expiring on 24 Nov 2026.",
      "observed_on": "2026-10-24",
      "evidence": {
       "label": "Our test observations",
       "url": "https://officesoftwaremarketplace.com/assembly-review.html#claim-vs-measured"
      },
      "plan": "Free",
      "comparability": "Same quantity: monthly build credits on the Free plan.",
      "status": "contradicted",
      "buying_consequence": "Expect 50 build credits a month on Free rather than 75; the app showed them expiring on 24 November 2026. Whether unused credits roll over we did not test.",
      "buyer_direction": "unfavourable",
      "claim_changed_on": null
     }
    ],
    "claim_checks_note": "A vendor claim (quoted, with source and read date) set against what we observed in this session on the plan stated. status is confirmed, contradicted, not_comparable, not_testable or out_of_date; it is not a score of the product.",
    "exit_test": {
     "run_date": "2026-10-24",
     "what": "On 24 October 2026, in the Free workspace from this test, we exported the Companies and Contacts tabs of the CRM after importing two made-up contacts, and compared the files with our import file. We did not re-import them.",
     "first_import": null,
     "file_inspected": true,
     "reimport_tested": false,
     "awkward": "Creation dates come out as a date only, without a time, and a company's contacts are merged into a single cell.",
     "friction": {
      "export_route": "CRM > Companies or Contacts tab > Export; direct download.",
      "format": "One CSV per tab; for companies the contacts are merged into one cell.",
      "reimport": "Not tested.",
      "cancellation": "Not tested."
     },
     "not_tested": [
      "Exporting files (the Files app) and messages",
      "Re-importing the export",
      "Custom fields"
     ],
     "came_along": [
      "Both test contacts with first name, last name, email, company, status, creation date and 'Invited by'",
      "Both companies, with their contacts (name and email) listed in one cell"
     ],
     "lost": [],
     "note": "A check of this export route with synthetic records, on the account and date stated. Re-importing the export was not tested. Friction is described, not scored; this is not a verdict on the product."
    },
    "in_catalog": true
   }
  ]
 },
 "open_questions": [
  {
   "question_id": "assembly:cancellation_terms",
   "key": "cancellation_terms",
   "question": "Can a customer cancel at any time, and what happens to an annual plan that is cancelled mid-term?",
   "status": "open"
  },
  {
   "question_id": "assembly:data_export",
   "key": "data_export",
   "question": "Which data can a customer export, in which formats, on which plans?",
   "status": "open"
  },
  {
   "question_id": "assembly:data_location",
   "key": "data_location",
   "question": "Where is customer data stored, and can a customer choose the region?",
   "status": "open"
  },
  {
   "question_id": "assembly:pricing_gap_1",
   "key": "pricing_gap_1",
   "question": "Our price check could not put a number on this part of the cost: Plans are also capped by active contacts (5, 50, 500, unlimited); the rule counts internal users only. Can you publish the price or the rule?",
   "status": "open"
  },
  {
   "question_id": "assembly:pricing_gap_2",
   "key": "pricing_gap_2",
   "question": "Our price check could not put a number on this part of the cost: Payment fees on client billing (cards 2.9% + $0.30, ACH 1%) and extra build credits or apps are not included. Can you publish the price or the rule?",
   "status": "open"
  }
 ],
 "vendor_answers": [],
 "agent_channels": {
  "vendor_mcp": null,
  "agent_checkout": {
   "status": "not_found",
   "detail": "No explicit support for purchases by AI agents on the vendor's own pages.",
   "checked_at": "2026-10-07",
   "method": "homepage, /pricing and the pricing page we cite, read as plain HTML (no JavaScript) and searched for explicit support of purchases by AI agents: Agentic Commerce Protocol, Instant Checkout, Agent Payments Protocol, buy in ChatGPT, agentic checkout"
  }
 }
}
