@iblai/iblai-api 4.266.0-core → 4.267.0-core

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.
Files changed (47) hide show
  1. package/dist/index.cjs.js +681 -41
  2. package/dist/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +681 -42
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/index.umd.js +681 -41
  6. package/dist/index.umd.js.map +1 -1
  7. package/dist/types/index.d.ts +5 -0
  8. package/dist/types/models/Deal.d.ts +12 -0
  9. package/dist/types/models/Organization.d.ts +12 -0
  10. package/dist/types/models/PaginatedTagList.d.ts +7 -0
  11. package/dist/types/models/PatchedDeal.d.ts +12 -0
  12. package/dist/types/models/PatchedOrganization.d.ts +12 -0
  13. package/dist/types/models/PatchedPerson.d.ts +12 -0
  14. package/dist/types/models/PatchedTag.d.ts +30 -0
  15. package/dist/types/models/Person.d.ts +12 -0
  16. package/dist/types/models/Tag.d.ts +30 -0
  17. package/dist/types/models/_TagAttachRequest.d.ts +6 -0
  18. package/dist/types/services/ActivitiesService.d.ts +1 -1
  19. package/dist/types/services/CrmService.d.ts +185 -10
  20. package/dist/types/services/DealsService.d.ts +34 -2
  21. package/dist/types/services/LeadSourcesService.d.ts +1 -1
  22. package/dist/types/services/OrganizationsService.d.ts +28 -2
  23. package/dist/types/services/PersonsService.d.ts +28 -2
  24. package/dist/types/services/PipelinesService.d.ts +2 -2
  25. package/dist/types/services/TagsService.d.ts +96 -0
  26. package/package.json +1 -1
  27. package/sdk_schema.yml +1484 -239
  28. package/src/core/OpenAPI.ts +1 -1
  29. package/src/index.ts +5 -0
  30. package/src/models/Deal.ts +12 -0
  31. package/src/models/Organization.ts +12 -0
  32. package/src/models/PaginatedTagList.ts +12 -0
  33. package/src/models/PatchedDeal.ts +12 -0
  34. package/src/models/PatchedOrganization.ts +12 -0
  35. package/src/models/PatchedPerson.ts +12 -0
  36. package/src/models/PatchedTag.ts +35 -0
  37. package/src/models/Person.ts +12 -0
  38. package/src/models/Tag.ts +35 -0
  39. package/src/models/_TagAttachRequest.ts +11 -0
  40. package/src/services/ActivitiesService.ts +2 -2
  41. package/src/services/CrmService.ts +399 -14
  42. package/src/services/DealsService.ts +71 -2
  43. package/src/services/LeadSourcesService.ts +2 -2
  44. package/src/services/OrganizationsService.ts +65 -2
  45. package/src/services/PersonsService.ts +65 -2
  46. package/src/services/PipelinesService.ts +4 -4
  47. package/src/services/TagsService.ts +201 -0
package/sdk_schema.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  openapi: 3.0.3
2
2
  info:
3
3
  title: ibl-data-manager
4
- version: 4.266.0-core
4
+ version: 4.267.0-core
5
5
  description: API for iblai
6
6
  paths:
7
7
  /access-check/{item_type}/{item_id}/:
@@ -231,7 +231,7 @@ paths:
231
231
  description: |-
232
232
  Creates an Activity. Either `deal` or `person` must be supplied; both must belong to your Platform.
233
233
 
234
- **Required permission:** `Ibl.CRM/Activities/write`.
234
+ **Required permission:** `Ibl.CRM/Activities/action`.
235
235
  summary: Create an activity
236
236
  tags:
237
237
  - activities
@@ -265,7 +265,7 @@ paths:
265
265
  '400':
266
266
  description: Validation error.
267
267
  '403':
268
- description: Missing required permission `Ibl.CRM/Activities/write`.
268
+ description: Missing required permission `Ibl.CRM/Activities/action`.
269
269
  /activities/{id}/:
270
270
  get:
271
271
  operationId: activities_retrieve
@@ -25291,7 +25291,7 @@ paths:
25291
25291
  description: |-
25292
25292
  Creates an Activity. Either `deal` or `person` must be supplied; both must belong to your Platform.
25293
25293
 
25294
- **Required permission:** `Ibl.CRM/Activities/write`.
25294
+ **Required permission:** `Ibl.CRM/Activities/action`.
25295
25295
  summary: Create an activity
25296
25296
  tags:
25297
25297
  - crm
@@ -25325,7 +25325,7 @@ paths:
25325
25325
  '400':
25326
25326
  description: Validation error.
25327
25327
  '403':
25328
- description: Missing required permission `Ibl.CRM/Activities/write`.
25328
+ description: Missing required permission `Ibl.CRM/Activities/action`.
25329
25329
  /api/crm/activities/{id}/:
25330
25330
  get:
25331
25331
  operationId: crm_activities_retrieve
@@ -25593,6 +25593,10 @@ paths:
25593
25593
  * `open` - Open
25594
25594
  * `won` - Won
25595
25595
  * `lost` - Lost
25596
+ - in: query
25597
+ name: tags
25598
+ schema:
25599
+ type: string
25596
25600
  tags:
25597
25601
  - crm
25598
25602
  security:
@@ -25613,7 +25617,7 @@ paths:
25613
25617
  description: |-
25614
25618
  Creates a new Deal. All FK targets (`person`, `organization`, `pipeline`, `stage`, `source`) must belong to your Platform; `stage` must belong to `pipeline`. `status` and `closed_at` are service-managed — passing them returns `400`.
25615
25619
 
25616
- **Required permission:** `Ibl.CRM/Deals/write`.
25620
+ **Required permission:** `Ibl.CRM/Deals/action`.
25617
25621
  summary: Create a deal
25618
25622
  tags:
25619
25623
  - crm
@@ -25647,7 +25651,7 @@ paths:
25647
25651
  '400':
25648
25652
  description: Validation error.
25649
25653
  '403':
25650
- description: Missing required permission `Ibl.CRM/Deals/write`.
25654
+ description: Missing required permission `Ibl.CRM/Deals/action`.
25651
25655
  /api/crm/deals/{id}/:
25652
25656
  get:
25653
25657
  operationId: crm_deals_retrieve
@@ -25900,14 +25904,14 @@ paths:
25900
25904
  description: Missing required permission `Ibl.CRM/Deals/write`.
25901
25905
  '404':
25902
25906
  description: Deal or stage not found.
25903
- /api/crm/deals/{id}/won/:
25907
+ /api/crm/deals/{id}/tags/:
25904
25908
  post:
25905
- operationId: crm_deals_won_create
25909
+ operationId: crm_deals_tags_create
25906
25910
  description: |-
25907
- Moves the Deal into a closed-won stage and sets `status='won'`. If `stage_code` is omitted, the first `is_won=True` stage in the Deal's pipeline (by sort order) is used.
25911
+ Attaches an existing Tag to this record. Both the Tag and the record must belong to your Platform. Returns `409 Conflict` with the existing `assignment_id` if the tag is already attached.
25908
25912
 
25909
- **Required permission:** `Ibl.CRM/Deals/write`.
25910
- summary: Mark a deal as won
25913
+ **Required permission:** `Ibl.CRM/Tags/write`.
25914
+ summary: Attach a tag to this record
25911
25915
  parameters:
25912
25916
  - in: path
25913
25917
  name: id
@@ -25921,211 +25925,79 @@ paths:
25921
25925
  content:
25922
25926
  application/json:
25923
25927
  schema:
25924
- $ref: '#/components/schemas/DealWonRequest'
25928
+ $ref: '#/components/schemas/_TagAttachRequest'
25925
25929
  application/scim+json:
25926
25930
  schema:
25927
- $ref: '#/components/schemas/DealWonRequest'
25931
+ $ref: '#/components/schemas/_TagAttachRequest'
25928
25932
  application/x-www-form-urlencoded:
25929
25933
  schema:
25930
- $ref: '#/components/schemas/DealWonRequest'
25934
+ $ref: '#/components/schemas/_TagAttachRequest'
25931
25935
  multipart/form-data:
25932
25936
  schema:
25933
- $ref: '#/components/schemas/DealWonRequest'
25937
+ $ref: '#/components/schemas/_TagAttachRequest'
25934
25938
  '*/*':
25935
25939
  schema:
25936
- $ref: '#/components/schemas/DealWonRequest'
25937
- security:
25938
- - PlatformApiKeyAuthentication: []
25939
- responses:
25940
- '200':
25941
- content:
25942
- application/json:
25943
- schema:
25944
- $ref: '#/components/schemas/Deal'
25945
- description: ''
25946
- '400':
25947
- description: No `is_won` stage configured, or the supplied stage_code is
25948
- not flagged is_won=True.
25949
- '403':
25950
- description: Missing required permission `Ibl.CRM/Deals/write`.
25951
- '404':
25952
- description: Deal not found.
25953
- /api/crm/lead-sources/:
25954
- get:
25955
- operationId: crm_lead_sources_list
25956
- description: |-
25957
- Returns a paginated list of LeadSources in your Platform.
25958
-
25959
- **Required permission:** `Ibl.CRM/Pipelines/list`.
25960
- summary: List lead sources
25961
- parameters:
25962
- - in: query
25963
- name: code
25964
- schema:
25965
- type: string
25966
- - in: query
25967
- name: name
25968
- schema:
25969
- type: string
25970
- - name: page
25971
- required: false
25972
- in: query
25973
- description: A page number within the paginated result set.
25974
- schema:
25975
- type: integer
25976
- - name: page_size
25977
- required: false
25978
- in: query
25979
- description: Number of results to return per page.
25980
- schema:
25981
- type: integer
25982
- tags:
25983
- - crm
25984
- security:
25985
- - PlatformApiKeyAuthentication: []
25986
- responses:
25987
- '200':
25988
- content:
25989
- application/json:
25990
- schema:
25991
- $ref: '#/components/schemas/PaginatedLeadSourceList'
25992
- description: ''
25993
- '401':
25994
- description: Authentication required.
25995
- '403':
25996
- description: Missing required permission `Ibl.CRM/Pipelines/list`.
25997
- post:
25998
- operationId: crm_lead_sources_create
25999
- description: |-
26000
- Creates a new LeadSource in your Platform. `code` must be unique.
26001
-
26002
- **Required permission:** `Ibl.CRM/Pipelines/write`.
26003
- summary: Create a lead source
26004
- tags:
26005
- - crm
26006
- requestBody:
26007
- content:
26008
- application/json:
26009
- schema:
26010
- $ref: '#/components/schemas/LeadSource'
26011
- application/scim+json:
26012
- schema:
26013
- $ref: '#/components/schemas/LeadSource'
26014
- application/x-www-form-urlencoded:
26015
- schema:
26016
- $ref: '#/components/schemas/LeadSource'
26017
- multipart/form-data:
26018
- schema:
26019
- $ref: '#/components/schemas/LeadSource'
26020
- '*/*':
26021
- schema:
26022
- $ref: '#/components/schemas/LeadSource'
25940
+ $ref: '#/components/schemas/_TagAttachRequest'
26023
25941
  required: true
