@model-match/api 3.46.0 → 3.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/RELEASE_NOTES.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  Changes to `@model-match/api` that affect how you use it. Each version is generated from the ModelMatch API's OpenAPI spec, so new endpoints and fields appear in the [API reference](https://docs.modelmatch.com/developers) as they ship.
4
4
 
5
+ ## 3.47.0
6
+
7
+ - **CRM import: safe re-runs with external keys.** `importCrmRecords` rows accept `externalId` (the record's id in your source system) and the batch accepts `externalSource`. A known key updates that record instead of creating a duplicate, so re-running an import or retrying a timed-out request is safe. A conflicting key fails the row with the new `EXTERNAL_ID_CONFLICT` code.
8
+ - **CRM import: lists, statuses and dated notes per row.** Rows accept `lists` (list names the record joins) and `listStatus`; set `createMissingLists` (optionally with `listStatuses`) to create lists that don't exist yet. Rows also accept `timelineNotes: [{ body, occurredAt?, key? }]`, added as notes dated `occurredAt`. A note the record already has is skipped on re-import.
9
+ - **CRM import: dry run.** `dryRun: true` returns the summary the import would produce, with the same per-row outcomes and error codes, without writing anything.
10
+ - **CRM import history and undo.** Send the same `importRunId` (and optionally `fileName`) with every batch so a split import is recorded as one run. New: `listCrmImports`, `getCrmImport`, `listCrmImportRows` (each row's outcome, paged by `after`), `checkCrmImport` (what the file contained compared with what's in the CRM now) and `undoCrmImport` (`dryRun` for counts). Undo removes only records the run created that nobody has touched since, plus lists it created that end up empty. Records it updated are never removed.
11
+
5
12
  ## 3.46.0
6
13
 
7
14
  - **Agents: office group filters (entitlement-gated).** `listAgents` / `countAgents` and agents bulk delivery accept `officeGroups` / `excludeOfficeGroups`: brokerage brand group keys (`compass_legacy`, `anywhere`, `franchise`, `others`) matched on the agent's current office. `listAgentOfficeGroups` (`GET /v1/agents/office-groups`) returns the group definitions. Both need the workspace's `rocket-filter` entitlement. Without it, the filters answer 403 `office_groups_unavailable` and the definitions list is empty.