# Changelog of B2B Contact Intent Enrichment — Email & LinkedIn Intent (`cag_ai-actors/b2b-buyer-intent-enrichment`) Actor

- **URL**: https://apify.com/cag\_ai-actors/b2b-buyer-intent-enrichment/changelog.md
- **Full Actor documentation**: https://apify.com/cag\_ai-actors/b2b-buyer-intent-enrichment.md

## Changelog

All notable public changes to B2B Contact Intent Enrichment are recorded here.

### \[2.0.0] - 2026-08-31

- Add `contract_version: "2.0"` and use the truthful neutral `licensed-b2b-intent` source category.
- Remove topic IDs from public topic objects and remove the ID-only topic filter from the public input form.
- Remove public BYOK credential fields while temporarily accepting hidden legacy saved-task inputs.
- Keep suppression rows non-identifying and distinguish the CAG suppression decision with `cag-suppression`.
- Move run telemetry to neutral v2 storage records and customer-safe errors.
- Keep the Actor technical name, URL, paid-event name, and price unchanged.
- Migration: [CAG Signals output migration 2.0.0](../../docs/phase-0/OUTPUT-MIGRATION-2.0.0.md).

### \[1.0.0] - 2026-08-30

- Retain the stable `b2b-buyer-intent-enrichment` technical name and align the Store title, H1, description, and SEO metadata with the Phase 0 product name.
- Normalize public dataset fields to the Phase 0 snake\_case contract, including `input_id`, `entity_type`, `top_topic_name`, `intent_score`, `intent_percentile`, and a final `SUMMARY` row.
- Add the standard `previewMode` dry-run flow for up to 25 inputs while retaining exact-count compatibility through `costPreviewOnly`.
- Keep the stable `matched-intent-record` event ID and set pricing to $0.01 per matched contact record.
- Document integrations, pricing guarantees, person-data controls, related Actors, and the 24-hour support commitment.
- Enforce the private keyed-digest suppression registry before person enrichment and again before delivery; suppression outcomes contain no person identifier and are never charged.