26024
25942
  security:
26025
25943
  - PlatformApiKeyAuthentication: []
26026
25944
  responses:
26027
25945
  '201':
26028
- content:
26029
- application/json:
26030
- schema:
26031
- $ref: '#/components/schemas/LeadSource'
26032
- description: ''
25946
+ description: No response body
26033
25947
  '400':
26034
- description: Validation error.
25948
+ description: No response body
26035
25949
  '403':
26036
- description: Missing required permission `Ibl.CRM/Pipelines/write`.
26037
- /api/crm/lead-sources/{id}/:
26038
- get:
26039
- operationId: crm_lead_sources_retrieve
25950
+ description: No response body
25951
+ '404':
25952
+ description: No response body
25953
+ '409':
25954
+ description: No response body
25955
+ /api/crm/deals/{id}/tags/{tag_id}/:
25956
+ delete:
25957
+ operationId: crm_deals_tags_destroy
26040
25958
  description: |-
26041
- Returns a single LeadSource by id.
25959
+ Removes the Tag with id `tag_id` from this record. Returns `404` if the tag was not attached.
26042
25960
 
26043
- **Required permission:** `Ibl.CRM/Pipelines/read`.
26044
- summary: Retrieve a lead source
25961
+ **Required permission:** `Ibl.CRM/Tags/write`.
25962
+ summary: Detach a tag from this record
26045
25963
  parameters:
26046
25964
  - in: path
26047
25965
  name: id
26048
25966
  schema:
26049
25967
  type: integer
26050
- description: A unique integer value identifying this lead source.
25968
+ description: A unique integer value identifying this deal.
26051
25969
  required: true
26052
- tags:
26053
- - crm
26054
- security:
26055
- - PlatformApiKeyAuthentication: []
26056
- responses:
26057
- '200':
26058
- content:
26059
- application/json:
26060
- schema:
26061
- $ref: '#/components/schemas/LeadSource'
26062
- description: ''
26063
- '403':
26064
- description: Missing required permission `Ibl.CRM/Pipelines/read`.
26065
- '404':
26066
- description: LeadSource not found.
26067
- put:
26068
- operationId: crm_lead_sources_update
26069
- description: |-
26070
- Replaces all editable fields on the LeadSource.
26071
-
26072
- **Required permission:** `Ibl.CRM/Pipelines/write`.
26073
- summary: Replace a lead source
26074
- parameters:
26075
25970
  - in: path
26076
- name: id
25971
+ name: tag_id
26077
25972
  schema:
26078
- type: integer
26079
- description: A unique integer value identifying this lead source.
25973
+ type: string
25974
+ pattern: ^\d+$
26080
25975
  required: true
26081
25976
  tags:
26082
25977
  - crm
26083
- requestBody:
26084
- content:
26085
- application/json:
26086
- schema:
26087
- $ref: '#/components/schemas/LeadSource'
26088
- application/scim+json:
26089
- schema:
26090
- $ref: '#/components/schemas/LeadSource'
26091
- application/x-www-form-urlencoded:
26092
- schema:
26093
- $ref: '#/components/schemas/LeadSource'
26094
- multipart/form-data:
26095
- schema:
26096
- $ref: '#/components/schemas/LeadSource'
26097
- '*/*':
26098
- schema:
26099
- $ref: '#/components/schemas/LeadSource'
26100
- required: true
26101
25978
  security:
26102
25979
  - PlatformApiKeyAuthentication: []
26103
25980
  responses:
26104
- '200':
26105
- content:
26106
- application/json:
26107
- schema:
26108
- $ref: '#/components/schemas/LeadSource'
26109
- description: ''
26110
- '400':
26111
- description: Validation error.
25981
+ '204':
25982
+ description: No response body
26112
25983
  '403':
26113
- description: Missing required permission `Ibl.CRM/Pipelines/write`.
25984
+ description: No response body
26114
25985
  '404':
26115
- description: LeadSource not found.
26116
- patch:
26117
- operationId: crm_lead_sources_partial_update
25986
+ description: No response body
25987
+ /api/crm/deals/{id}/won/:
25988
+ post:
25989
+ operationId: crm_deals_won_create
26118
25990
  description: |-
26119
- Updates only the supplied fields on the LeadSource.
25991
+ Moves the Deal into a closed-won stage and sets `status='won'`. If `stage_code` is omitted, the first `is_won=True` stage in the Deal's pipeline (by sort order) is used.
26120
25992
 
26121
- **Required permission:** `Ibl.CRM/Pipelines/write`.
26122
- summary: Update a lead source
25993
+ **Required permission:** `Ibl.CRM/Deals/write`.
25994
+ summary: Mark a deal as won
26123
25995
  parameters:
26124
25996
  - in: path
26125
25997
  name: id
26126
25998
  schema:
26127
25999
  type: integer
26128
- description: A unique integer value identifying this lead source.
26000
+ description: A unique integer value identifying this deal.
26129
26001
  required: true
26130
26002
  tags:
26131
26003
  - crm
@@ -26133,19 +26005,19 @@ paths:
26133
26005
  content:
26134
26006
  application/json:
26135
26007
  schema:
26136
- $ref: '#/components/schemas/PatchedLeadSource'
26008
+ $ref: '#/components/schemas/DealWonRequest'
26137
26009
  application/scim+json:
26138
26010
  schema:
26139
- $ref: '#/components/schemas/PatchedLeadSource'
26011
+ $ref: '#/components/schemas/DealWonRequest'
26140
26012
  application/x-www-form-urlencoded:
26141
26013
  schema:
26142
- $ref: '#/components/schemas/PatchedLeadSource'
26014
+ $ref: '#/components/schemas/DealWonRequest'
26143
26015
  multipart/form-data:
26144
26016
  schema:
26145
- $ref: '#/components/schemas/PatchedLeadSource'
26017
+ $ref: '#/components/schemas/DealWonRequest'
26146
26018
  '*/*':
26147
26019
  schema:
26148
- $ref: '#/components/schemas/PatchedLeadSource'
26020
+ $ref: '#/components/schemas/DealWonRequest'
26149
26021
  security:
26150
26022
  - PlatformApiKeyAuthentication: []
26151
26023
  responses:
@@ -26153,56 +26025,32 @@ paths:
26153
26025
  content:
26154
26026
  application/json:
26155
26027
  schema:
26156
- $ref: '#/components/schemas/LeadSource'
26028
+ $ref: '#/components/schemas/Deal'
26157
26029
  description: ''
26158
26030
  '400':
26159
- description: Validation error.
26160
- '403':
26161
- description: Missing required permission `Ibl.CRM/Pipelines/write`.
26162
- '404':
26163
- description: LeadSource not found.
26164
- delete:
26165
- operationId: crm_lead_sources_destroy
26166
- description: |-
26167
- Deletes the LeadSource. Any Deals referencing it have their `source` cleared.
26168
-
26169
- **Required permission:** `Ibl.CRM/Pipelines/delete`.
26170
- summary: Delete a lead source
26171
- parameters:
26172
- - in: path
26173
- name: id
26174
- schema:
26175
- type: integer
26176
- description: A unique integer value identifying this lead source.
26177
- required: true
26178
- tags:
26179
- - crm
26180
- security:
26181
- - PlatformApiKeyAuthentication: []
26182
- responses:
26183
- '204':
26184
- description: Deleted.
26031
+ description: No `is_won` stage configured, or the supplied stage_code is
26032
+ not flagged is_won=True.
26185
26033
  '403':
26186
- description: Missing required permission `Ibl.CRM/Pipelines/delete`.
26034
+ description: Missing required permission `Ibl.CRM/Deals/write`.
26187
26035
  '404':
26188
- description: LeadSource not found.
26189
- /api/crm/organizations/:
26036
+ description: Deal not found.
26037
+ /api/crm/lead-sources/:
26190
26038
  get:
26191
- operationId: crm_organizations_list
26039
+ operationId: crm_lead_sources_list
26192
26040
  description: |-
26193
- Returns a paginated list of organizations in your Platform. Supports filtering by `owner` and by `name` (case-insensitive substring match).
26041
+ Returns a paginated list of LeadSources in your Platform.
26194
26042
 
26195
- **Required permission:** `Ibl.CRM/Organizations/list`.
26196
- summary: List organizations
26043
+ **Required permission:** `Ibl.CRM/Pipelines/list`.
26044
+ summary: List lead sources
26197
26045
  parameters:
26198
26046
  - in: query
26199
- name: name
26047
+ name: code
26200
26048
  schema:
26201
26049
  type: string
26202
26050
  - in: query
26203
- name: owner
26051
+ name: name
26204
26052
  schema:
26205
- type: number
26053
+ type: string
26206
26054
  - name: page
26207
26055
  required: false
26208
26056
  in: query
@@ -26219,6 +26067,246 @@ paths:
26219
26067
  - crm
26220
26068
  security:
26221
26069
  - PlatformApiKeyAuthentication: []
26070
+ responses:
26071
+ '200':
26072
+ content:
26073
+ application/json:
26074
+ schema:
26075
+ $ref: '#/components/schemas/PaginatedLeadSourceList'
26076
+ description: ''
26077
+ '401':
26078
+ description: Authentication required.
26079
+ '403':
26080
+ description: Missing required permission `Ibl.CRM/Pipelines/list`.
26081
+ post:
26082
+ operationId: crm_lead_sources_create
26083
+ description: |-
26084
+ Creates a new LeadSource in your Platform. `code` must be unique.
26085
+
26086
+ **Required permission:** `Ibl.CRM/Pipelines/action`.
26087
+ summary: Create a lead source
26088
+ tags:
26089
+ - crm
26090
+ requestBody:
26091
+ content:
26092
+ application/json:
26093
+ schema:
26094
+ $ref: '#/components/schemas/LeadSource'
26095
+ application/scim+json:
26096
+ schema:
26097
+ $ref: '#/components/schemas/LeadSource'
26098
+ application/x-www-form-urlencoded:
26099
+ schema:
26100
+ $ref: '#/components/schemas/LeadSource'
26101
+ multipart/form-data:
26102
+ schema:
26103
+ $ref: '#/components/schemas/LeadSource'
26104
+ '*/*':
26105
+ schema:
26106
+ $ref: '#/components/schemas/LeadSource'
26107
+ required: true
26108
+ security:
26109
+ - PlatformApiKeyAuthentication: []
26110
+ responses:
26111
+ '201':
26112
+ content:
26113
+ application/json:
26114
+ schema:
26115
+ $ref: '#/components/schemas/LeadSource'
26116
+ description: ''
26117
+ '400':
26118
+ description: Validation error.
26119
+ '403':
26120
+ description: Missing required permission `Ibl.CRM/Pipelines/action`.
26121
+ /api/crm/lead-sources/{id}/:
26122
+ get:
26123
+ operationId: crm_lead_sources_retrieve
26124
+ description: |-
26125
+ Returns a single LeadSource by id.
26126
+
26127
+ **Required permission:** `Ibl.CRM/Pipelines/read`.
26128
+ summary: Retrieve a lead source
26129
+ parameters:
26130
+ - in: path
26131
+ name: id
26132
+ schema:
26133
+ type: integer
26134
+ description: A unique integer value identifying this lead source.
26135
+ required: true
26136
+ tags:
26137
+ - crm
26138
+ security:
26139
+ - PlatformApiKeyAuthentication: []
26140
+ responses:
26141
+ '200':
26142
+ content:
26143
+ application/json:
26144
+ schema:
26145
+ $ref: '#/components/schemas/LeadSource'
26146
+ description: ''
26147
+ '403':
26148
+ description: Missing required permission `Ibl.CRM/Pipelines/read`.
26149
+ '404':
26150
+ description: LeadSource not found.
26151
+ put:
26152
+ operationId: crm_lead_sources_update
26153
+ description: |-
26154
+ Replaces all editable fields on the LeadSource.
26155
+
26156
+ **Required permission:** `Ibl.CRM/Pipelines/write`.
26157
+ summary: Replace a lead source
26158
+ parameters:
26159
+ - in: path
26160
+ name: id
26161
+ schema:
26162
+ type: integer
26163
+ description: A unique integer value identifying this lead source.
26164
+ required: true
26165
+ tags:
26166
+ - crm
26167
+ requestBody:
26168
+ content:
26169
+ application/json:
26170
+ schema:
26171
+ $ref: '#/components/schemas/LeadSource'
26172
+ application/scim+json:
26173
+ schema:
26174
+ $ref: '#/components/schemas/LeadSource'
26175
+ application/x-www-form-urlencoded:
26176
+ schema:
26177
+ $ref: '#/components/schemas/LeadSource'
26178
+ multipart/form-data:
26179
+ schema:
26180
+ $ref: '#/components/schemas/LeadSource'
26181
+ '*/*':
26182
+ schema:
26183
+ $ref: '#/components/schemas/LeadSource'
26184
+ required: true
26185
+ security:
26186
+ - PlatformApiKeyAuthentication: []
26187
+ responses:
26188
+ '200':
26189
+ content:
26190
+ application/json:
26191
+ schema:
26192
+ $ref: '#/components/schemas/LeadSource'
26193
+ description: ''
26194
+ '400':
26195
+ description: Validation error.
26196
+ '403':
26197
+ description: Missing required permission `Ibl.CRM/Pipelines/write`.
26198
+ '404':
26199
+ description: LeadSource not found.
26200
+ patch:
26201
+ operationId: crm_lead_sources_partial_update
26202
+ description: |-
26203
+ Updates only the supplied fields on the LeadSource.
26204
+
26205
+ **Required permission:** `Ibl.CRM/Pipelines/write`.
26206
+ summary: Update a lead source
26207
+ parameters:
26208
+ - in: path
26209
+ name: id
26210
+ schema:
26211
+ type: integer
26212
+ description: A unique integer value identifying this lead source.
26213
+ required: true
26214
+ tags:
26215
+ - crm
26216
+ requestBody:
26217
+ content:
26218
+ application/json:
26219
+ schema:
26220
+ $ref: '#/components/schemas/PatchedLeadSource'
26221
+ application/scim+json:
26222
+ schema:
26223
+ $ref: '#/components/schemas/PatchedLeadSource'
26224
+ application/x-www-form-urlencoded:
26225
+ schema:
26226
+ $ref: '#/components/schemas/PatchedLeadSource'
26227
+ multipart/form-data:
26228
+ schema:
26229
+ $ref: '#/components/schemas/PatchedLeadSource'
26230
+ '*/*':
26231
+ schema:
26232
+ $ref: '#/components/schemas/PatchedLeadSource'
26233
+ security:
26234
+ - PlatformApiKeyAuthentication: []
26235
+ responses:
26236
+ '200':
26237
+ content:
26238
+ application/json:
26239
+ schema:
26240
+ $ref: '#/components/schemas/LeadSource'
26241
+ description: ''
26242
+ '400':
26243
+ description: Validation error.
26244
+ '403':
26245
+ description: Missing required permission `Ibl.CRM/Pipelines/write`.
26246
+ '404':
26247
+ description: LeadSource not found.
26248
+ delete:
26249
+ operationId: crm_lead_sources_destroy
26250
+ description: |-
26251
+ Deletes the LeadSource. Any Deals referencing it have their `source` cleared.
26252
+
26253
+ **Required permission:** `Ibl.CRM/Pipelines/delete`.
26254
+ summary: Delete a lead source
26255
+ parameters:
26256
+ - in: path
26257
+ name: id
26258
+ schema:
26259
+ type: integer
26260
+ description: A unique integer value identifying this lead source.
26261
+ required: true
26262
+ tags:
26263
+ - crm
26264
+ security:
26265
+ - PlatformApiKeyAuthentication: []
26266
+ responses:
26267
+ '204':
26268
+ description: Deleted.
26269
+ '403':
26270
+ description: Missing required permission `Ibl.CRM/Pipelines/delete`.
26271
+ '404':
26272
+ description: LeadSource not found.
26273
+ /api/crm/organizations/:
26274
+ get:
26275
+ operationId: crm_organizations_list
26276
+ description: |-
26277
+ Returns a paginated list of organizations in your Platform. Supports filtering by `owner` and by `name` (case-insensitive substring match).
26278
+
26279
+ **Required permission:** `Ibl.CRM/Organizations/list`.
26280
+ summary: List organizations
26281
+ parameters:
26282
+ - in: query
26283
+ name: name
26284
+ schema:
26285
+ type: string
26286
+ - in: query
26287
+ name: owner
26288
+ schema:
26289
+ type: number
26290
+ - name: page
26291
+ required: false
26292
+ in: query
26293
+ description: A page number within the paginated result set.
26294
+ schema:
26295
+ type: integer
26296
+ - name: page_size
26297
+ required: false
26298
+ in: query
26299
+ description: Number of results to return per page.
26300
+ schema:
26301
+ type: integer
26302
+ - in: query
26303
+ name: tags
26304
+ schema:
26305
+ type: string
26306
+ tags:
26307
+ - crm
26308
+ security:
26309
+ - PlatformApiKeyAuthentication: []
26222
26310
  responses:
26223
26311
  '200':
26224
26312
  content:
@@ -26235,7 +26323,7 @@ paths:
26235
26323
  description: |-
26236
26324
  Creates a new organization in your Platform. The Platform is inferred from your credentials. `name` must be unique within your Platform.
26237
26325
 
26238
- **Required permission:** `Ibl.CRM/Organizations/write`.
26326
+ **Required permission:** `Ibl.CRM/Organizations/action`.
26239
26327
  summary: Create an organization
26240
26328
  tags:
26241
26329
  - crm
@@ -26269,7 +26357,7 @@ paths:
26269
26357
  '400':
26270
26358
  description: Validation error (for example, duplicate name).
26271
26359
  '403':
26272
- description: Missing required permission `Ibl.CRM/Organizations/write`.
26360
+ description: Missing required permission `Ibl.CRM/Organizations/action`.
26273
26361
  /api/crm/organizations/{id}/:
26274
26362
  get:
26275
26363
  operationId: crm_organizations_retrieve
@@ -26426,6 +26514,88 @@ paths:
26426
26514
  description: Missing required permission `Ibl.CRM/Organizations/delete`.
26427
26515
  '404':
26428
26516
  description: Organization not found.
26517
+ /api/crm/organizations/{id}/tags/:
26518
+ post:
26519
+ operationId: crm_organizations_tags_create
26520
+ description: |-
26521
+ Attaches an existing Tag to this record. Both the Tag and the record must belong to your Platform. Returns `409 Conflict` with the existing `assignment_id` if the tag is already attached.
26522
+
26523
+ **Required permission:** `Ibl.CRM/Tags/write`.
26524
+ summary: Attach a tag to this record
26525
+ parameters:
26526
+ - in: path
26527
+ name: id
26528
+ schema:
26529
+ type: string
26530
+ format: uuid
26531
+ description: Opaque UUID — used in API URLs and external references.
26532
+ required: true
26533
+ tags:
26534
+ - crm
26535
+ requestBody:
26536
+ content:
26537
+ application/json:
26538
+ schema:
26539
+ $ref: '#/components/schemas/_TagAttachRequest'
26540
+ application/scim+json:
26541
+ schema:
26542
+ $ref: '#/components/schemas/_TagAttachRequest'
26543
+ application/x-www-form-urlencoded:
26544
+ schema:
26545
+ $ref: '#/components/schemas/_TagAttachRequest'
26546
+ multipart/form-data:
26547
+ schema:
26548
+ $ref: '#/components/schemas/_TagAttachRequest'
26549
+ '*/*':
26550
+ schema:
26551
+ $ref: '#/components/schemas/_TagAttachRequest'
26552
+ required: true
26553
+ security:
26554
+ - PlatformApiKeyAuthentication: []
26555
+ responses:
26556
+ '201':
26557
+ description: No response body
26558
+ '400':
26559
+ description: No response body
26560
+ '403':
26561
+ description: No response body
26562
+ '404':
26563
+ description: No response body
26564
+ '409':
26565
+ description: No response body
26566
+ /api/crm/organizations/{id}/tags/{tag_id}/:
26567
+ delete:
26568
+ operationId: crm_organizations_tags_destroy
26569
+ description: |-
26570
+ Removes the Tag with id `tag_id` from this record. Returns `404` if the tag was not attached.
26571
+
26572
+ **Required permission:** `Ibl.CRM/Tags/write`.
26573
+ summary: Detach a tag from this record
26574
+ parameters:
26575
+ - in: path
26576
+ name: id
26577
+ schema:
26578
+ type: string
26579
+ format: uuid
26580
+ description: Opaque UUID — used in API URLs and external references.
26581
+ required: true
26582
+ - in: path
26583
+ name: tag_id
26584
+ schema:
26585
+ type: string
26586
+ pattern: ^\d+$
26587
+ required: true
26588
+ tags:
26589
+ - crm
26590
+ security:
26591
+ - PlatformApiKeyAuthentication: []
26592
+ responses:
26593
+ '204':
26594
+ description: No response body
26595
+ '403':
26596
+ description: No response body
26597
+ '404':
26598
+ description: No response body
26429
26599
  /api/crm/persons/:
26430
26600
  get:
26431
26601
  operationId: crm_persons_list
@@ -26488,6 +26658,10 @@ paths:
26488
26658
  description: Number of results to return per page.
26489
26659
  schema:
26490
26660
  type: integer
26661
+ - in: query
26662
+ name: tags
26663
+ schema:
26664
+ type: string
26491
26665
  tags:
26492
26666
  - crm
26493
26667
  security:
@@ -26508,7 +26682,7 @@ paths:
26508
26682
  description: |-
26509
26683
  Creates a new person in your Platform. The Platform is inferred from your credentials. If `organization` is supplied, it must reference an organization in your Platform.
26510
26684
 
26511
- **Required permission:** `Ibl.CRM/Persons/write`.
26685
+ **Required permission:** `Ibl.CRM/Persons/action`.
26512
26686
  summary: Create a person
26513
26687
  tags:
26514
26688
  - crm
@@ -26542,7 +26716,7 @@ paths:
26542
26716
  '400':
26543
26717
  description: Validation error.
26544
26718
  '403':
26545
- description: Missing required permission `Ibl.CRM/Persons/write`.
26719
+ description: Missing required permission `Ibl.CRM/Persons/action`.
26546
26720
  /api/crm/persons/{id}/:
26547
26721
  get:
26548
26722
  operationId: crm_persons_retrieve
@@ -26813,6 +26987,88 @@ paths:
26813
26987
  target user is not a member of your Platform.
26814
26988
  '404':
26815
26989
  description: Person or user not found.
26990
+ /api/crm/persons/{id}/tags/:
26991
+ post:
26992
+ operationId: crm_persons_tags_create
26993
+ description: |-
26994
+ Attaches an existing Tag to this record. Both the Tag and the record must belong to your Platform. Returns `409 Conflict` with the existing `assignment_id` if the tag is already attached.
26995
+
26996
+ **Required permission:** `Ibl.CRM/Tags/write`.
26997
+ summary: Attach a tag to this record
26998
+ parameters:
26999
+ - in: path
27000
+ name: id
27001
+ schema:
27002
+ type: string
27003
+ format: uuid
27004
+ description: Opaque UUID — used in API URLs and external references.
27005
+ required: true
27006
+ tags:
27007
+ - crm
27008
+ requestBody:
27009
+ content:
27010
+ application/json:
27011
+ schema:
27012
+ $ref: '#/components/schemas/_TagAttachRequest'
27013
+ application/scim+json:
27014
+ schema:
27015
+ $ref: '#/components/schemas/_TagAttachRequest'
27016
+ application/x-www-form-urlencoded:
27017
+ schema:
27018
+ $ref: '#/components/schemas/_TagAttachRequest'
27019
+ multipart/form-data:
27020
+ schema:
27021
+ $ref: '#/components/schemas/_TagAttachRequest'
27022
+ '*/*':
27023
+ schema:
27024
+ $ref: '#/components/schemas/_TagAttachRequest'
27025
+ required: true
27026
+ security:
27027
+ - PlatformApiKeyAuthentication: []
27028
+ responses:
27029
+ '201':
27030
+ description: No response body
27031
+ '400':
27032
+ description: No response body
27033
+ '403':
27034
+ description: No response body
27035
+ '404':
27036
+ description: No response body
27037
+ '409':
27038
+ description: No response body
27039
+ /api/crm/persons/{id}/tags/{tag_id}/:
27040
+ delete:
27041
+ operationId: crm_persons_tags_destroy
27042
+ description: |-
27043
+ Removes the Tag with id `tag_id` from this record. Returns `404` if the tag was not attached.
27044
+
27045
+ **Required permission:** `Ibl.CRM/Tags/write`.
27046
+ summary: Detach a tag from this record
27047
+ parameters:
27048
+ - in: path
27049
+ name: id
27050
+ schema:
27051
+ type: string
27052
+ format: uuid
27053
+ description: Opaque UUID — used in API URLs and external references.
27054
+ required: true
27055
+ - in: path
27056
+ name: tag_id
27057
+ schema:
27058
+ type: string
27059
+ pattern: ^\d+$
27060
+ required: true
27061
+ tags:
27062
+ - crm
27063
+ security:
27064
+ - PlatformApiKeyAuthentication: []
27065
+ responses:
27066
+ '204':
27067
+ description: No response body
27068
+ '403':
27069
+ description: No response body
27070
+ '404':
27071
+ description: No response body
26816
27072
  /api/crm/persons/merge/:
26817
27073
  post:
26818
27074
  operationId: crm_persons_merge_create
@@ -26912,7 +27168,7 @@ paths:
26912
27168
  description: |-
26913
27169
  Creates a new Pipeline. `code` must be unique within your Platform. Promoting another Pipeline to `is_default=true` while one already exists will fail — unset the existing default first.
26914
27170
 
26915
- **Required permission:** `Ibl.CRM/Pipelines/write`.
27171
+ **Required permission:** `Ibl.CRM/Pipelines/action`.
26916
27172
  summary: Create a pipeline
26917
27173
  tags:
26918
27174
  - crm
@@ -26946,7 +27202,7 @@ paths:
26946
27202
  '400':
26947
27203
  description: Validation error.
26948
27204
  '403':
26949
- description: Missing required permission `Ibl.CRM/Pipelines/write`.
27205
+ description: Missing required permission `Ibl.CRM/Pipelines/action`.
26950
27206
  /api/crm/pipelines/{pipeline_pk}/stages/:
26951
27207
  get:
26952
27208
  operationId: crm_pipelines_stages_list
@@ -27005,7 +27261,7 @@ paths:
27005
27261
  description: |-
27006
27262
  Creates a new PipelineStage in the URL Pipeline. `code` must be unique within that Pipeline. At most one of `is_won` / `is_lost` may be true.
27007
27263
 
27008
- **Required permission:** `Ibl.CRM/Pipelines/write`.
27264
+ **Required permission:** `Ibl.CRM/Pipelines/action`.
27009
27265
  summary: Create a stage
27010
27266
  parameters:
27011
27267
  - in: path
@@ -27045,7 +27301,7 @@ paths:
27045
27301
  '400':
27046
27302
  description: Validation error.
27047
27303
  '403':
27048
- description: Missing required permission `Ibl.CRM/Pipelines/write`.
27304
+ description: Missing required permission `Ibl.CRM/Pipelines/action`.
27049
27305
  '404':
27050
27306
  description: Pipeline not found.
27051
27307
  /api/crm/pipelines/{pipeline_pk}/stages/{id}/:
@@ -27372,6 +27628,248 @@ paths:
27372
27628
  description: Pipeline not found.
27373
27629
  '409':
27374
27630
  description: Pipeline still has Deals attached.
27631
+ /api/crm/tags/:
27632
+ get:
27633
+ operationId: crm_tags_list
27634
+ description: |-
27635
+ Returns a paginated list of Tags in your Platform. Supports filtering by `name` (case-insensitive substring) and `created_at__gte`/`created_at__lte` ISO timestamp ranges.
27636
+
27637
+ **Required permission:** `Ibl.CRM/Tags/list`.
27638
+ summary: List tags
27639
+ parameters:
27640
+ - in: query
27641
+ name: created_at__gte
27642
+ schema:
27643
+ type: string
27644
+ format: date-time
27645
+ - in: query
27646
+ name: created_at__lte
27647
+ schema:
27648
+ type: string
27649
+ format: date-time
27650
+ - in: query
27651
+ name: name
27652
+ schema:
27653
+ type: string
27654
+ - name: page
27655
+ required: false
27656
+ in: query
27657
+ description: A page number within the paginated result set.
27658
+ schema:
27659
+ type: integer
27660
+ - name: page_size
27661
+ required: false
27662
+ in: query
27663
+ description: Number of results to return per page.
27664
+ schema:
27665
+ type: integer
27666
+ tags:
27667
+ - crm
27668
+ security:
27669
+ - PlatformApiKeyAuthentication: []
27670
+ responses:
27671
+ '200':
27672
+ content:
27673
+ application/json:
27674
+ schema:
27675
+ $ref: '#/components/schemas/PaginatedTagList'
27676
+ description: ''
27677
+ '401':
27678
+ description: Authentication required.
27679
+ '403':
27680
+ description: Missing required permission `Ibl.CRM/Tags/list`.
27681
+ post:
27682
+ operationId: crm_tags_create
27683
+ description: |-
27684
+ Creates a new Tag in your Platform. `name` must be unique within your Platform; supply `color` as a `#RRGGBB` hex string (defaults to `#888888`).
27685
+
27686
+ **Required permission:** `Ibl.CRM/Tags/action`.
27687
+ summary: Create a tag
27688
+ tags:
27689
+ - crm
27690
+ requestBody:
27691
+ content:
27692
+ application/json:
27693
+ schema:
27694
+ $ref: '#/components/schemas/Tag'
27695
+ application/scim+json:
27696
+ schema:
27697
+ $ref: '#/components/schemas/Tag'
27698
+ application/x-www-form-urlencoded:
27699
+ schema:
27700
+ $ref: '#/components/schemas/Tag'
27701
+ multipart/form-data:
27702
+ schema:
27703
+ $ref: '#/components/schemas/Tag'
27704
+ '*/*':
27705
+ schema:
27706
+ $ref: '#/components/schemas/Tag'
27707
+ required: true
27708
+ security:
27709
+ - PlatformApiKeyAuthentication: []
27710
+ responses:
27711
+ '201':
27712
+ content:
27713
+ application/json:
27714
+ schema:
27715
+ $ref: '#/components/schemas/Tag'
27716
+ description: ''
27717
+ '400':
27718
+ description: Validation error (duplicate name, bad color, etc.).
27719
+ '403':
27720
+ description: Missing required permission `Ibl.CRM/Tags/action`.
27721
+ /api/crm/tags/{id}/:
27722
+ get:
27723
+ operationId: crm_tags_retrieve
27724
+ description: |-
27725
+ Returns a single Tag by id.
27726
+
27727
+ **Required permission:** `Ibl.CRM/Tags/read`.
27728
+ summary: Retrieve a tag
27729
+ parameters:
27730
+ - in: path
27731
+ name: id
27732
+ schema:
27733
+ type: integer
27734
+ description: A unique integer value identifying this tag.
27735
+ required: true
27736
+ tags:
27737
+ - crm
27738
+ security:
27739
+ - PlatformApiKeyAuthentication: []
27740
+ responses:
27741
+ '200':
27742
+ content:
27743
+ application/json:
27744
+ schema:
27745
+ $ref: '#/components/schemas/Tag'
27746
+ description: ''
27747
+ '403':
27748
+ description: Missing required permission `Ibl.CRM/Tags/read`.
27749
+ '404':
27750
+ description: Tag not found.
27751
+ put:
27752
+ operationId: crm_tags_update
27753
+ description: |-
27754
+ Replaces all editable fields on the Tag.
27755
+
27756
+ **Required permission:** `Ibl.CRM/Tags/write`.
27757
+ summary: Replace a tag
27758
+ parameters:
27759
+ - in: path
27760
+ name: id
27761
+ schema:
27762
+ type: integer
27763
+ description: A unique integer value identifying this tag.
27764
+ required: true
27765
+ tags:
27766
+ - crm
27767
+ requestBody:
27768
+ content:
27769
+ application/json:
27770
+ schema:
27771
+ $ref: '#/components/schemas/Tag'
27772
+ application/scim+json:
27773
+ schema:
27774
+ $ref: '#/components/schemas/Tag'
27775
+ application/x-www-form-urlencoded:
27776
+ schema:
27777
+ $ref: '#/components/schemas/Tag'
27778
+ multipart/form-data:
27779
+ schema:
27780
+ $ref: '#/components/schemas/Tag'
27781
+ '*/*':
27782
+ schema:
27783
+ $ref: '#/components/schemas/Tag'
27784
+ required: true
27785
+ security:
27786
+ - PlatformApiKeyAuthentication: []
27787
+ responses:
27788
+ '200':
27789
+ content:
27790
+ application/json:
27791
+ schema:
27792
+ $ref: '#/components/schemas/Tag'
27793
+ description: ''
27794
+ '400':
27795
+ description: Validation error.
27796
+ '403':
27797
+ description: Missing required permission `Ibl.CRM/Tags/write`.
27798
+ '404':
27799
+ description: Tag not found.
27800
+ patch:
27801
+ operationId: crm_tags_partial_update
27802
+ description: |-
27803
+ Updates only the supplied fields on the Tag (typically `name` or `color`).
27804
+
27805
+ **Required permission:** `Ibl.CRM/Tags/write`.
27806
+ summary: Update a tag
27807
+ parameters:
27808
+ - in: path
27809
+ name: id
27810
+ schema:
27811
+ type: integer
27812
+ description: A unique integer value identifying this tag.
27813
+ required: true
27814
+ tags:
27815
+ - crm
27816
+ requestBody:
27817
+ content:
27818
+ application/json:
27819
+ schema:
27820
+ $ref: '#/components/schemas/PatchedTag'
27821
+ application/scim+json:
27822
+ schema:
27823
+ $ref: '#/components/schemas/PatchedTag'
27824
+ application/x-www-form-urlencoded:
27825
+ schema:
27826
+ $ref: '#/components/schemas/PatchedTag'
27827
+ multipart/form-data:
27828
+ schema:
27829
+ $ref: '#/components/schemas/PatchedTag'
27830
+ '*/*':
27831
+ schema:
27832
+ $ref: '#/components/schemas/PatchedTag'
27833
+ security:
27834
+ - PlatformApiKeyAuthentication: []
27835
+ responses:
27836
+ '200':
27837
+ content:
27838
+ application/json:
27839
+ schema:
27840
+ $ref: '#/components/schemas/Tag'
27841
+ description: ''
27842
+ '400':
27843
+ description: Validation error.
27844
+ '403':
27845
+ description: Missing required permission `Ibl.CRM/Tags/write`.
27846
+ '404':
27847
+ description: Tag not found.
27848
+ delete:
27849
+ operationId: crm_tags_destroy
27850
+ description: |-
27851
+ Deletes the Tag. All attachments to Persons, Organizations, and Deals are removed atomically via cascade.
27852
+
27853
+ **Required permission:** `Ibl.CRM/Tags/delete`.
27854
+ summary: Delete a tag
27855
+ parameters:
27856
+ - in: path
27857
+ name: id
27858
+ schema:
27859
+ type: integer
27860
+ description: A unique integer value identifying this tag.
27861
+ required: true
27862
+ tags:
27863
+ - crm
27864
+ security:
27865
+ - PlatformApiKeyAuthentication: []
27866
+ responses:
27867
+ '204':
27868
+ description: Deleted.
27869
+ '403':
27870
+ description: Missing required permission `Ibl.CRM/Tags/delete`.
27871
+ '404':
27872
+ description: Tag not found.
27375
27873
  /api/custom-domains/:
27376
27874
  get:
27377
27875
  operationId: custom_domains_retrieve
@@ -38997,6 +39495,10 @@ paths:
38997
39495
  * `open` - Open
38998
39496
  * `won` - Won
38999
39497
  * `lost` - Lost
39498
+ - in: query
39499
+ name: tags
39500
+ schema:
39501
+ type: string
39000
39502
  tags:
39001
39503
  - deals
39002
39504
  security:
@@ -39017,7 +39519,7 @@ paths:
39017
39519
  description: |-
39018
39520
  Creates a new Deal. All FK targets (`person`, `organization`, `pipeline`, `stage`, `source`) must belong to your Platform; `stage` must belong to `pipeline`. `status` and `closed_at` are service-managed — passing them returns `400`.
39019
39521
 
39020
- **Required permission:** `Ibl.CRM/Deals/write`.
39522
+ **Required permission:** `Ibl.CRM/Deals/action`.
39021
39523
  summary: Create a deal
39022
39524
  tags:
39023
39525
  - deals
@@ -39051,7 +39553,7 @@ paths:
39051
39553
  '400':
39052
39554
  description: Validation error.
39053
39555
  '403':
39054
- description: Missing required permission `Ibl.CRM/Deals/write`.
39556
+ description: Missing required permission `Ibl.CRM/Deals/action`.
39055
39557
  /deals/{id}/:
39056
39558
  get:
39057
39559
  operationId: deals_retrieve
@@ -39304,6 +39806,86 @@ paths:
39304
39806
  description: Missing required permission `Ibl.CRM/Deals/write`.
39305
39807
  '404':
39306
39808
  description: Deal or stage not found.
39809
+ /deals/{id}/tags/:
39810
+ post:
39811
+ operationId: deals_tags_create
39812
+ description: |-
39813
+ Attaches an existing Tag to this record. Both the Tag and the record must belong to your Platform. Returns `409 Conflict` with the existing `assignment_id` if the tag is already attached.
39814
+
39815
+ **Required permission:** `Ibl.CRM/Tags/write`.
39816
+ summary: Attach a tag to this record
39817
+ parameters:
39818
+ - in: path
39819
+ name: id
39820
+ schema:
39821
+ type: integer
39822
+ description: A unique integer value identifying this deal.
39823
+ required: true
39824
+ tags:
39825
+ - deals
39826
+ requestBody:
39827
+ content:
39828
+ application/json:
39829
+ schema:
39830
+ $ref: '#/components/schemas/_TagAttachRequest'
39831
+ application/scim+json:
39832
+ schema:
39833
+ $ref: '#/components/schemas/_TagAttachRequest'
39834
+ application/x-www-form-urlencoded:
39835
+ schema:
39836
+ $ref: '#/components/schemas/_TagAttachRequest'
39837
+ multipart/form-data:
39838
+ schema:
39839
+ $ref: '#/components/schemas/_TagAttachRequest'
39840
+ '*/*':
39841
+ schema:
39842
+ $ref: '#/components/schemas/_TagAttachRequest'
39843
+ required: true
39844
+ security:
39845
+ - PlatformApiKeyAuthentication: []
39846
+ responses:
39847
+ '201':
39848
+ description: No response body
39849
+ '400':
39850
+ description: No response body
39851
+ '403':
39852
+ description: No response body
39853
+ '404':
39854
+ description: No response body
39855
+ '409':
39856
+ description: No response body
39857
+ /deals/{id}/tags/{tag_id}/:
39858
+ delete:
39859
+ operationId: deals_tags_destroy
39860
+ description: |-
39861
+ Removes the Tag with id `tag_id` from this record. Returns `404` if the tag was not attached.
39862
+
39863
+ **Required permission:** `Ibl.CRM/Tags/write`.
39864
+ summary: Detach a tag from this record
39865
+ parameters:
39866
+ - in: path
39867
+ name: id
39868
+ schema:
39869
+ type: integer
39870
+ description: A unique integer value identifying this deal.
39871
+ required: true
39872
+ - in: path
39873
+ name: tag_id
39874
+ schema:
39875
+ type: string
39876
+ pattern: ^\d+$
39877
+ required: true
39878
+ tags:
39879
+ - deals
39880
+ security:
39881
+ - PlatformApiKeyAuthentication: []
39882
+ responses:
39883
+ '204':
39884
+ description: No response body
39885
+ '403':
39886
+ description: No response body
39887
+ '404':
39888
+ description: No response body
39307
39889
  /deals/{id}/won/:
39308
39890
  post:
39309
39891
  operationId: deals_won_create
@@ -39427,7 +40009,7 @@ paths:
39427
40009
  description: |-
39428
40010
  Creates a new LeadSource in your Platform. `code` must be unique.
39429
40011
 
39430
- **Required permission:** `Ibl.CRM/Pipelines/write`.
40012
+ **Required permission:** `Ibl.CRM/Pipelines/action`.
39431
40013
  summary: Create a lead source
39432
40014
  tags:
39433
40015
  - lead-sources
@@ -39461,7 +40043,7 @@ paths:
39461
40043
  '400':
39462
40044
  description: Validation error.
39463
40045
  '403':
39464
- description: Missing required permission `Ibl.CRM/Pipelines/write`.
40046
+ description: Missing required permission `Ibl.CRM/Pipelines/action`.
39465
40047
  /lead-sources/{id}/:
39466
40048
  get:
39467
40049
  operationId: lead_sources_retrieve
@@ -39643,6 +40225,10 @@ paths:
39643
40225
  description: Number of results to return per page.
39644
40226
  schema:
39645
40227
  type: integer
40228
+ - in: query
40229
+ name: tags
40230
+ schema:
40231
+ type: string
39646
40232
  tags:
39647
40233
  - organizations
39648
40234
  security:
@@ -39663,7 +40249,7 @@ paths:
39663
40249
  description: |-
39664
40250
  Creates a new organization in your Platform. The Platform is inferred from your credentials. `name` must be unique within your Platform.
39665
40251
 
39666
- **Required permission:** `Ibl.CRM/Organizations/write`.
40252
+ **Required permission:** `Ibl.CRM/Organizations/action`.
39667
40253
  summary: Create an organization
39668
40254
  tags:
39669
40255
  - organizations
@@ -39697,7 +40283,7 @@ paths:
39697
40283
  '400':
39698
40284
  description: Validation error (for example, duplicate name).
39699
40285
  '403':
39700
- description: Missing required permission `Ibl.CRM/Organizations/write`.
40286
+ description: Missing required permission `Ibl.CRM/Organizations/action`.
39701
40287
  /organizations/{id}/:
39702
40288
  get:
39703
40289
  operationId: organizations_retrieve
@@ -39854,6 +40440,88 @@ paths:
39854
40440
  description: Missing required permission `Ibl.CRM/Organizations/delete`.
39855
40441
  '404':
39856
40442
  description: Organization not found.
40443
+ /organizations/{id}/tags/:
40444
+ post:
40445
+ operationId: organizations_tags_create
40446
+ description: |-
40447
+ Attaches an existing Tag to this record. Both the Tag and the record must belong to your Platform. Returns `409 Conflict` with the existing `assignment_id` if the tag is already attached.
40448
+
40449
+ **Required permission:** `Ibl.CRM/Tags/write`.
40450
+ summary: Attach a tag to this record
40451
+ parameters:
40452
+ - in: path
40453
+ name: id
40454
+ schema:
40455
+ type: string
40456
+ format: uuid
40457
+ description: Opaque UUID — used in API URLs and external references.
40458
+ required: true
40459
+ tags:
40460
+ - organizations
40461
+ requestBody:
40462
+ content:
40463
+ application/json:
40464
+ schema:
40465
+ $ref: '#/components/schemas/_TagAttachRequest'
40466
+ application/scim+json:
40467
+ schema:
40468
+ $ref: '#/components/schemas/_TagAttachRequest'
40469
+ application/x-www-form-urlencoded:
40470
+ schema:
40471
+ $ref: '#/components/schemas/_TagAttachRequest'
40472
+ multipart/form-data:
40473
+ schema:
40474
+ $ref: '#/components/schemas/_TagAttachRequest'
40475
+ '*/*':
40476
+ schema:
40477
+ $ref: '#/components/schemas/_TagAttachRequest'
40478
+ required: true
40479
+ security:
40480
+ - PlatformApiKeyAuthentication: []
40481
+ responses:
40482
+ '201':
40483
+ description: No response body
40484
+ '400':
40485
+ description: No response body
40486
+ '403':
40487
+ description: No response body
40488
+ '404':
40489
+ description: No response body
40490
+ '409':
40491
+ description: No response body
40492
+ /organizations/{id}/tags/{tag_id}/:
40493
+ delete:
40494
+ operationId: organizations_tags_destroy
40495
+ description: |-
40496
+ Removes the Tag with id `tag_id` from this record. Returns `404` if the tag was not attached.
40497
+
40498
+ **Required permission:** `Ibl.CRM/Tags/write`.
40499
+ summary: Detach a tag from this record
40500
+ parameters:
40501
+ - in: path
40502
+ name: id
40503
+ schema:
40504
+ type: string
40505
+ format: uuid
40506
+ description: Opaque UUID — used in API URLs and external references.
40507
+ required: true
40508
+ - in: path
40509
+ name: tag_id
40510
+ schema:
40511
+ type: string
40512
+ pattern: ^\d+$
40513
+ required: true
40514
+ tags:
40515
+ - organizations
40516
+ security:
40517
+ - PlatformApiKeyAuthentication: []
40518
+ responses:
40519
+ '204':
40520
+ description: No response body
40521
+ '403':
40522
+ description: No response body
40523
+ '404':
40524
+ description: No response body
39857
40525
  /persons/:
39858
40526
  get:
39859
40527
  operationId: persons_list
@@ -39916,6 +40584,10 @@ paths:
39916
40584
  description: Number of results to return per page.
39917
40585
  schema:
39918
40586
  type: integer
40587
+ - in: query
40588
+ name: tags
40589
+ schema:
40590
+ type: string
39919
40591
  tags:
39920
40592
  - persons
39921
40593
  security:
@@ -39936,7 +40608,7 @@ paths:
39936
40608
  description: |-
39937
40609
  Creates a new person in your Platform. The Platform is inferred from your credentials. If `organization` is supplied, it must reference an organization in your Platform.
39938
40610
 
39939
- **Required permission:** `Ibl.CRM/Persons/write`.
40611
+ **Required permission:** `Ibl.CRM/Persons/action`.
39940
40612
  summary: Create a person
39941
40613
  tags:
39942
40614
  - persons
@@ -39970,7 +40642,7 @@ paths:
39970
40642
  '400':
39971
40643
  description: Validation error.
39972
40644
  '403':
39973
- description: Missing required permission `Ibl.CRM/Persons/write`.
40645
+ description: Missing required permission `Ibl.CRM/Persons/action`.
39974
40646
  /persons/{id}/:
39975
40647
  get:
39976
40648
  operationId: persons_retrieve
@@ -40241,6 +40913,88 @@ paths:
40241
40913
  target user is not a member of your Platform.
40242
40914
  '404':
40243
40915
  description: Person or user not found.
40916
+ /persons/{id}/tags/:
40917
+ post:
40918
+ operationId: persons_tags_create
40919
+ description: |-
40920
+ Attaches an existing Tag to this record. Both the Tag and the record must belong to your Platform. Returns `409 Conflict` with the existing `assignment_id` if the tag is already attached.
40921
+
40922
+ **Required permission:** `Ibl.CRM/Tags/write`.
40923
+ summary: Attach a tag to this record
40924
+ parameters:
40925
+ - in: path
40926
+ name: id
40927
+ schema:
40928
+ type: string
40929
+ format: uuid
40930
+ description: Opaque UUID — used in API URLs and external references.
40931
+ required: true
40932
+ tags:
40933
+ - persons
40934
+ requestBody:
40935
+ content:
40936
+ application/json:
40937
+ schema:
40938
+ $ref: '#/components/schemas/_TagAttachRequest'
40939
+ application/scim+json:
40940
+ schema:
40941
+ $ref: '#/components/schemas/_TagAttachRequest'
40942
+ application/x-www-form-urlencoded:
40943
+ schema:
40944
+ $ref: '#/components/schemas/_TagAttachRequest'
40945
+ multipart/form-data:
40946
+ schema:
40947
+ $ref: '#/components/schemas/_TagAttachRequest'
40948
+ '*/*':
40949
+ schema:
40950
+ $ref: '#/components/schemas/_TagAttachRequest'
40951
+ required: true
40952
+ security:
40953
+ - PlatformApiKeyAuthentication: []
40954
+ responses:
40955
+ '201':
40956
+ description: No response body
40957
+ '400':
40958
+ description: No response body
40959
+ '403':
40960
+ description: No response body
40961
+ '404':
40962
+ description: No response body
40963
+ '409':
40964
+ description: No response body
40965
+ /persons/{id}/tags/{tag_id}/:
40966
+ delete:
40967
+ operationId: persons_tags_destroy
40968
+ description: |-
40969
+ Removes the Tag with id `tag_id` from this record. Returns `404` if the tag was not attached.
40970
+
40971
+ **Required permission:** `Ibl.CRM/Tags/write`.
40972
+ summary: Detach a tag from this record
40973
+ parameters:
40974
+ - in: path
40975
+ name: id
40976
+ schema:
40977
+ type: string
40978
+ format: uuid
40979
+ description: Opaque UUID — used in API URLs and external references.
40980
+ required: true
40981
+ - in: path
40982
+ name: tag_id
40983
+ schema:
40984
+ type: string
40985
+ pattern: ^\d+$
40986
+ required: true
40987
+ tags:
40988
+ - persons
40989
+ security:
40990
+ - PlatformApiKeyAuthentication: []
40991
+ responses:
40992
+ '204':
40993
+ description: No response body
40994
+ '403':
40995
+ description: No response body
40996
+ '404':
40997
+ description: No response body
40244
40998
  /persons/merge/:
40245
40999
  post:
40246
41000
  operationId: persons_merge_create
@@ -40340,7 +41094,7 @@ paths:
40340
41094
  description: |-
40341
41095
  Creates a new Pipeline. `code` must be unique within your Platform. Promoting another Pipeline to `is_default=true` while one already exists will fail — unset the existing default first.
40342
41096
 
40343
- **Required permission:** `Ibl.CRM/Pipelines/write`.
41097
+ **Required permission:** `Ibl.CRM/Pipelines/action`.
40344
41098
  summary: Create a pipeline
40345
41099
  tags:
40346
41100
  - pipelines
@@ -40374,7 +41128,7 @@ paths:
40374
41128
  '400':
40375
41129
  description: Validation error.
40376
41130
  '403':
40377
- description: Missing required permission `Ibl.CRM/Pipelines/write`.
41131
+ description: Missing required permission `Ibl.CRM/Pipelines/action`.
40378
41132
  /pipelines/{pipeline_pk}/stages/:
40379
41133
  get:
40380
41134
  operationId: pipelines_stages_list
@@ -40433,7 +41187,7 @@ paths:
40433
41187
  description: |-
40434
41188
  Creates a new PipelineStage in the URL Pipeline. `code` must be unique within that Pipeline. At most one of `is_won` / `is_lost` may be true.
40435
41189
 
40436
- **Required permission:** `Ibl.CRM/Pipelines/write`.
41190
+ **Required permission:** `Ibl.CRM/Pipelines/action`.
40437
41191
  summary: Create a stage
40438
41192
  parameters:
40439
41193
  - in: path
@@ -40473,7 +41227,7 @@ paths:
40473
41227
  '400':
40474
41228
  description: Validation error.
40475
41229
  '403':
40476
- description: Missing required permission `Ibl.CRM/Pipelines/write`.
41230
+ description: Missing required permission `Ibl.CRM/Pipelines/action`.
40477
41231
  '404':
40478
41232
  description: Pipeline not found.
40479
41233
  /pipelines/{pipeline_pk}/stages/{id}/:
@@ -41813,6 +42567,248 @@ paths:
41813
42567
  schema:
41814
42568
  $ref: '#/components/schemas/CheckoutSessionResponse'
41815
42569
  description: ''
42570
+ /tags/:
42571
+ get:
42572
+ operationId: tags_list
42573
+ description: |-
42574
+ Returns a paginated list of Tags in your Platform. Supports filtering by `name` (case-insensitive substring) and `created_at__gte`/`created_at__lte` ISO timestamp ranges.
42575
+
42576
+ **Required permission:** `Ibl.CRM/Tags/list`.
42577
+ summary: List tags
42578
+ parameters:
42579
+ - in: query
42580
+ name: created_at__gte
42581
+ schema:
42582
+ type: string
42583
+ format: date-time
42584
+ - in: query
42585
+ name: created_at__lte
42586
+ schema:
42587
+ type: string
42588
+ format: date-time
42589
+ - in: query
42590
+ name: name
42591
+ schema:
42592
+ type: string
42593
+ - name: page
42594
+ required: false
42595
+ in: query
42596
+ description: A page number within the paginated result set.
42597
+ schema:
42598
+ type: integer
42599
+ - name: page_size
42600
+ required: false
42601
+ in: query
42602
+ description: Number of results to return per page.
42603
+ schema:
42604
+ type: integer
42605
+ tags:
42606
+ - tags
42607
+ security:
42608
+ - PlatformApiKeyAuthentication: []
42609
+ responses:
42610
+ '200':
42611
+ content:
42612
+ application/json:
42613
+ schema:
42614
+ $ref: '#/components/schemas/PaginatedTagList'
42615
+ description: ''
42616
+ '401':
42617
+ description: Authentication required.
42618
+ '403':
42619
+ description: Missing required permission `Ibl.CRM/Tags/list`.
42620
+ post:
42621
+ operationId: tags_create
42622
+ description: |-
42623
+ Creates a new Tag in your Platform. `name` must be unique within your Platform; supply `color` as a `#RRGGBB` hex string (defaults to `#888888`).
42624
+
42625
+ **Required permission:** `Ibl.CRM/Tags/action`.
42626
+ summary: Create a tag
42627
+ tags:
42628
+ - tags
42629
+ requestBody:
42630
+ content:
42631
+ application/json:
42632
+ schema:
42633
+ $ref: '#/components/schemas/Tag'
42634
+ application/scim+json:
42635
+ schema:
42636
+ $ref: '#/components/schemas/Tag'
42637
+ application/x-www-form-urlencoded:
42638
+ schema:
42639
+ $ref: '#/components/schemas/Tag'
42640
+ multipart/form-data:
42641
+ schema:
42642
+ $ref: '#/components/schemas/Tag'
42643
+ '*/*':
42644
+ schema:
42645
+ $ref: '#/components/schemas/Tag'
42646
+ required: true
42647
+ security:
42648
+ - PlatformApiKeyAuthentication: []
42649
+ responses:
42650
+ '201':
42651
+ content:
42652
+ application/json:
42653
+ schema:
42654
+ $ref: '#/components/schemas/Tag'
42655
+ description: ''
42656
+ '400':
42657
+ description: Validation error (duplicate name, bad color, etc.).
42658
+ '403':
42659
+ description: Missing required permission `Ibl.CRM/Tags/action`.
42660
+ /tags/{id}/:
42661
+ get:
42662
+ operationId: tags_retrieve
42663
+ description: |-
42664
+ Returns a single Tag by id.
42665
+
42666
+ **Required permission:** `Ibl.CRM/Tags/read`.
42667
+ summary: Retrieve a tag
42668
+ parameters:
42669
+ - in: path
42670
+ name: id
42671
+ schema:
42672
+ type: integer
42673
+ description: A unique integer value identifying this tag.
42674
+ required: true
42675
+ tags:
42676
+ - tags
42677
+ security:
42678
+ - PlatformApiKeyAuthentication: []
42679
+ responses:
42680
+ '200':
42681
+ content:
42682
+ application/json:
42683
+ schema:
42684
+ $ref: '#/components/schemas/Tag'
42685
+ description: ''
42686
+ '403':
42687
+ description: Missing required permission `Ibl.CRM/Tags/read`.
42688
+ '404':
42689
+ description: Tag not found.
42690
+ put:
42691
+ operationId: tags_update
42692
+ description: |-
42693
+ Replaces all editable fields on the Tag.
42694
+
42695
+ **Required permission:** `Ibl.CRM/Tags/write`.
42696
+ summary: Replace a tag
42697
+ parameters:
42698
+ - in: path
42699
+ name: id
42700
+ schema:
42701
+ type: integer
42702
+ description: A unique integer value identifying this tag.
42703
+ required: true
42704
+ tags:
42705
+ - tags
42706
+ requestBody:
42707
+ content:
42708
+ application/json:
42709
+ schema:
42710
+ $ref: '#/components/schemas/Tag'
42711
+ application/scim+json:
42712
+ schema:
42713
+ $ref: '#/components/schemas/Tag'
42714
+ application/x-www-form-urlencoded:
42715
+ schema:
42716
+ $ref: '#/components/schemas/Tag'
42717
+ multipart/form-data:
42718
+ schema:
42719
+ $ref: '#/components/schemas/Tag'
42720
+ '*/*':
42721
+ schema:
42722
+ $ref: '#/components/schemas/Tag'
42723
+ required: true
42724
+ security:
42725
+ - PlatformApiKeyAuthentication: []
42726
+ responses:
42727
+ '200':
42728
+ content:
42729
+ application/json:
42730
+ schema:
42731
+ $ref: '#/components/schemas/Tag'
42732
+ description: ''
42733
+ '400':
42734
+ description: Validation error.
42735
+ '403':
42736
+ description: Missing required permission `Ibl.CRM/Tags/write`.
42737
+ '404':
42738
+ description: Tag not found.
42739
+ patch:
42740
+ operationId: tags_partial_update
42741
+ description: |-
42742
+ Updates only the supplied fields on the Tag (typically `name` or `color`).
42743
+
42744
+ **Required permission:** `Ibl.CRM/Tags/write`.
42745
+ summary: Update a tag
42746
+ parameters:
42747
+ - in: path
42748
+ name: id
42749
+ schema:
42750
+ type: integer
42751
+ description: A unique integer value identifying this tag.
42752
+ required: true
42753
+ tags:
42754
+ - tags
42755
+ requestBody:
42756
+ content:
42757
+ application/json:
42758
+ schema:
42759
+ $ref: '#/components/schemas/PatchedTag'
42760
+ application/scim+json:
42761
+ schema:
42762
+ $ref: '#/components/schemas/PatchedTag'
42763
+ application/x-www-form-urlencoded:
42764
+ schema:
42765
+ $ref: '#/components/schemas/PatchedTag'
42766
+ multipart/form-data:
42767
+ schema:
42768
+ $ref: '#/components/schemas/PatchedTag'
42769
+ '*/*':
42770
+ schema:
42771
+ $ref: '#/components/schemas/PatchedTag'
42772
+ security:
42773
+ - PlatformApiKeyAuthentication: []
42774
+ responses:
42775
+ '200':
42776
+ content:
42777
+ application/json:
42778
+ schema:
42779
+ $ref: '#/components/schemas/Tag'
42780
+ description: ''
42781
+ '400':
42782
+ description: Validation error.
42783
+ '403':
42784
+ description: Missing required permission `Ibl.CRM/Tags/write`.
42785
+ '404':
42786
+ description: Tag not found.
42787
+ delete:
42788
+ operationId: tags_destroy
42789
+ description: |-
42790
+ Deletes the Tag. All attachments to Persons, Organizations, and Deals are removed atomically via cascade.
42791
+
42792
+ **Required permission:** `Ibl.CRM/Tags/delete`.
42793
+ summary: Delete a tag
42794
+ parameters:
42795
+ - in: path
42796
+ name: id
42797
+ schema:
42798
+ type: integer
42799
+ description: A unique integer value identifying this tag.
42800
+ required: true
42801
+ tags:
42802
+ - tags
42803
+ security:
42804
+ - PlatformApiKeyAuthentication: []
42805
+ responses:
42806
+ '204':
42807
+ description: Deleted.
42808
+ '403':
42809
+ description: Missing required permission `Ibl.CRM/Tags/delete`.
42810
+ '404':
42811
+ description: Tag not found.
41816
42812
  /transactions/:
41817
42813
  get:
41818
42814
  operationId: transactions_retrieve
@@ -44995,6 +45991,12 @@ components:
44995
45991
  * `cancelled` - Cancelled
44996
45992
  Deal:
44997
45993
  type: object
45994
+ description: |-
45995
+ Adds a read-only ``tags`` field to a host serializer.
45996
+
45997
+ Emits ``[{id, name, color}]``. Cheap when the host queryset uses
45998
+ ``prefetch_related("tag_assignments__tag")`` — without that prefetch
45999
+ every record triggers two extra queries.
44998
46000
  properties:
44999
46001
  id:
45000
46002
  type: integer
@@ -45078,6 +46080,23 @@ components:
45078
46080
  description: Id of the platform user responsible for this Deal (sales rep).
45079
46081
  Defaults to the calling user on create.
45080
46082
  nullable: true
46083
+ tags:
46084
+ type: array
46085
+ items:
46086
+ type: object
46087
+ properties:
46088
+ id:
46089
+ type: integer
46090
+ name:
46091
+ type: string
46092
+ color:
46093
+ type: string
46094
+ example: '#3F6BFF'
46095
+ required:
46096
+ - id
46097
+ - name
46098
+ - color
46099
+ readOnly: true
45081
46100
  metadata:
45082
46101
  description: Free-form JSON for Platform-defined attributes.
45083
46102
  created_at:
@@ -45099,6 +46118,7 @@ components:
45099
46118
  - platform
45100
46119
  - stage
45101
46120
  - status
46121
+ - tags
45102
46122
  - title
45103
46123
  - updated_at
45104
46124
  DealLostRequest:
@@ -48416,6 +49436,12 @@ components:
48416
49436
  - onboarding_completed
48417
49437
  Organization:
48418
49438
  type: object
49439
+ description: |-
49440
+ Adds a read-only ``tags`` field to a host serializer.
49441
+
49442
+ Emits ``[{id, name, color}]``. Cheap when the host queryset uses
49443
+ ``prefetch_related("tag_assignments__tag")`` — without that prefetch
49444
+ every record triggers two extra queries.
48419
49445
  properties:
48420
49446
  id:
48421
49447
  type: string
@@ -48438,6 +49464,23 @@ components:
48438
49464
  description: Id of the Platform user who owns / manages this Organization.
48439
49465
  Must be an active member of your Platform.
48440
49466
  nullable: true
49467
+ tags:
49468
+ type: array
49469
+ items:
49470
+ type: object
49471
+ properties:
49472
+ id:
49473
+ type: integer
49474
+ name:
49475
+ type: string
49476
+ color:
49477
+ type: string
49478
+ example: '#3F6BFF'
49479
+ required:
49480
+ - id
49481
+ - name
49482
+ - color
49483
+ readOnly: true
48441
49484
  metadata:
48442
49485
  description: Free-form JSON for Platform-defined attributes.
48443
49486
  created_at:
@@ -48455,6 +49498,7 @@ components:
48455
49498
  - id
48456
49499
  - name
48457
49500
  - platform
49501
+ - tags
48458
49502
  - updated_at
48459
49503
  OverTime:
48460
49504
  type: object
@@ -49436,6 +50480,29 @@ components:
49436
50480
  - next_page
49437
50481
  - previous_page
49438
50482
  - results
50483
+ PaginatedTagList:
50484
+ type: object
50485
+ required:
50486
+ - count
50487
+ - results
50488
+ properties:
50489
+ count:
50490
+ type: integer
50491
+ example: 123
50492
+ next:
50493
+ type: string
50494
+ nullable: true
50495
+ format: uri
50496
+ example: http://api.example.org/accounts/?page=4
50497
+ previous:
50498
+ type: string
50499
+ nullable: true
50500
+ format: uri
50501
+ example: http://api.example.org/accounts/?page=2
50502
+ results:
50503
+ type: array
50504
+ items:
50505
+ $ref: '#/components/schemas/Tag'
49439
50506
  PaginatedUserAppList:
49440
50507
  type: object
49441
50508
  required:
@@ -49793,6 +50860,12 @@ components:
49793
50860
  context).
49794
50861
  PatchedDeal:
49795
50862
  type: object
50863
+ description: |-
50864
+ Adds a read-only ``tags`` field to a host serializer.
50865
+
50866
+ Emits ``[{id, name, color}]``. Cheap when the host queryset uses
50867
+ ``prefetch_related("tag_assignments__tag")`` — without that prefetch
50868
+ every record triggers two extra queries.
49796
50869
  properties:
49797
50870
  id:
49798
50871
  type: integer
@@ -49876,6 +50949,23 @@ components:
49876
50949
  description: Id of the platform user responsible for this Deal (sales rep).
49877
50950
  Defaults to the calling user on create.
49878
50951
  nullable: true
50952
+ tags:
50953
+ type: array
50954
+ items:
50955
+ type: object
50956
+ properties:
50957
+ id:
50958
+ type: integer
50959
+ name:
50960
+ type: string
50961
+ color:
50962
+ type: string
50963
+ example: '#3F6BFF'
50964
+ required:
50965
+ - id
50966
+ - name
50967
+ - color
50968
+ readOnly: true
49879
50969
  metadata:
49880
50970
  description: Free-form JSON for Platform-defined attributes.
49881
50971
  created_at:
@@ -50494,6 +51584,12 @@ components:
50494
51584
  description: Whether this notification type is enabled
50495
51585
  PatchedOrganization:
50496
51586
  type: object
51587
+ description: |-
51588
+ Adds a read-only ``tags`` field to a host serializer.
51589
+
51590
+ Emits ``[{id, name, color}]``. Cheap when the host queryset uses
51591
+ ``prefetch_related("tag_assignments__tag")`` — without that prefetch
51592
+ every record triggers two extra queries.
50497
51593
  properties:
50498
51594
  id:
50499
51595
  type: string
@@ -50516,6 +51612,23 @@ components:
50516
51612
  description: Id of the Platform user who owns / manages this Organization.
50517
51613
  Must be an active member of your Platform.
50518
51614
  nullable: true
51615
+ tags:
51616
+ type: array
51617
+ items:
51618
+ type: object
51619
+ properties:
51620
+ id:
51621
+ type: integer
51622
+ name:
51623
+ type: string
51624
+ color:
51625
+ type: string
51626
+ example: '#3F6BFF'
51627
+ required:
51628
+ - id
51629
+ - name
51630
+ - color
51631
+ readOnly: true
50519
51632
  metadata:
50520
51633
  description: Free-form JSON for Platform-defined attributes.
50521
51634
  created_at:
@@ -50530,6 +51643,12 @@ components:
50530
51643
  description: Last-modified timestamp.
50531
51644
  PatchedPerson:
50532
51645
  type: object
51646
+ description: |-
51647
+ Adds a read-only ``tags`` field to a host serializer.
51648
+
51649
+ Emits ``[{id, name, color}]``. Cheap when the host queryset uses
51650
+ ``prefetch_related("tag_assignments__tag")`` — without that prefetch
51651
+ every record triggers two extra queries.
50533
51652
  properties:
50534
51653
  id:
50535
51654
  type: string
@@ -50602,6 +51721,23 @@ components:
50602
51721
  readOnly: true
50603
51722
  description: Read-only. Set to `false` when the person is linked to a platform
50604
51723
  user or merged into another person.
51724
+ tags:
51725
+ type: array
51726
+ items:
51727
+ type: object
51728
+ properties:
51729
+ id:
51730
+ type: integer
51731
+ name:
51732
+ type: string
51733
+ color:
51734
+ type: string
51735
+ example: '#3F6BFF'
51736
+ required:
51737
+ - id
51738
+ - name
51739
+ - color
51740
+ readOnly: true
50605
51741
  metadata:
50606
51742
  description: Free-form JSON for Platform-defined attributes.
50607
51743
  created_at:
@@ -50985,6 +52121,41 @@ components:
50985
52121
  platform:
50986
52122
  type: string
50987
52123
  description: The platform key
52124
+ PatchedTag:
52125
+ type: object
52126
+ properties:
52127
+ id:
52128
+ type: integer
52129
+ readOnly: true
52130
+ description: Server-assigned id.
52131
+ platform:
52132
+ type: integer
52133
+ readOnly: true
52134
+ description: Platform this Tag belongs to. Set automatically from your credentials;
52135
+ you cannot pass another Platform's id.
52136
+ name:
52137
+ type: string
52138
+ description: Display label shown on tag chips. Must be unique within your
52139
+ Platform (case-sensitive). Up to 64 characters.
52140
+ maxLength: 64
52141
+ color:
52142
+ type: string
52143
+ default: '#888888'
52144
+ description: Hex color (e.g. `#3F6BFF`) used to render the chip. Six lowercase
52145
+ or uppercase hex digits with a leading `#`.
52146
+ maxLength: 7
52147
+ metadata:
52148
+ description: Free-form JSON for Platform-defined attributes.
52149
+ created_at:
52150
+ type: string
52151
+ format: date-time
52152
+ readOnly: true
52153
+ description: Creation timestamp.
52154
+ updated_at:
52155
+ type: string
52156
+ format: date-time
52157
+ readOnly: true
52158
+ description: Last-modified timestamp.
50988
52159
  PatchedUserGroup:
50989
52160
  type: object
50990
52161
  description: Serializer for UserGroups.
@@ -51938,6 +53109,12 @@ components:
51938
53109
  - resources
51939
53110
  Person:
51940
53111
  type: object
53112
+ description: |-
53113
+ Adds a read-only ``tags`` field to a host serializer.
53114
+
53115
+ Emits ``[{id, name, color}]``. Cheap when the host queryset uses
53116
+ ``prefetch_related("tag_assignments__tag")`` — without that prefetch
53117
+ every record triggers two extra queries.
51941
53118
  properties:
51942
53119
  id:
51943
53120
  type: string
@@ -52010,6 +53187,23 @@ components:
52010
53187
  readOnly: true
52011
53188
  description: Read-only. Set to `false` when the person is linked to a platform
52012
53189
  user or merged into another person.
53190
+ tags:
53191
+ type: array
53192
+ items:
53193
+ type: object
53194
+ properties:
53195
+ id:
53196
+ type: integer
53197
+ name:
53198
+ type: string
53199
+ color:
53200
+ type: string
53201
+ example: '#3F6BFF'
53202
+ required:
53203
+ - id
53204
+ - name
53205
+ - color
53206
+ readOnly: true
52013
53207
  metadata:
52014
53208
  description: Free-form JSON for Platform-defined attributes.
52015
53209
  created_at:
@@ -52029,6 +53223,7 @@ components:
52029
53223
  - name
52030
53224
  - platform
52031
53225
  - platform_user
53226
+ - tags
52032
53227
  - updated_at
52033
53228
  PersonInviteConflict:
52034
53229
  type: object
@@ -56477,6 +57672,47 @@ components:
56477
57672
  required:
56478
57673
  - display_name
56479
57674
  - id
57675
+ Tag:
57676
+ type: object
57677
+ properties:
57678
+ id:
57679
+ type: integer
57680
+ readOnly: true
57681
+ description: Server-assigned id.
57682
+ platform:
57683
+ type: integer
57684
+ readOnly: true
57685
+ description: Platform this Tag belongs to. Set automatically from your credentials;
57686
+ you cannot pass another Platform's id.
57687
+ name:
57688
+ type: string
57689
+ description: Display label shown on tag chips. Must be unique within your
57690
+ Platform (case-sensitive). Up to 64 characters.
57691
+ maxLength: 64
57692
+ color:
57693
+ type: string
57694
+ default: '#888888'
57695
+ description: Hex color (e.g. `#3F6BFF`) used to render the chip. Six lowercase
57696
+ or uppercase hex digits with a leading `#`.
57697
+ maxLength: 7
57698
+ metadata:
57699
+ description: Free-form JSON for Platform-defined attributes.
57700
+ created_at:
57701
+ type: string
57702
+ format: date-time
57703
+ readOnly: true
57704
+ description: Creation timestamp.
57705
+ updated_at:
57706
+ type: string
57707
+ format: date-time
57708
+ readOnly: true
57709
+ description: Last-modified timestamp.
57710
+ required:
57711
+ - created_at
57712
+ - id
57713
+ - name
57714
+ - platform
57715
+ - updated_at
56480
57716
  TenantLaunchError:
56481
57717
  type: object
56482
57718
  description: An unexpected error occurred during launch process
@@ -58789,6 +60025,15 @@ components:
58789
60025
  type: boolean
58790
60026
  required:
58791
60027
  - url
60028
+ _TagAttachRequest:
60029
+ type: object
60030
+ properties:
60031
+ tag_id:
60032
+ type: integer
60033
+ minimum: 1
60034
+ description: Id of the Tag to attach. Must belong to your Platform.
60035
+ required:
60036
+ - tag_id
58792
60037
  securitySchemes:
58793
60038
  PlatformApiKeyAuthentication:
58794
60039
  type: apiKey