@iblai/iblai-api 4.415.0-core → 4.416.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 (83) hide show
  1. package/dist/index.cjs.js +648 -30
  2. package/dist/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +649 -31
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/index.umd.js +648 -30
  6. package/dist/index.umd.js.map +1 -1
  7. package/dist/types/index.d.ts +27 -1
  8. package/dist/types/models/Activity.d.ts +6 -2
  9. package/dist/types/models/Deal.d.ts +14 -2
  10. package/dist/types/models/DealBoard.d.ts +7 -0
  11. package/dist/types/models/DealBoardStage.d.ts +19 -0
  12. package/dist/types/models/DirEnum.d.ts +8 -0
  13. package/dist/types/models/Favorite.d.ts +28 -0
  14. package/dist/types/models/HistoryEntry.d.ts +15 -0
  15. package/dist/types/models/HistoryEntryActionEnum.d.ts +12 -0
  16. package/dist/types/models/ObjectTypeEnum.d.ts +12 -0
  17. package/dist/types/models/Overview.d.ts +24 -0
  18. package/dist/types/models/OverviewActivities.d.ts +5 -0
  19. package/dist/types/models/OverviewCount.d.ts +3 -0
  20. package/dist/types/models/OverviewDeals.d.ts +22 -0
  21. package/dist/types/models/OverviewMonth.d.ts +10 -0
  22. package/dist/types/models/OverviewStage.d.ts +13 -0
  23. package/dist/types/models/PaginatedFavoriteList.d.ts +7 -0
  24. package/dist/types/models/PaginatedSavedViewList.d.ts +7 -0
  25. package/dist/types/models/PatchedActivity.d.ts +6 -2
  26. package/dist/types/models/PatchedDeal.d.ts +14 -2
  27. package/dist/types/models/PatchedPerson.d.ts +4 -0
  28. package/dist/types/models/PatchedPipeline.d.ts +1 -1
  29. package/dist/types/models/PatchedSavedView.d.ts +41 -0
  30. package/dist/types/models/Person.d.ts +4 -0
  31. package/dist/types/models/Pipeline.d.ts +1 -1
  32. package/dist/types/models/PipelineStageReorderRequest.d.ts +6 -0
  33. package/dist/types/models/SavedView.d.ts +41 -0
  34. package/dist/types/models/SavedViewTypeEnum.d.ts +8 -0
  35. package/dist/types/models/SearchDeal.d.ts +40 -0
  36. package/dist/types/models/SearchOrganization.d.ts +10 -0
  37. package/dist/types/models/SearchPerson.d.ts +33 -0
  38. package/dist/types/models/SearchResponse.d.ts +12 -0
  39. package/dist/types/models/{DealStatusEnum.d.ts → Status05cEnum.d.ts} +1 -1
  40. package/dist/types/models/_Column.d.ts +7 -0
  41. package/dist/types/models/_Filter.d.ts +8 -0
  42. package/dist/types/models/_Sort.d.ts +5 -0
  43. package/dist/types/services/CrmService.d.ts +523 -12
  44. package/package.json +1 -1
  45. package/sdk_schema.yml +1905 -27
  46. package/src/core/OpenAPI.ts +1 -1
  47. package/src/index.ts +27 -1
  48. package/src/models/Activity.ts +6 -2
  49. package/src/models/Deal.ts +14 -2
  50. package/src/models/DealBoard.ts +12 -0
  51. package/src/models/DealBoardStage.ts +24 -0
  52. package/src/models/DirEnum.ts +12 -0
  53. package/src/models/Favorite.ts +33 -0
  54. package/src/models/HistoryEntry.ts +20 -0
  55. package/src/models/HistoryEntryActionEnum.ts +16 -0
  56. package/src/models/ObjectTypeEnum.ts +16 -0
  57. package/src/models/Overview.ts +29 -0
  58. package/src/models/OverviewActivities.ts +10 -0
  59. package/src/models/OverviewCount.ts +8 -0
  60. package/src/models/OverviewDeals.ts +27 -0
  61. package/src/models/OverviewMonth.ts +15 -0
  62. package/src/models/OverviewStage.ts +18 -0
  63. package/src/models/PaginatedFavoriteList.ts +12 -0
  64. package/src/models/PaginatedSavedViewList.ts +12 -0
  65. package/src/models/PatchedActivity.ts +6 -2
  66. package/src/models/PatchedDeal.ts +14 -2
  67. package/src/models/PatchedPerson.ts +4 -0
  68. package/src/models/PatchedPipeline.ts +1 -1
  69. package/src/models/PatchedSavedView.ts +46 -0
  70. package/src/models/Person.ts +4 -0
  71. package/src/models/Pipeline.ts +1 -1
  72. package/src/models/PipelineStageReorderRequest.ts +11 -0
  73. package/src/models/SavedView.ts +46 -0
  74. package/src/models/SavedViewTypeEnum.ts +12 -0
  75. package/src/models/SearchDeal.ts +45 -0
  76. package/src/models/SearchOrganization.ts +15 -0
  77. package/src/models/SearchPerson.ts +38 -0
  78. package/src/models/SearchResponse.ts +17 -0
  79. package/src/models/{DealStatusEnum.ts → Status05cEnum.ts} +1 -1
  80. package/src/models/_Column.ts +12 -0
  81. package/src/models/_Filter.ts +13 -0
  82. package/src/models/_Sort.ts +10 -0
  83. package/src/services/CrmService.ts +924 -4
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.415.0-core
4
+ version: 4.416.0-core
5
5
  description: API for iblai
6
6
  paths:
7
7
  /api/analytics/content/:
@@ -28663,15 +28663,36 @@ paths:
28663
28663
  get:
28664
28664
  operationId: crm_activities_list
28665
28665
  description: |-
28666
- Returns a paginated list of Activities in your Platform. Supports filtering by `type`, `is_done`, `owner`, `deal`, `person`, schedule-from ranges, and `metadata__has_key`.
28666
+ Returns a paginated list of Activities in your Platform. Supports filtering by `type`, `is_done`, `owner`, `deal`, `person`, `organization`, schedule-from ranges, and `metadata__has_key`.
28667
28667
 
28668
28668
  **Required permission:** `Ibl.CRM/Activities/list`.
28669
28669
  summary: List activities
28670
28670
  parameters:
28671
+ - name: date_filter
28672
+ in: query
28673
+ required: false
28674
+ description: Only rows created in this window. `custom` needs `start_date`
28675
+ and `end_date`.
28676
+ schema:
28677
+ type: string
28678
+ enum:
28679
+ - today
28680
+ - 7d
28681
+ - 30d
28682
+ - 90d
28683
+ - all_time
28684
+ - custom
28671
28685
  - in: query
28672
28686
  name: deal
28673
28687
  schema:
28674
28688
  type: number
28689
+ - name: end_date
28690
+ in: query
28691
+ required: false
28692
+ description: Last day of a custom window, inclusive (YYYY-MM-DD).
28693
+ schema:
28694
+ type: string
28695
+ format: date
28675
28696
  - in: query
28676
28697
  name: is_done
28677
28698
  schema:
@@ -28680,6 +28701,17 @@ paths:
28680
28701
  name: metadata__has_key
28681
28702
  schema:
28682
28703
  type: string
28704
+ - name: ordering
28705
+ required: false
28706
+ in: query
28707
+ description: Which field to use when ordering the results.
28708
+ schema:
28709
+ type: string
28710
+ - in: query
28711
+ name: organization
28712
+ schema:
28713
+ type: string
28714
+ format: uuid
28683
28715
  - in: query
28684
28716
  name: owner
28685
28717
  schema:
@@ -28711,6 +28743,19 @@ paths:
28711
28743
  schema:
28712
28744
  type: string
28713
28745
  format: date-time
28746
+ - name: search
28747
+ required: false
28748
+ in: query
28749
+ description: A search term.
28750
+ schema:
28751
+ type: string
28752
+ - name: start_date
28753
+ in: query
28754
+ required: false
28755
+ description: First day of a custom window (YYYY-MM-DD).
28756
+ schema:
28757
+ type: string
28758
+ format: date
28714
28759
  - in: query
28715
28760
  name: type
28716
28761
  schema:
@@ -28751,7 +28796,7 @@ paths:
28751
28796
  post:
28752
28797
  operationId: crm_activities_create
28753
28798
  description: |-
28754
- Creates an Activity. Either `deal` or `person` must be supplied; both must belong to your Platform.
28799
+ Creates an Activity. At least one of `deal`, `person` or `organization` must be supplied; all must belong to your Platform.
28755
28800
 
28756
28801
  **Required permission:** `Ibl.CRM/Activities/action`.
28757
28802
  summary: Create an activity
@@ -28989,6 +29034,27 @@ paths:
28989
29034
  schema:
28990
29035
  type: string
28991
29036
  format: date-time
29037
+ - name: date_filter
29038
+ in: query
29039
+ required: false
29040
+ description: Only rows created in this window. `custom` needs `start_date`
29041
+ and `end_date`.
29042
+ schema:
29043
+ type: string
29044
+ enum:
29045
+ - today
29046
+ - 7d
29047
+ - 30d
29048
+ - 90d
29049
+ - all_time
29050
+ - custom
29051
+ - name: end_date
29052
+ in: query
29053
+ required: false
29054
+ description: Last day of a custom window, inclusive (YYYY-MM-DD).
29055
+ schema:
29056
+ type: string
29057
+ format: date
28992
29058
  - in: query
28993
29059
  name: expected_close_date__gte
28994
29060
  schema:
@@ -29003,6 +29069,12 @@ paths:
29003
29069
  name: metadata__has_key
29004
29070
  schema:
29005
29071
  type: string
29072
+ - name: ordering
29073
+ required: false
29074
+ in: query
29075
+ description: Which field to use when ordering the results.
29076
+ schema:
29077
+ type: string
29006
29078
  - in: query
29007
29079
  name: organization
29008
29080
  schema:
@@ -29033,6 +29105,12 @@ paths:
29033
29105
  name: pipeline
29034
29106
  schema:
29035
29107
  type: number
29108
+ - name: search
29109
+ required: false
29110
+ in: query
29111
+ description: A search term.
29112
+ schema:
29113
+ type: string
29036
29114
  - in: query
29037
29115
  name: source
29038
29116
  schema:
@@ -29041,6 +29119,13 @@ paths:
29041
29119
  name: stage
29042
29120
  schema:
29043
29121
  type: number
29122
+ - name: start_date
29123
+ in: query
29124
+ required: false
29125
+ description: First day of a custom window (YYYY-MM-DD).
29126
+ schema:
29127
+ type: string
29128
+ format: date
29044
29129
  - in: query
29045
29130
  name: status
29046
29131
  schema:
@@ -29266,6 +29351,38 @@ paths:
29266
29351
  description: Missing required permission `Ibl.CRM/Deals/delete`.
29267
29352
  '404':
29268
29353
  description: Deal not found.
29354
+ /api/crm/deals/{id}/history/:
29355
+ get:
29356
+ operationId: crm_deals_history_list
29357
+ description: |-
29358
+ The record's audit entries (create and field updates), newest first, up to 200, each with `changes: {field: [old, new]}` as strings (a null reads `"None"`). The actor is the platform user who made the change. Bulk writes (a person merge, links a delete clears) leave no entry.
29359
+
29360
+ **Required permission:** the record's `read` verb.
29361
+ summary: Field-change history for this record
29362
+ parameters:
29363
+ - in: path
29364
+ name: id
29365
+ schema:
29366
+ type: integer
29367
+ description: A unique integer value identifying this deal.
29368
+ required: true
29369
+ tags:
29370
+ - crm
29371
+ security:
29372
+ - PlatformApiKeyAuthentication: []
29373
+ responses:
29374
+ '200':
29375
+ content:
29376
+ application/json:
29377
+ schema:
29378
+ type: array
29379
+ items:
29380
+ $ref: '#/components/schemas/HistoryEntry'
29381
+ description: ''
29382
+ '403':
29383
+ description: Missing the record's `read` permission.
29384
+ '404':
29385
+ description: Record not found.
29269
29386
  /api/crm/deals/{id}/lost/:
29270
29387
  post:
29271
29388
  operationId: crm_deals_lost_create
@@ -29496,6 +29613,321 @@ paths:
29496
29613
  description: Missing required permission `Ibl.CRM/Deals/write`.
29497
29614
  '404':
29498
29615
  description: Deal not found.
29616
+ /api/crm/deals/board/:
29617
+ get:
29618
+ operationId: crm_deals_board_retrieve
29619
+ description: |-
29620
+ Every deal of one pipeline grouped by stage, in `sort_order`, with per-stage count, value and probability-weighted value. Each stage carries its newest `limit` deals; `has_more` says the stage holds more. The list filters (`owner`, `source`, `tags`, `search`, `status`, …) apply; `stage` is the grouping and `ordering` is ignored.
29621
+
29622
+ **Required permission:** `Ibl.CRM/Deals/list`.
29623
+ summary: Deals grouped by stage (the board)
29624
+ parameters:
29625
+ - in: query
29626
+ name: created_at__gte
29627
+ schema:
29628
+ type: string
29629
+ format: date-time
29630
+ - in: query
29631
+ name: created_at__lte
29632
+ schema:
29633
+ type: string
29634
+ format: date-time
29635
+ - name: date_filter
29636
+ in: query
29637
+ required: false
29638
+ description: Only rows created in this window. `custom` needs `start_date`
29639
+ and `end_date`.
29640
+ schema:
29641
+ type: string
29642
+ enum:
29643
+ - today
29644
+ - 7d
29645
+ - 30d
29646
+ - 90d
29647
+ - all_time
29648
+ - custom
29649
+ - name: end_date
29650
+ in: query
29651
+ required: false
29652
+ description: Last day of a custom window, inclusive (YYYY-MM-DD).
29653
+ schema:
29654
+ type: string
29655
+ format: date
29656
+ - in: query
29657
+ name: expected_close_date__gte
29658
+ schema:
29659
+ type: string
29660
+ format: date-time
29661
+ - in: query
29662
+ name: expected_close_date__lte
29663
+ schema:
29664
+ type: string
29665
+ format: date-time
29666
+ - in: query
29667
+ name: limit
29668
+ schema:
29669
+ type: integer
29670
+ description: Deals per stage, 1–200 (default 100).
29671
+ - in: query
29672
+ name: metadata__has_key
29673
+ schema:
29674
+ type: string
29675
+ - in: query
29676
+ name: organization
29677
+ schema:
29678
+ type: string
29679
+ format: uuid
29680
+ - in: query
29681
+ name: owner
29682
+ schema:
29683
+ type: number
29684
+ - in: query
29685
+ name: person
29686
+ schema:
29687
+ type: string
29688
+ format: uuid
29689
+ - in: query
29690
+ name: pipeline
29691
+ schema:
29692
+ type: integer
29693
+ description: 'Pipeline id (default: the default pipeline).'
29694
+ - name: search
29695
+ required: false
29696
+ in: query
29697
+ description: A search term.
29698
+ schema:
29699
+ type: string
29700
+ - in: query
29701
+ name: source
29702
+ schema:
29703
+ type: number
29704
+ - in: query
29705
+ name: stage
29706
+ schema:
29707
+ type: number
29708
+ - name: start_date
29709
+ in: query
29710
+ required: false
29711
+ description: First day of a custom window (YYYY-MM-DD).
29712
+ schema:
29713
+ type: string
29714
+ format: date
29715
+ - in: query
29716
+ name: status
29717
+ schema:
29718
+ type: string
29719
+ enum:
29720
+ - lost
29721
+ - open
29722
+ - won
29723
+ description: |-
29724
+ Service-managed (read-only in serializer). Derived from the destination stage's is_won/is_lost.
29725
+
29726
+ * `open` - Open
29727
+ * `won` - Won
29728
+ * `lost` - Lost
29729
+ - in: query
29730
+ name: tags
29731
+ schema:
29732
+ type: string
29733
+ tags:
29734
+ - crm
29735
+ security:
29736
+ - PlatformApiKeyAuthentication: []
29737
+ responses:
29738
+ '200':
29739
+ content:
29740
+ application/json:
29741
+ schema:
29742
+ $ref: '#/components/schemas/DealBoard'
29743
+ description: ''
29744
+ '400':
29745
+ description: Bad `pipeline` or `limit`.
29746
+ '403':
29747
+ description: Missing required permission `Ibl.CRM/Deals/list`.
29748
+ '404':
29749
+ description: Pipeline not found.
29750
+ /api/crm/favorites/:
29751
+ get:
29752
+ operationId: crm_favorites_list
29753
+ description: |-
29754
+ Your starred persons, organizations and deals in this Platform, newest first.
29755
+
29756
+ **Required permission:** `Ibl.CRM/Favorites/list`.
29757
+ summary: List my favorites
29758
+ parameters:
29759
+ - name: date_filter
29760
+ in: query
29761
+ required: false
29762
+ description: Only rows created in this window. `custom` needs `start_date`
29763
+ and `end_date`.
29764
+ schema:
29765
+ type: string
29766
+ enum:
29767
+ - today
29768
+ - 7d
29769
+ - 30d
29770
+ - 90d
29771
+ - all_time
29772
+ - custom
29773
+ - in: query
29774
+ name: deal
29775
+ schema:
29776
+ type: number
29777
+ - name: end_date
29778
+ in: query
29779
+ required: false
29780
+ description: Last day of a custom window, inclusive (YYYY-MM-DD).
29781
+ schema:
29782
+ type: string
29783
+ format: date
29784
+ - name: ordering
29785
+ required: false
29786
+ in: query
29787
+ description: Which field to use when ordering the results.
29788
+ schema:
29789
+ type: string
29790
+ - in: query
29791
+ name: organization
29792
+ schema:
29793
+ type: string
29794
+ format: uuid
29795
+ - name: page
29796
+ required: false
29797
+ in: query
29798
+ description: A page number within the paginated result set.
29799
+ schema:
29800
+ type: integer
29801
+ - name: page_size
29802
+ required: false
29803
+ in: query
29804
+ description: Number of results to return per page.
29805
+ schema:
29806
+ type: integer
29807
+ - in: query
29808
+ name: person
29809
+ schema:
29810
+ type: string
29811
+ format: uuid
29812
+ - name: start_date
29813
+ in: query
29814
+ required: false
29815
+ description: First day of a custom window (YYYY-MM-DD).
29816
+ schema:
29817
+ type: string
29818
+ format: date
29819
+ tags:
29820
+ - crm
29821
+ security:
29822
+ - PlatformApiKeyAuthentication: []
29823
+ responses:
29824
+ '200':
29825
+ content:
29826
+ application/json:
29827
+ schema:
29828
+ $ref: '#/components/schemas/PaginatedFavoriteList'
29829
+ description: ''
29830
+ '401':
29831
+ description: Authentication required.
29832
+ '403':
29833
+ description: Missing required permission `Ibl.CRM/Favorites/list`.
29834
+ post:
29835
+ operationId: crm_favorites_create
29836
+ description: |-
29837
+ Stars exactly one of `person`, `organization`, `deal`. Starring a record you already starred returns the existing favorite with `200`. You also need the target's `read` permission.
29838
+
29839
+ **Required permission:** `Ibl.CRM/Favorites/action`.
29840
+ summary: Star a record
29841
+ tags:
29842
+ - crm
29843
+ requestBody:
29844
+ content:
29845
+ application/json:
29846
+ schema:
29847
+ $ref: '#/components/schemas/Favorite'
29848
+ application/scim+json:
29849
+ schema:
29850
+ $ref: '#/components/schemas/Favorite'
29851
+ application/x-www-form-urlencoded:
29852
+ schema:
29853
+ $ref: '#/components/schemas/Favorite'
29854
+ multipart/form-data:
29855
+ schema:
29856
+ $ref: '#/components/schemas/Favorite'
29857
+ '*/*':
29858
+ schema:
29859
+ $ref: '#/components/schemas/Favorite'
29860
+ security:
29861
+ - PlatformApiKeyAuthentication: []
29862
+ responses:
29863
+ '201':
29864
+ content:
29865
+ application/json:
29866
+ schema:
29867
+ $ref: '#/components/schemas/Favorite'
29868
+ description: ''
29869
+ '200':
29870
+ content:
29871
+ application/json:
29872
+ schema:
29873
+ $ref: '#/components/schemas/Favorite'
29874
+ description: ''
29875
+ '400':
29876
+ description: Not exactly one target.
29877
+ '403':
29878
+ description: Missing `Ibl.CRM/Favorites/action` or the target's `read`.
29879
+ /api/crm/favorites/{id}/:
29880
+ get:
29881
+ operationId: crm_favorites_retrieve
29882
+ description: '**Required permission:** `Ibl.CRM/Favorites/read`.'
29883
+ summary: One of your favorites
29884
+ parameters:
29885
+ - in: path
29886
+ name: id
29887
+ schema:
29888
+ type: integer
29889
+ description: A unique integer value identifying this favorite.
29890
+ required: true
29891
+ tags:
29892
+ - crm
29893
+ security:
29894
+ - PlatformApiKeyAuthentication: []
29895
+ responses:
29896
+ '200':
29897
+ content:
29898
+ application/json:
29899
+ schema:
29900
+ $ref: '#/components/schemas/Favorite'
29901
+ description: ''
29902
+ '403':
29903
+ description: Missing required permission `Ibl.CRM/Favorites/read`.
29904
+ '404':
29905
+ description: Favorite not found.
29906
+ delete:
29907
+ operationId: crm_favorites_destroy
29908
+ description: |-
29909
+ Removes one of your favorites.
29910
+
29911
+ **Required permission:** `Ibl.CRM/Favorites/delete`.
29912
+ summary: Unstar a record
29913
+ parameters:
29914
+ - in: path
29915
+ name: id
29916
+ schema:
29917
+ type: integer
29918
+ description: A unique integer value identifying this favorite.
29919
+ required: true
29920
+ tags:
29921
+ - crm
29922
+ security:
29923
+ - PlatformApiKeyAuthentication: []
29924
+ responses:
29925
+ '204':
29926
+ description: Deleted.
29927
+ '403':
29928
+ description: Missing required permission `Ibl.CRM/Favorites/delete`.
29929
+ '404':
29930
+ description: Favorite not found.
29499
29931
  /api/crm/lead-sources/:
29500
29932
  get:
29501
29933
  operationId: crm_lead_sources_list
@@ -29509,10 +29941,37 @@ paths:
29509
29941
  name: code
29510
29942
  schema:
29511
29943
  type: string
29944
+ - name: date_filter
29945
+ in: query
29946
+ required: false
29947
+ description: Only rows created in this window. `custom` needs `start_date`
29948
+ and `end_date`.
29949
+ schema:
29950
+ type: string
29951
+ enum:
29952
+ - today
29953
+ - 7d
29954
+ - 30d
29955
+ - 90d
29956
+ - all_time
29957
+ - custom
29958
+ - name: end_date
29959
+ in: query
29960
+ required: false
29961
+ description: Last day of a custom window, inclusive (YYYY-MM-DD).
29962
+ schema:
29963
+ type: string
29964
+ format: date
29512
29965
  - in: query
29513
29966
  name: name
29514
29967
  schema:
29515
29968
  type: string
29969
+ - name: ordering
29970
+ required: false
29971
+ in: query
29972
+ description: Which field to use when ordering the results.
29973
+ schema:
29974
+ type: string
29516
29975
  - name: page
29517
29976
  required: false
29518
29977
  in: query
@@ -29525,6 +29984,19 @@ paths:
29525
29984
  description: Number of results to return per page.
29526
29985
  schema:
29527
29986
  type: integer
29987
+ - name: search
29988
+ required: false
29989
+ in: query
29990
+ description: A search term.
29991
+ schema:
29992
+ type: string
29993
+ - name: start_date
29994
+ in: query
29995
+ required: false
29996
+ description: First day of a custom window (YYYY-MM-DD).
29997
+ schema:
29998
+ type: string
29999
+ format: date
29528
30000
  tags:
29529
30001
  - crm
29530
30002
  security:
@@ -29741,10 +30213,37 @@ paths:
29741
30213
  **Required permission:** `Ibl.CRM/Organizations/list`.
29742
30214
  summary: List organizations
29743
30215
  parameters:
30216
+ - name: date_filter
30217
+ in: query
30218
+ required: false
30219
+ description: Only rows created in this window. `custom` needs `start_date`
30220
+ and `end_date`.
30221
+ schema:
30222
+ type: string
30223
+ enum:
30224
+ - today
30225
+ - 7d
30226
+ - 30d
30227
+ - 90d
30228
+ - all_time
30229
+ - custom
30230
+ - name: end_date
30231
+ in: query
30232
+ required: false
30233
+ description: Last day of a custom window, inclusive (YYYY-MM-DD).
30234
+ schema:
30235
+ type: string
30236
+ format: date
29744
30237
  - in: query
29745
30238
  name: name
29746
30239
  schema:
29747
30240
  type: string
30241
+ - name: ordering
30242
+ required: false
30243
+ in: query
30244
+ description: Which field to use when ordering the results.
30245
+ schema:
30246
+ type: string
29748
30247
  - in: query
29749
30248
  name: owner
29750
30249
  schema:
@@ -29761,6 +30260,19 @@ paths:
29761
30260
  description: Number of results to return per page.
29762
30261
  schema:
29763
30262
  type: integer
30263
+ - name: search
30264
+ required: false
30265
+ in: query
30266
+ description: A search term.
30267
+ schema:
30268
+ type: string
30269
+ - name: start_date
30270
+ in: query
30271
+ required: false
30272
+ description: First day of a custom window (YYYY-MM-DD).
30273
+ schema:
30274
+ type: string
30275
+ format: date
29764
30276
  - in: query
29765
30277
  name: tags
29766
30278
  schema:
@@ -29953,7 +30465,7 @@ paths:
29953
30465
  delete:
29954
30466
  operationId: crm_organizations_destroy
29955
30467
  description: |-
29956
- Deletes the organization. Any persons linked to it are kept; their organization reference is cleared.
30468
+ Deletes the organization. Persons and deals linked to it are kept with the reference cleared; activities attached only to it are deleted, the rest just lose the link.
29957
30469
 
29958
30470
  **Required permission:** `Ibl.CRM/Organizations/delete`.
29959
30471
  summary: Delete an organization
@@ -29976,6 +30488,39 @@ paths:
29976
30488
  description: Missing required permission `Ibl.CRM/Organizations/delete`.
29977
30489
  '404':
29978
30490
  description: Organization not found.
30491
+ /api/crm/organizations/{id}/history/:
30492
+ get:
30493
+ operationId: crm_organizations_history_list
30494
+ description: |-
30495
+ The record's audit entries (create and field updates), newest first, up to 200, each with `changes: {field: [old, new]}` as strings (a null reads `"None"`). The actor is the platform user who made the change. Bulk writes (a person merge, links a delete clears) leave no entry.
30496
+
30497
+ **Required permission:** the record's `read` verb.
30498
+ summary: Field-change history for this record
30499
+ parameters:
30500
+ - in: path
30501
+ name: id
30502
+ schema:
30503
+ type: string
30504
+ format: uuid
30505
+ description: Opaque UUID — used in API URLs and external references.
30506
+ required: true
30507
+ tags:
30508
+ - crm
30509
+ security:
30510
+ - PlatformApiKeyAuthentication: []
30511
+ responses:
30512
+ '200':
30513
+ content:
30514
+ application/json:
30515
+ schema:
30516
+ type: array
30517
+ items:
30518
+ $ref: '#/components/schemas/HistoryEntry'
30519
+ description: ''
30520
+ '403':
30521
+ description: Missing the record's `read` permission.
30522
+ '404':
30523
+ description: Record not found.
29979
30524
  /api/crm/organizations/{id}/tags/:
29980
30525
  post:
29981
30526
  operationId: crm_organizations_tags_create
@@ -30058,6 +30603,63 @@ paths:
30058
30603
  description: No response body
30059
30604
  '404':
30060
30605
  description: No response body
30606
+ /api/crm/overview/:
30607
+ get:
30608
+ operationId: crm_overview_retrieve
30609
+ description: |-
30610
+ Dashboard figures: person and organization counts, open-deal count and value (plain and probability-weighted), this month's won / lost deals, open deals per stage of one pipeline, six months of won / lost history, and activities due today or overdue. Sections you may not `list` are omitted.
30611
+
30612
+ `date_filter` (or `start_date` + `end_date`) adds `period_*` siblings for that window.
30613
+
30614
+ **Required permission:** the `list` verb of each section.
30615
+ summary: CRM overview
30616
+ parameters:
30617
+ - in: query
30618
+ name: date_filter
30619
+ schema:
30620
+ type: string
30621
+ enum:
30622
+ - 30d
30623
+ - 7d
30624
+ - 90d
30625
+ - all_time
30626
+ - custom
30627
+ - today
30628
+ description: Window for the `period_*` figures.
30629
+ - in: query
30630
+ name: end_date
30631
+ schema:
30632
+ type: string
30633
+ format: date
30634
+ description: Custom window end.
30635
+ - in: query
30636
+ name: pipeline
30637
+ schema:
30638
+ type: integer
30639
+ description: 'Pipeline for `deals.by_stage` (default: the default pipeline).'
30640
+ - in: query
30641
+ name: start_date
30642
+ schema:
30643
+ type: string
30644
+ format: date
30645
+ description: Custom window start.
30646
+ tags:
30647
+ - crm
30648
+ security:
30649
+ - PlatformApiKeyAuthentication: []
30650
+ responses:
30651
+ '200':
30652
+ content:
30653
+ application/json:
30654
+ schema:
30655
+ $ref: '#/components/schemas/Overview'
30656
+ description: ''
30657
+ '400':
30658
+ description: Invalid window or pipeline parameter.
30659
+ '403':
30660
+ description: No CRM list permission.
30661
+ '404':
30662
+ description: Pipeline not found.
30061
30663
  /api/crm/persons/:
30062
30664
  get:
30063
30665
  operationId: crm_persons_list
@@ -30067,6 +30669,10 @@ paths:
30067
30669
  **Required permission:** `Ibl.CRM/Persons/list`.
30068
30670
  summary: List persons
30069
30671
  parameters:
30672
+ - in: query
30673
+ name: active
30674
+ schema:
30675
+ type: boolean
30070
30676
  - in: query
30071
30677
  name: created_at__gte
30072
30678
  schema:
@@ -30077,6 +30683,27 @@ paths:
30077
30683
  schema:
30078
30684
  type: string
30079
30685
  format: date-time
30686
+ - name: date_filter
30687
+ in: query
30688
+ required: false
30689
+ description: Only rows created in this window. `custom` needs `start_date`
30690
+ and `end_date`.
30691
+ schema:
30692
+ type: string
30693
+ enum:
30694
+ - today
30695
+ - 7d
30696
+ - 30d
30697
+ - 90d
30698
+ - all_time
30699
+ - custom
30700
+ - name: end_date
30701
+ in: query
30702
+ required: false
30703
+ description: Last day of a custom window, inclusive (YYYY-MM-DD).
30704
+ schema:
30705
+ type: string
30706
+ format: date
30080
30707
  - in: query
30081
30708
  name: lifecycle_stage
30082
30709
  schema:
@@ -30099,6 +30726,12 @@ paths:
30099
30726
  name: metadata__has_key
30100
30727
  schema:
30101
30728
  type: string
30729
+ - name: ordering
30730
+ required: false
30731
+ in: query
30732
+ description: Which field to use when ordering the results.
30733
+ schema:
30734
+ type: string
30102
30735
  - in: query
30103
30736
  name: organization
30104
30737
  schema:
@@ -30120,6 +30753,19 @@ paths:
30120
30753
  description: Number of results to return per page.
30121
30754
  schema:
30122
30755
  type: integer
30756
+ - name: search
30757
+ required: false
30758
+ in: query
30759
+ description: A search term.
30760
+ schema:
30761
+ type: string
30762
+ - name: start_date
30763
+ in: query
30764
+ required: false
30765
+ description: First day of a custom window (YYYY-MM-DD).
30766
+ schema:
30767
+ type: string
30768
+ format: date
30123
30769
  - in: query
30124
30770
  name: tags
30125
30771
  schema:
@@ -30312,7 +30958,7 @@ paths:
30312
30958
  delete:
30313
30959
  operationId: crm_persons_destroy
30314
30960
  description: |-
30315
- Deletes the person.
30961
+ Deletes the person. Fails with `409 Conflict` if any Deal still references it.
30316
30962
 
30317
30963
  **Required permission:** `Ibl.CRM/Persons/delete`.
30318
30964
  summary: Delete a person
@@ -30335,6 +30981,41 @@ paths:
30335
30981
  description: Missing required permission `Ibl.CRM/Persons/delete`.
30336
30982
  '404':
30337
30983
  description: Person not found.
30984
+ '409':
30985
+ description: Person still has Deals attached.
30986
+ /api/crm/persons/{id}/history/:
30987
+ get:
30988
+ operationId: crm_persons_history_list
30989
+ description: |-
30990
+ The record's audit entries (create and field updates), newest first, up to 200, each with `changes: {field: [old, new]}` as strings (a null reads `"None"`). The actor is the platform user who made the change. Bulk writes (a person merge, links a delete clears) leave no entry.
30991
+
30992
+ **Required permission:** the record's `read` verb.
30993
+ summary: Field-change history for this record
30994
+ parameters:
30995
+ - in: path
30996
+ name: id
30997
+ schema:
30998
+ type: string
30999
+ format: uuid
31000
+ description: Opaque UUID — used in API URLs and external references.
31001
+ required: true
31002
+ tags:
31003
+ - crm
31004
+ security:
31005
+ - PlatformApiKeyAuthentication: []
31006
+ responses:
31007
+ '200':
31008
+ content:
31009
+ application/json:
31010
+ schema:
31011
+ type: array
31012
+ items:
31013
+ $ref: '#/components/schemas/HistoryEntry'
31014
+ description: ''
31015
+ '403':
31016
+ description: Missing the record's `read` permission.
31017
+ '404':
31018
+ description: Record not found.
30338
31019
  /api/crm/persons/{id}/invite/:
30339
31020
  post:
30340
31021
  operationId: crm_persons_invite_create
@@ -30590,6 +31271,27 @@ paths:
30590
31271
  name: code
30591
31272
  schema:
30592
31273
  type: string
31274
+ - name: date_filter
31275
+ in: query
31276
+ required: false
31277
+ description: Only rows created in this window. `custom` needs `start_date`
31278
+ and `end_date`.
31279
+ schema:
31280
+ type: string
31281
+ enum:
31282
+ - today
31283
+ - 7d
31284
+ - 30d
31285
+ - 90d
31286
+ - all_time
31287
+ - custom
31288
+ - name: end_date
31289
+ in: query
31290
+ required: false
31291
+ description: Last day of a custom window, inclusive (YYYY-MM-DD).
31292
+ schema:
31293
+ type: string
31294
+ format: date
30593
31295
  - in: query
30594
31296
  name: is_default
30595
31297
  schema:
@@ -30598,6 +31300,12 @@ paths:
30598
31300
  name: name
30599
31301
  schema:
30600
31302
  type: string
31303
+ - name: ordering
31304
+ required: false
31305
+ in: query
31306
+ description: Which field to use when ordering the results.
31307
+ schema:
31308
+ type: string
30601
31309
  - name: page
30602
31310
  required: false
30603
31311
  in: query
@@ -30610,6 +31318,19 @@ paths:
30610
31318
  description: Number of results to return per page.
30611
31319
  schema:
30612
31320
  type: integer
31321
+ - name: search
31322
+ required: false
31323
+ in: query
31324
+ description: A search term.
31325
+ schema:
31326
+ type: string
31327
+ - name: start_date
31328
+ in: query
31329
+ required: false
31330
+ description: First day of a custom window (YYYY-MM-DD).
31331
+ schema:
31332
+ type: string
31333
+ format: date
30613
31334
  tags:
30614
31335
  - crm
30615
31336
  security:
@@ -30678,6 +31399,27 @@ paths:
30678
31399
  name: code
30679
31400
  schema:
30680
31401
  type: string
31402
+ - name: date_filter
31403
+ in: query
31404
+ required: false
31405
+ description: Only rows created in this window. `custom` needs `start_date`
31406
+ and `end_date`.
31407
+ schema:
31408
+ type: string
31409
+ enum:
31410
+ - today
31411
+ - 7d
31412
+ - 30d
31413
+ - 90d
31414
+ - all_time
31415
+ - custom
31416
+ - name: end_date
31417
+ in: query
31418
+ required: false
31419
+ description: Last day of a custom window, inclusive (YYYY-MM-DD).
31420
+ schema:
31421
+ type: string
31422
+ format: date
30681
31423
  - in: query
30682
31424
  name: is_lost
30683
31425
  schema:
@@ -30686,6 +31428,12 @@ paths:
30686
31428
  name: is_won
30687
31429
  schema:
30688
31430
  type: boolean
31431
+ - name: ordering
31432
+ required: false
31433
+ in: query
31434
+ description: Which field to use when ordering the results.
31435
+ schema:
31436
+ type: string
30689
31437
  - name: page
30690
31438
  required: false
30691
31439
  in: query
@@ -30703,6 +31451,19 @@ paths:
30703
31451
  schema:
30704
31452
  type: integer
30705
31453
  required: true
31454
+ - name: search
31455
+ required: false
31456
+ in: query
31457
+ description: A search term.
31458
+ schema:
31459
+ type: string
31460
+ - name: start_date
31461
+ in: query
31462
+ required: false
31463
+ description: First day of a custom window (YYYY-MM-DD).
31464
+ schema:
31465
+ type: string
31466
+ format: date
30706
31467
  tags:
30707
31468
  - crm
30708
31469
  security:
@@ -31090,6 +31851,91 @@ paths:
31090
31851
  description: Pipeline not found.
31091
31852
  '409':
31092
31853
  description: Pipeline still has Deals attached.
31854
+ /api/crm/pipelines/{id}/stages/reorder/:
31855
+ post:
31856
+ operationId: crm_pipelines_stages_reorder_create
31857
+ description: |-
31858
+ Sets `sort_order` on every stage of the Pipeline from the position of its id in `order`, in one transaction. `order` must list each stage of this Pipeline exactly once.
31859
+
31860
+ **Required permission:** `Ibl.CRM/Pipelines/write`.
31861
+ summary: Reorder a pipeline's stages
31862
+ parameters:
31863
+ - in: path
31864
+ name: id
31865
+ schema:
31866
+ type: integer
31867
+ description: A unique integer value identifying this pipeline.
31868
+ required: true
31869
+ tags:
31870
+ - crm
31871
+ requestBody:
31872
+ content:
31873
+ application/json:
31874
+ schema:
31875
+ $ref: '#/components/schemas/PipelineStageReorderRequest'
31876
+ application/scim+json:
31877
+ schema:
31878
+ $ref: '#/components/schemas/PipelineStageReorderRequest'
31879
+ application/x-www-form-urlencoded:
31880
+ schema:
31881
+ $ref: '#/components/schemas/PipelineStageReorderRequest'
31882
+ multipart/form-data:
31883
+ schema:
31884
+ $ref: '#/components/schemas/PipelineStageReorderRequest'
31885
+ '*/*':
31886
+ schema:
31887
+ $ref: '#/components/schemas/PipelineStageReorderRequest'
31888
+ required: true
31889
+ security:
31890
+ - PlatformApiKeyAuthentication: []
31891
+ responses:
31892
+ '200':
31893
+ content:
31894
+ application/json:
31895
+ schema:
31896
+ $ref: '#/components/schemas/Pipeline'
31897
+ description: ''
31898
+ '400':
31899
+ description: '`order` is not a permutation of the stages.'
31900
+ '403':
31901
+ description: Missing required permission `Ibl.CRM/Pipelines/write`.
31902
+ '404':
31903
+ description: Pipeline not found.
31904
+ /api/crm/search/:
31905
+ get:
31906
+ operationId: crm_search_retrieve
31907
+ description: |-
31908
+ Case-insensitive substring match on person name / email / job title, organization name and deal title, up to `limit` rows per bucket. A bucket is present only when you hold that resource's `list` permission.
31909
+
31910
+ **Required permission:** `Ibl.CRM/Persons/list`, `Ibl.CRM/Organizations/list` or `Ibl.CRM/Deals/list` (at least one).
31911
+ summary: Search persons, organizations and deals
31912
+ parameters:
31913
+ - in: query
31914
+ name: limit
31915
+ schema:
31916
+ type: integer
31917
+ description: Rows per bucket, 1–25 (default 8).
31918
+ - in: query
31919
+ name: q
31920
+ schema:
31921
+ type: string
31922
+ description: Search text.
31923
+ required: true
31924
+ tags:
31925
+ - crm
31926
+ security:
31927
+ - PlatformApiKeyAuthentication: []
31928
+ responses:
31929
+ '200':
31930
+ content:
31931
+ application/json:
31932
+ schema:
31933
+ $ref: '#/components/schemas/SearchResponse'
31934
+ description: ''
31935
+ '400':
31936
+ description: '`q` missing or `limit` out of range.'
31937
+ '403':
31938
+ description: No CRM list permission.
31093
31939
  /api/crm/tags/:
31094
31940
  get:
31095
31941
  operationId: crm_tags_list
@@ -31109,10 +31955,37 @@ paths:
31109
31955
  schema:
31110
31956
  type: string
31111
31957
  format: date-time
31958
+ - name: date_filter
31959
+ in: query
31960
+ required: false
31961
+ description: Only rows created in this window. `custom` needs `start_date`
31962
+ and `end_date`.
31963
+ schema:
31964
+ type: string
31965
+ enum:
31966
+ - today
31967
+ - 7d
31968
+ - 30d
31969
+ - 90d
31970
+ - all_time
31971
+ - custom
31972
+ - name: end_date
31973
+ in: query
31974
+ required: false
31975
+ description: Last day of a custom window, inclusive (YYYY-MM-DD).
31976
+ schema:
31977
+ type: string
31978
+ format: date
31112
31979
  - in: query
31113
31980
  name: name
31114
31981
  schema:
31115
31982
  type: string
31983
+ - name: ordering
31984
+ required: false
31985
+ in: query
31986
+ description: Which field to use when ordering the results.
31987
+ schema:
31988
+ type: string
31116
31989
  - name: page
31117
31990
  required: false
31118
31991
  in: query
@@ -31125,6 +31998,19 @@ paths:
31125
31998
  description: Number of results to return per page.
31126
31999
  schema:
31127
32000
  type: integer
32001
+ - name: search
32002
+ required: false
32003
+ in: query
32004
+ description: A search term.
32005
+ schema:
32006
+ type: string
32007
+ - name: start_date
32008
+ in: query
32009
+ required: false
32010
+ description: First day of a custom window (YYYY-MM-DD).
32011
+ schema:
32012
+ type: string
32013
+ format: date
31128
32014
  tags:
31129
32015
  - crm
31130
32016
  security:
@@ -31332,6 +32218,290 @@ paths:
31332
32218
  description: Missing required permission `Ibl.CRM/Tags/delete`.
31333
32219
  '404':
31334
32220
  description: Tag not found.
32221
+ /api/crm/views/:
32222
+ get:
32223
+ operationId: crm_views_list
32224
+ description: |-
32225
+ Your saved views in this Platform; filter with `object_type`.
32226
+
32227
+ **Required permission:** `Ibl.CRM/Views/list`.
32228
+ summary: List my saved views
32229
+ parameters:
32230
+ - name: date_filter
32231
+ in: query
32232
+ required: false
32233
+ description: Only rows created in this window. `custom` needs `start_date`
32234
+ and `end_date`.
32235
+ schema:
32236
+ type: string
32237
+ enum:
32238
+ - today
32239
+ - 7d
32240
+ - 30d
32241
+ - 90d
32242
+ - all_time
32243
+ - custom
32244
+ - name: end_date
32245
+ in: query
32246
+ required: false
32247
+ description: Last day of a custom window, inclusive (YYYY-MM-DD).
32248
+ schema:
32249
+ type: string
32250
+ format: date
32251
+ - in: query
32252
+ name: object_type
32253
+ schema:
32254
+ type: string
32255
+ enum:
32256
+ - activities
32257
+ - deals
32258
+ - organizations
32259
+ - persons
32260
+ description: |-
32261
+ The list this view belongs to.
32262
+
32263
+ * `persons` - Persons
32264
+ * `organizations` - Organizations
32265
+ * `deals` - Deals
32266
+ * `activities` - Activities
32267
+ - name: ordering
32268
+ required: false
32269
+ in: query
32270
+ description: Which field to use when ordering the results.
32271
+ schema:
32272
+ type: string
32273
+ - name: page
32274
+ required: false
32275
+ in: query
32276
+ description: A page number within the paginated result set.
32277
+ schema:
32278
+ type: integer
32279
+ - name: page_size
32280
+ required: false
32281
+ in: query
32282
+ description: Number of results to return per page.
32283
+ schema:
32284
+ type: integer
32285
+ - name: search
32286
+ required: false
32287
+ in: query
32288
+ description: A search term.
32289
+ schema:
32290
+ type: string
32291
+ - name: start_date
32292
+ in: query
32293
+ required: false
32294
+ description: First day of a custom window (YYYY-MM-DD).
32295
+ schema:
32296
+ type: string
32297
+ format: date
32298
+ - in: query
32299
+ name: type
32300
+ schema:
32301
+ type: string
32302
+ enum:
32303
+ - kanban
32304
+ - table
32305
+ description: |-
32306
+ `kanban` is available for deals only.
32307
+
32308
+ * `table` - Table
32309
+ * `kanban` - Kanban
32310
+ tags:
32311
+ - crm
32312
+ security:
32313
+ - PlatformApiKeyAuthentication: []
32314
+ responses:
32315
+ '200':
32316
+ content:
32317
+ application/json:
32318
+ schema:
32319
+ $ref: '#/components/schemas/PaginatedSavedViewList'
32320
+ description: ''
32321
+ '401':
32322
+ description: Authentication required.
32323
+ '403':
32324
+ description: Missing required permission `Ibl.CRM/Views/list`.
32325
+ post:
32326
+ operationId: crm_views_create
32327
+ description: |-
32328
+ Stores columns, filters, sorts and (for deals) a kanban grouping under a name unique to you and the list.
32329
+
32330
+ **Required permission:** `Ibl.CRM/Views/action`.
32331
+ summary: Save a view
32332
+ tags:
32333
+ - crm
32334
+ requestBody:
32335
+ content:
32336
+ application/json:
32337
+ schema:
32338
+ $ref: '#/components/schemas/SavedView'
32339
+ application/scim+json:
32340
+ schema:
32341
+ $ref: '#/components/schemas/SavedView'
32342
+ application/x-www-form-urlencoded:
32343
+ schema:
32344
+ $ref: '#/components/schemas/SavedView'
32345
+ multipart/form-data:
32346
+ schema:
32347
+ $ref: '#/components/schemas/SavedView'
32348
+ '*/*':
32349
+ schema:
32350
+ $ref: '#/components/schemas/SavedView'
32351
+ required: true
32352
+ security:
32353
+ - PlatformApiKeyAuthentication: []
32354
+ responses:
32355
+ '201':
32356
+ content:
32357
+ application/json:
32358
+ schema:
32359
+ $ref: '#/components/schemas/SavedView'
32360
+ description: ''
32361
+ '400':
32362
+ description: Validation error.
32363
+ '403':
32364
+ description: Missing required permission `Ibl.CRM/Views/action`.
32365
+ /api/crm/views/{id}/:
32366
+ get:
32367
+ operationId: crm_views_retrieve
32368
+ description: '**Required permission:** `Ibl.CRM/Views/read`.'
32369
+ summary: Retrieve a saved view
32370
+ parameters:
32371
+ - in: path
32372
+ name: id
32373
+ schema:
32374
+ type: integer
32375
+ description: A unique integer value identifying this saved view.
32376
+ required: true
32377
+ tags:
32378
+ - crm
32379
+ security:
32380
+ - PlatformApiKeyAuthentication: []
32381
+ responses:
32382
+ '200':
32383
+ content:
32384
+ application/json:
32385
+ schema:
32386
+ $ref: '#/components/schemas/SavedView'
32387
+ description: ''
32388
+ '403':
32389
+ description: Missing required permission `Ibl.CRM/Views/read`.
32390
+ '404':
32391
+ description: View not found.
32392
+ put:
32393
+ operationId: crm_views_update
32394
+ description: '**Required permission:** `Ibl.CRM/Views/write`.'
32395
+ summary: Replace a saved view
32396
+ parameters:
32397
+ - in: path
32398
+ name: id
32399
+ schema:
32400
+ type: integer
32401
+ description: A unique integer value identifying this saved view.
32402
+ required: true
32403
+ tags:
32404
+ - crm
32405
+ requestBody:
32406
+ content:
32407
+ application/json:
32408
+ schema:
32409
+ $ref: '#/components/schemas/SavedView'
32410
+ application/scim+json:
32411
+ schema:
32412
+ $ref: '#/components/schemas/SavedView'
32413
+ application/x-www-form-urlencoded:
32414
+ schema:
32415
+ $ref: '#/components/schemas/SavedView'
32416
+ multipart/form-data:
32417
+ schema:
32418
+ $ref: '#/components/schemas/SavedView'
32419
+ '*/*':
32420
+ schema:
32421
+ $ref: '#/components/schemas/SavedView'
32422
+ required: true
32423
+ security:
32424
+ - PlatformApiKeyAuthentication: []
32425
+ responses:
32426
+ '200':
32427
+ content:
32428
+ application/json:
32429
+ schema:
32430
+ $ref: '#/components/schemas/SavedView'
32431
+ description: ''
32432
+ '400':
32433
+ description: Validation error.
32434
+ '403':
32435
+ description: Missing required permission `Ibl.CRM/Views/write`.
32436
+ '404':
32437
+ description: View not found.
32438
+ patch:
32439
+ operationId: crm_views_partial_update
32440
+ description: '**Required permission:** `Ibl.CRM/Views/write`.'
32441
+ summary: Update a saved view
32442
+ parameters:
32443
+ - in: path
32444
+ name: id
32445
+ schema:
32446
+ type: integer
32447
+ description: A unique integer value identifying this saved view.
32448
+ required: true
32449
+ tags:
32450
+ - crm
32451
+ requestBody:
32452
+ content:
32453
+ application/json:
32454
+ schema:
32455
+ $ref: '#/components/schemas/PatchedSavedView'
32456
+ application/scim+json:
32457
+ schema:
32458
+ $ref: '#/components/schemas/PatchedSavedView'
32459
+ application/x-www-form-urlencoded:
32460
+ schema:
32461
+ $ref: '#/components/schemas/PatchedSavedView'
32462
+ multipart/form-data:
32463
+ schema:
32464
+ $ref: '#/components/schemas/PatchedSavedView'
32465
+ '*/*':
32466
+ schema:
32467
+ $ref: '#/components/schemas/PatchedSavedView'
32468
+ security:
32469
+ - PlatformApiKeyAuthentication: []
32470
+ responses:
32471
+ '200':
32472
+ content:
32473
+ application/json:
32474
+ schema:
32475
+ $ref: '#/components/schemas/SavedView'
32476
+ description: ''
32477
+ '400':
32478
+ description: Validation error.
32479
+ '403':
32480
+ description: Missing required permission `Ibl.CRM/Views/write`.
32481
+ '404':
32482
+ description: View not found.
32483
+ delete:
32484
+ operationId: crm_views_destroy
32485
+ description: '**Required permission:** `Ibl.CRM/Views/delete`.'
32486
+ summary: Delete a saved view
32487
+ parameters:
32488
+ - in: path
32489
+ name: id
32490
+ schema:
32491
+ type: integer
32492
+ description: A unique integer value identifying this saved view.
32493
+ required: true
32494
+ tags:
32495
+ - crm
32496
+ security:
32497
+ - PlatformApiKeyAuthentication: []
32498
+ responses:
32499
+ '204':
32500
+ description: Deleted.
32501
+ '403':
32502
+ description: Missing required permission `Ibl.CRM/Views/delete`.
32503
+ '404':
32504
+ description: View not found.
31335
32505
  /api/custom-domains/:
31336
32506
  get:
31337
32507
  operationId: custom_domains_retrieve
@@ -43801,13 +44971,18 @@ components:
43801
44971
  deal:
43802
44972
  type: integer
43803
44973
  nullable: true
43804
- description: Id of the Deal this Activity is logged against. Either `deal`
43805
- or `person` is required.
44974
+ description: Id of the Deal this Activity is logged against. One of `deal`,
44975
+ `person` or `organization` is required.
43806
44976
  person:
43807
44977
  type: string
43808
44978
  format: uuid
43809
- description: UUID of the Person this Activity is logged against. Either
43810
- `deal` or `person` is required.
44979
+ description: UUID of the Person this Activity is logged against. One of
44980
+ `deal`, `person` or `organization` is required.
44981
+ nullable: true
44982
+ organization:
44983
+ type: string
44984
+ format: uuid
44985
+ description: UUID of the Organization this Activity is logged against.
43811
44986
  nullable: true
43812
44987
  owner:
43813
44988
  type: integer
@@ -46929,7 +48104,7 @@ components:
46929
48104
  maxLength: 3
46930
48105
  status:
46931
48106
  allOf:
46932
- - $ref: '#/components/schemas/DealStatusEnum'
48107
+ - $ref: '#/components/schemas/Status05cEnum'
46933
48108
  readOnly: true
46934
48109
  description: |-
46935
48110
  Read-only. Set by the move-stage/won/lost actions and derived from the destination stage's `is_won`/`is_lost`. Direct writes are rejected with `400`; use `POST /deals/{id}/move-stage/` (or `won/` / `lost/`).
@@ -46937,6 +48112,10 @@ components:
46937
48112
  * `open` - Open
46938
48113
  * `won` - Won
46939
48114
  * `lost` - Lost
48115
+ is_stale:
48116
+ type: boolean
48117
+ readOnly: true
48118
+ description: Open and untouched for longer than the pipeline's `rotten_days`.
46940
48119
  lost_reason:
46941
48120
  type: string
46942
48121
  default: ''
@@ -46959,12 +48138,21 @@ components:
46959
48138
  format: uuid
46960
48139
  description: UUID of the primary contact for this Deal. The person must
46961
48140
  belong to your Platform.
48141
+ person_name:
48142
+ type: string
48143
+ readOnly: true
48144
+ description: The person's name.
46962
48145
  organization:
46963
48146
  type: string
46964
48147
  format: uuid
46965
48148
  description: UUID of an organization the Deal is with. Optional; must belong
46966
48149
  to your Platform.
46967
48150
  nullable: true
48151
+ organization_name:
48152
+ type: string
48153
+ readOnly: true
48154
+ nullable: true
48155
+ description: The organization's name, or null.
46968
48156
  pipeline:
46969
48157
  type: integer
46970
48158
  description: Pipeline this Deal flows through. Must belong to your Platform.
@@ -47014,7 +48202,10 @@ components:
47014
48202
  - closed_at
47015
48203
  - created_at
47016
48204
  - id
48205
+ - is_stale
48206
+ - organization_name
47017
48207
  - person
48208
+ - person_name
47018
48209
  - pipeline
47019
48210
  - platform
47020
48211
  - stage
@@ -47022,6 +48213,51 @@ components:
47022
48213
  - tags
47023
48214
  - title
47024
48215
  - updated_at
48216
+ DealBoard:
48217
+ type: object
48218
+ properties:
48219
+ pipeline:
48220
+ $ref: '#/components/schemas/Pipeline'
48221
+ limit:
48222
+ type: integer
48223
+ stages:
48224
+ type: array
48225
+ items:
48226
+ $ref: '#/components/schemas/DealBoardStage'
48227
+ required:
48228
+ - limit
48229
+ - pipeline
48230
+ - stages
48231
+ DealBoardStage:
48232
+ type: object
48233
+ properties:
48234
+ stage:
48235
+ $ref: '#/components/schemas/PipelineStage'
48236
+ count:
48237
+ type: integer
48238
+ description: Deals in this stage after filters.
48239
+ total_value:
48240
+ type: string
48241
+ format: decimal
48242
+ weighted_value:
48243
+ type: string
48244
+ format: decimal
48245
+ description: Sum of `lead_value × stage.probability / 100`.
48246
+ has_more:
48247
+ type: boolean
48248
+ description: True when `count` exceeds `limit`; `deals` holds the newest
48249
+ `limit`.
48250
+ deals:
48251
+ type: array
48252
+ items:
48253
+ $ref: '#/components/schemas/Deal'
48254
+ required:
48255
+ - count
48256
+ - deals
48257
+ - has_more
48258
+ - stage
48259
+ - total_value
48260
+ - weighted_value
47025
48261
  DealLostRequest:
47026
48262
  type: object
47027
48263
  properties:
@@ -47048,16 +48284,6 @@ components:
47048
48284
  description: Stable `code` of the destination PipelineStage within this
47049
48285
  Deal's Pipeline. Use this when integrating across environments where ids
47050
48286
  differ but codes are stable.
47051
- DealStatusEnum:
47052
- enum:
47053
- - open
47054
- - won
47055
- - lost
47056
- type: string
47057
- description: |-
47058
- * `open` - Open
47059
- * `won` - Won
47060
- * `lost` - Lost
47061
48287
  DealWonRequest:
47062
48288
  type: object
47063
48289
  properties:
@@ -47290,6 +48516,14 @@ components:
47290
48516
  required:
47291
48517
  - display_name
47292
48518
  - id
48519
+ DirEnum:
48520
+ enum:
48521
+ - asc
48522
+ - desc
48523
+ type: string
48524
+ description: |-
48525
+ * `asc` - asc
48526
+ * `desc` - desc
47293
48527
  DirectionEnum:
47294
48528
  enum:
47295
48529
  - export
@@ -47853,6 +49087,48 @@ components:
47853
49087
  - provider_name
47854
49088
  - provider_name_display
47855
49089
  - updated
49090
+ Favorite:
49091
+ type: object
49092
+ properties:
49093
+ id:
49094
+ type: integer
49095
+ readOnly: true
49096
+ platform:
49097
+ type: integer
49098
+ readOnly: true
49099
+ description: Tenant this favorite belongs to.
49100
+ person:
49101
+ type: string
49102
+ format: uuid
49103
+ description: UUID of a Person to star.
49104
+ nullable: true
49105
+ organization:
49106
+ type: string
49107
+ format: uuid
49108
+ description: UUID of an Organization to star.
49109
+ nullable: true
49110
+ deal:
49111
+ type: integer
49112
+ nullable: true
49113
+ description: Id of a Deal to star.
49114
+ target_type:
49115
+ type: string
49116
+ readOnly: true
49117
+ description: '`person`, `organization` or `deal`.'
49118
+ label:
49119
+ type: string
49120
+ readOnly: true
49121
+ description: The target's display name.
49122
+ created_at:
49123
+ type: string
49124
+ format: date-time
49125
+ readOnly: true
49126
+ required:
49127
+ - created_at
49128
+ - id
49129
+ - label
49130
+ - platform
49131
+ - target_type
47856
49132
  FieldDefinitionImport:
47857
49133
  type: object
47858
49134
  properties:
@@ -48143,6 +49419,45 @@ components:
48143
49419
  - skills_earned
48144
49420
  - skills_points
48145
49421
  - time_spent
49422
+ HistoryEntry:
49423
+ type: object
49424
+ description: |-
49425
+ Who changed what and when. Unlike core's admin-only audit-log API,
49426
+ this omits the actor's email and client IP: any `read` holder sees it.
49427
+ properties:
49428
+ id:
49429
+ type: integer
49430
+ timestamp:
49431
+ type: string
49432
+ format: date-time
49433
+ action:
49434
+ $ref: '#/components/schemas/HistoryEntryActionEnum'
49435
+ actor_username:
49436
+ type: string
49437
+ nullable: true
49438
+ changes:
49439
+ type: object
49440
+ additionalProperties: {}
49441
+ nullable: true
49442
+ description: '`{field: [old, new]}` as strings; a null reads `"None"`.'
49443
+ required:
49444
+ - action
49445
+ - actor_username
49446
+ - changes
49447
+ - id
49448
+ - timestamp
49449
+ HistoryEntryActionEnum:
49450
+ enum:
49451
+ - create
49452
+ - update
49453
+ - delete
49454
+ - access
49455
+ type: string
49456
+ description: |-
49457
+ * `create` - create
49458
+ * `update` - update
49459
+ * `delete` - delete
49460
+ * `access` - access
48146
49461
  HumanSupportRecipientModeEnum:
48147
49462
  enum:
48148
49463
  - platform_admins_and_mentor_owner
@@ -50649,6 +51964,18 @@ components:
50649
51964
  NullEnum:
50650
51965
  enum:
50651
51966
  - null
51967
+ ObjectTypeEnum:
51968
+ enum:
51969
+ - persons
51970
+ - organizations
51971
+ - deals
51972
+ - activities
51973
+ type: string
51974
+ description: |-
51975
+ * `persons` - Persons
51976
+ * `organizations` - Organizations
51977
+ * `deals` - Deals
51978
+ * `activities` - Activities
50652
51979
  OnboardingStatusUpdate:
50653
51980
  type: object
50654
51981
  properties:
@@ -50829,6 +52156,155 @@ components:
50829
52156
  $ref: '#/components/schemas/OvertimeMeta'
50830
52157
  required:
50831
52158
  - meta
52159
+ Overview:
52160
+ type: object
52161
+ description: Sections the caller may list; `period_*` only when a window resolved.
52162
+ properties:
52163
+ persons:
52164
+ $ref: '#/components/schemas/OverviewCount'
52165
+ organizations:
52166
+ $ref: '#/components/schemas/OverviewCount'
52167
+ deals:
52168
+ $ref: '#/components/schemas/OverviewDeals'
52169
+ activities:
52170
+ $ref: '#/components/schemas/OverviewActivities'
52171
+ period_start_date:
52172
+ type: string
52173
+ format: date
52174
+ period_end_date:
52175
+ type: string
52176
+ format: date
52177
+ period_persons_created:
52178
+ type: integer
52179
+ period_deals_created:
52180
+ type: integer
52181
+ period_deals_won:
52182
+ type: integer
52183
+ period_deals_won_value:
52184
+ type: string
52185
+ format: decimal
52186
+ period_deals_lost:
52187
+ type: integer
52188
+ period_deals_lost_value:
52189
+ type: string
52190
+ format: decimal
52191
+ period_activities_done:
52192
+ type: integer
52193
+ description: Marked done in the window; the automatic stage-change notes
52194
+ are not counted.
52195
+ OverviewActivities:
52196
+ type: object
52197
+ properties:
52198
+ open_count:
52199
+ type: integer
52200
+ due_today:
52201
+ type: integer
52202
+ overdue:
52203
+ type: integer
52204
+ required:
52205
+ - due_today
52206
+ - open_count
52207
+ - overdue
52208
+ OverviewCount:
52209
+ type: object
52210
+ properties:
52211
+ count:
52212
+ type: integer
52213
+ required:
52214
+ - count
52215
+ OverviewDeals:
52216
+ type: object
52217
+ properties:
52218
+ pipeline:
52219
+ allOf:
52220
+ - $ref: '#/components/schemas/Pipeline'
52221
+ nullable: true
52222
+ description: The pipeline `by_stage` describes.
52223
+ currency:
52224
+ type: string
52225
+ nullable: true
52226
+ description: Most common currency among open deals; money fields sum every
52227
+ deal as if it were in this currency.
52228
+ open_count:
52229
+ type: integer
52230
+ pipeline_value:
52231
+ type: string
52232
+ format: decimal
52233
+ weighted_value:
52234
+ type: string
52235
+ format: decimal
52236
+ won_this_month_count:
52237
+ type: integer
52238
+ won_this_month_value:
52239
+ type: string
52240
+ format: decimal
52241
+ lost_this_month_count:
52242
+ type: integer
52243
+ lost_this_month_value:
52244
+ type: string
52245
+ format: decimal
52246
+ by_stage:
52247
+ type: array
52248
+ items:
52249
+ $ref: '#/components/schemas/OverviewStage'
52250
+ won_lost_by_month:
52251
+ type: array
52252
+ items:
52253
+ $ref: '#/components/schemas/OverviewMonth'
52254
+ required:
52255
+ - by_stage
52256
+ - currency
52257
+ - lost_this_month_count
52258
+ - lost_this_month_value
52259
+ - open_count
52260
+ - pipeline
52261
+ - pipeline_value
52262
+ - weighted_value
52263
+ - won_lost_by_month
52264
+ - won_this_month_count
52265
+ - won_this_month_value
52266
+ OverviewMonth:
52267
+ type: object
52268
+ properties:
52269
+ month:
52270
+ type: string
52271
+ description: '`YYYY-MM`, UTC.'
52272
+ won_count:
52273
+ type: integer
52274
+ won_value:
52275
+ type: string
52276
+ format: decimal
52277
+ lost_count:
52278
+ type: integer
52279
+ lost_value:
52280
+ type: string
52281
+ format: decimal
52282
+ required:
52283
+ - lost_count
52284
+ - lost_value
52285
+ - month
52286
+ - won_count
52287
+ - won_value
52288
+ OverviewStage:
52289
+ type: object
52290
+ properties:
52291
+ stage:
52292
+ $ref: '#/components/schemas/PipelineStage'
52293
+ count:
52294
+ type: integer
52295
+ description: Open deals in this stage.
52296
+ total_value:
52297
+ type: string
52298
+ format: decimal
52299
+ weighted_value:
52300
+ type: string
52301
+ format: decimal
52302
+ description: Sum of `lead_value × stage.probability / 100`.
52303
+ required:
52304
+ - count
52305
+ - stage
52306
+ - total_value
52307
+ - weighted_value
50832
52308
  PaginatedAccessibleUserList:
50833
52309
  type: object
50834
52310
  required:
@@ -51148,6 +52624,29 @@ components:
51148
52624
  type: array
51149
52625
  items:
51150
52626
  $ref: '#/components/schemas/Deal'
52627
+ PaginatedFavoriteList:
52628
+ type: object
52629
+ required:
52630
+ - count
52631
+ - results
52632
+ properties:
52633
+ count:
52634
+ type: integer
52635
+ example: 123
52636
+ next:
52637
+ type: string
52638
+ nullable: true
52639
+ format: uri
52640
+ example: http://api.example.org/accounts/?page=4
52641
+ previous:
52642
+ type: string
52643
+ nullable: true
52644
+ format: uri
52645
+ example: http://api.example.org/accounts/?page=2
52646
+ results:
52647
+ type: array
52648
+ items:
52649
+ $ref: '#/components/schemas/Favorite'
51151
52650
  PaginatedItemPaywallConfigList:
51152
52651
  type: object
51153
52652
  required:
@@ -51755,6 +53254,29 @@ components:
51755
53254
  - next_page
51756
53255
  - previous_page
51757
53256
  - results
53257
+ PaginatedSavedViewList:
53258
+ type: object
53259
+ required:
53260
+ - count
53261
+ - results
53262
+ properties:
53263
+ count:
53264
+ type: integer
53265
+ example: 123
53266
+ next:
53267
+ type: string
53268
+ nullable: true
53269
+ format: uri
53270
+ example: http://api.example.org/accounts/?page=4
53271
+ previous:
53272
+ type: string
53273
+ nullable: true
53274
+ format: uri
53275
+ example: http://api.example.org/accounts/?page=2
53276
+ results:
53277
+ type: array
53278
+ items:
53279
+ $ref: '#/components/schemas/SavedView'
51758
53280
  PaginatedSkill:
51759
53281
  type: object
51760
53282
  properties:
@@ -52089,13 +53611,18 @@ components:
52089
53611
  deal:
52090
53612
  type: integer
52091
53613
  nullable: true
52092
- description: Id of the Deal this Activity is logged against. Either `deal`
52093
- or `person` is required.
53614
+ description: Id of the Deal this Activity is logged against. One of `deal`,
53615
+ `person` or `organization` is required.
52094
53616
  person:
52095
53617
  type: string
52096
53618
  format: uuid
52097
- description: UUID of the Person this Activity is logged against. Either
52098
- `deal` or `person` is required.
53619
+ description: UUID of the Person this Activity is logged against. One of
53620
+ `deal`, `person` or `organization` is required.
53621
+ nullable: true
53622
+ organization:
53623
+ type: string
53624
+ format: uuid
53625
+ description: UUID of the Organization this Activity is logged against.
52099
53626
  nullable: true
52100
53627
  owner:
52101
53628
  type: integer
@@ -52218,7 +53745,7 @@ components:
52218
53745
  maxLength: 3
52219
53746
  status:
52220
53747
  allOf:
52221
- - $ref: '#/components/schemas/DealStatusEnum'
53748
+ - $ref: '#/components/schemas/Status05cEnum'
52222
53749
  readOnly: true
52223
53750
  description: |-
52224
53751
  Read-only. Set by the move-stage/won/lost actions and derived from the destination stage's `is_won`/`is_lost`. Direct writes are rejected with `400`; use `POST /deals/{id}/move-stage/` (or `won/` / `lost/`).
@@ -52226,6 +53753,10 @@ components:
52226
53753
  * `open` - Open
52227
53754
  * `won` - Won
52228
53755
  * `lost` - Lost
53756
+ is_stale:
53757
+ type: boolean
53758
+ readOnly: true
53759
+ description: Open and untouched for longer than the pipeline's `rotten_days`.
52229
53760
  lost_reason:
52230
53761
  type: string
52231
53762
  default: ''
@@ -52248,12 +53779,21 @@ components:
52248
53779
  format: uuid
52249
53780
  description: UUID of the primary contact for this Deal. The person must
52250
53781
  belong to your Platform.
53782
+ person_name:
53783
+ type: string
53784
+ readOnly: true
53785
+ description: The person's name.
52251
53786
  organization:
52252
53787
  type: string
52253
53788
  format: uuid
52254
53789
  description: UUID of an organization the Deal is with. Optional; must belong
52255
53790
  to your Platform.
52256
53791
  nullable: true
53792
+ organization_name:
53793
+ type: string
53794
+ readOnly: true
53795
+ nullable: true
53796
+ description: The organization's name, or null.
52257
53797
  pipeline:
52258
53798
  type: integer
52259
53799
  description: Pipeline this Deal flows through. Must belong to your Platform.
@@ -53126,6 +54666,11 @@ components:
53126
54666
  description: UUID of an organization in your Platform. References to organizations
53127
54667
  in other Platforms are rejected.
53128
54668
  nullable: true
54669
+ organization_name:
54670
+ type: string
54671
+ readOnly: true
54672
+ nullable: true
54673
+ description: The organization's name, or null.
53129
54674
  owner:
53130
54675
  type: integer
53131
54676
  description: Id of the platform user who owns / manages this person (internal
@@ -53221,7 +54766,8 @@ components:
53221
54766
  rotten_days:
53222
54767
  type: integer
53223
54768
  default: 30
53224
- description: Days a Deal can sit in a stage before it's surfaced as stale.
54769
+ description: Days without a change before an open Deal shows `is_stale`;
54770
+ 0 turns it off.
53225
54771
  stages:
53226
54772
  type: array
53227
54773
  items:
@@ -53684,6 +55230,67 @@ components:
53684
55230
  allOf:
53685
55231
  - $ref: '#/components/schemas/SCIMMeta'
53686
55232
  description: Resource metadata
55233
+ PatchedSavedView:
55234
+ type: object
55235
+ properties:
55236
+ id:
55237
+ type: integer
55238
+ readOnly: true
55239
+ platform:
55240
+ type: integer
55241
+ readOnly: true
55242
+ description: Tenant this view belongs to.
55243
+ object_type:
55244
+ allOf:
55245
+ - $ref: '#/components/schemas/ObjectTypeEnum'
55246
+ description: |-
55247
+ The list this view belongs to.
55248
+
55249
+ * `persons` - Persons
55250
+ * `organizations` - Organizations
55251
+ * `deals` - Deals
55252
+ * `activities` - Activities
55253
+ name:
55254
+ type: string
55255
+ description: Unique per user and list.
55256
+ maxLength: 120
55257
+ type:
55258
+ allOf:
55259
+ - $ref: '#/components/schemas/SavedViewTypeEnum'
55260
+ default: table
55261
+ description: |-
55262
+ `kanban` is available for deals only.
55263
+
55264
+ * `table` - Table
55265
+ * `kanban` - Kanban
55266
+ columns:
55267
+ type: array
55268
+ items:
55269
+ $ref: '#/components/schemas/_Column'
55270
+ maxItems: 100
55271
+ filters:
55272
+ type: array
55273
+ items:
55274
+ $ref: '#/components/schemas/_Filter'
55275
+ maxItems: 50
55276
+ sorts:
55277
+ type: array
55278
+ items:
55279
+ $ref: '#/components/schemas/_Sort'
55280
+ maxItems: 10
55281
+ group_by:
55282
+ type: string
55283
+ default: ''
55284
+ description: Kanban column field (e.g. `stage`).
55285
+ maxLength: 64
55286
+ created_at:
55287
+ type: string
55288
+ format: date-time
55289
+ readOnly: true
55290
+ updated_at:
55291
+ type: string
55292
+ format: date-time
55293
+ readOnly: true
53687
55294
  PatchedSkillThreshold:
53688
55295
  type: object
53689
55296
  properties:
@@ -54714,6 +56321,11 @@ components:
54714
56321
  description: UUID of an organization in your Platform. References to organizations
54715
56322
  in other Platforms are rejected.
54716
56323
  nullable: true
56324
+ organization_name:
56325
+ type: string
56326
+ readOnly: true
56327
+ nullable: true
56328
+ description: The organization's name, or null.
54717
56329
  owner:
54718
56330
  type: integer
54719
56331
  description: Id of the platform user who owns / manages this person (internal
@@ -54783,6 +56395,7 @@ components:
54783
56395
  - created_at
54784
56396
  - id
54785
56397
  - name
56398
+ - organization_name
54786
56399
  - platform
54787
56400
  - platform_user
54788
56401
  - tags
@@ -54956,7 +56569,8 @@ components:
54956
56569
  rotten_days:
54957
56570
  type: integer
54958
56571
  default: 30
54959
- description: Days a Deal can sit in a stage before it's surfaced as stale.
56572
+ description: Days without a change before an open Deal shows `is_stale`;
56573
+ 0 turns it off.
54960
56574
  stages:
54961
56575
  type: array
54962
56576
  items:
@@ -55035,6 +56649,17 @@ components:
55035
56649
  - name
55036
56650
  - pipeline
55037
56651
  - updated_at
56652
+ PipelineStageReorderRequest:
56653
+ type: object
56654
+ properties:
56655
+ order:
56656
+ type: array
56657
+ items:
56658
+ type: integer
56659
+ minimum: 1
56660
+ description: Every stage id of the Pipeline, in the new left-to-right order.
56661
+ required:
56662
+ - order
55038
56663
  PlacementAssessment:
55039
56664
  type: object
55040
56665
  description: Create body for a placement assessment (platform configuration).
@@ -59792,6 +61417,210 @@ components:
59792
61417
  - schemas
59793
61418
  - urn_ietf_params_scim_schemas_extension_enterprise_2_0_User
59794
61419
  - userName
61420
+ SavedView:
61421
+ type: object
61422
+ properties:
61423
+ id:
61424
+ type: integer
61425
+ readOnly: true
61426
+ platform:
61427
+ type: integer
61428
+ readOnly: true
61429
+ description: Tenant this view belongs to.
61430
+ object_type:
61431
+ allOf:
61432
+ - $ref: '#/components/schemas/ObjectTypeEnum'
61433
+ description: |-
61434
+ The list this view belongs to.
61435
+
61436
+ * `persons` - Persons
61437
+ * `organizations` - Organizations
61438
+ * `deals` - Deals
61439
+ * `activities` - Activities
61440
+ name:
61441
+ type: string
61442
+ description: Unique per user and list.
61443
+ maxLength: 120
61444
+ type:
61445
+ allOf:
61446
+ - $ref: '#/components/schemas/SavedViewTypeEnum'
61447
+ default: table
61448
+ description: |-
61449
+ `kanban` is available for deals only.
61450
+
61451
+ * `table` - Table
61452
+ * `kanban` - Kanban
61453
+ columns:
61454
+ type: array
61455
+ items:
61456
+ $ref: '#/components/schemas/_Column'
61457
+ maxItems: 100
61458
+ filters:
61459
+ type: array
61460
+ items:
61461
+ $ref: '#/components/schemas/_Filter'
61462
+ maxItems: 50
61463
+ sorts:
61464
+ type: array
61465
+ items:
61466
+ $ref: '#/components/schemas/_Sort'
61467
+ maxItems: 10
61468
+ group_by:
61469
+ type: string
61470
+ default: ''
61471
+ description: Kanban column field (e.g. `stage`).
61472
+ maxLength: 64
61473
+ created_at:
61474
+ type: string
61475
+ format: date-time
61476
+ readOnly: true
61477
+ updated_at:
61478
+ type: string
61479
+ format: date-time
61480
+ readOnly: true
61481
+ required:
61482
+ - created_at
61483
+ - id
61484
+ - name
61485
+ - object_type
61486
+ - platform
61487
+ - updated_at
61488
+ SavedViewTypeEnum:
61489
+ enum:
61490
+ - table
61491
+ - kanban
61492
+ type: string
61493
+ description: |-
61494
+ * `table` - Table
61495
+ * `kanban` - Kanban
61496
+ SearchDeal:
61497
+ type: object
61498
+ properties:
61499
+ id:
61500
+ type: integer
61501
+ readOnly: true
61502
+ title:
61503
+ type: string
61504
+ description: Short display name (e.g. 'Acme renewal — 2026').
61505
+ maxLength: 255
61506
+ status:
61507
+ allOf:
61508
+ - $ref: '#/components/schemas/Status05cEnum'
61509
+ description: |-
61510
+ Service-managed (read-only in serializer). Derived from the destination stage's is_won/is_lost.
61511
+
61512
+ * `open` - Open
61513
+ * `won` - Won
61514
+ * `lost` - Lost
61515
+ lead_value:
61516
+ type: string
61517
+ format: decimal
61518
+ pattern: ^-?\d{0,12}(?:\.\d{0,2})?$
61519
+ description: Estimated deal value in `currency`.
61520
+ currency:
61521
+ type: string
61522
+ description: ISO 4217 currency code.
61523
+ maxLength: 3
61524
+ person:
61525
+ type: string
61526
+ format: uuid
61527
+ description: Primary contact for this Deal. PROTECTed — can't delete a Person
61528
+ with open Deals.
61529
+ organization:
61530
+ type: string
61531
+ format: uuid
61532
+ description: Organization the Deal is with (nullable for solo-individual
61533
+ deals).
61534
+ nullable: true
61535
+ pipeline:
61536
+ type: integer
61537
+ description: Pipeline this Deal flows through.
61538
+ stage:
61539
+ type: integer
61540
+ description: Current stage. Must belong to `pipeline`.
61541
+ required:
61542
+ - id
61543
+ - person
61544
+ - pipeline
61545
+ - stage
61546
+ - title
61547
+ SearchOrganization:
61548
+ type: object
61549
+ properties:
61550
+ id:
61551
+ type: string
61552
+ format: uuid
61553
+ readOnly: true
61554
+ description: Opaque UUID — used in API URLs and external references.
61555
+ name:
61556
+ type: string
61557
+ description: Display name. Unique within the platform.
61558
+ maxLength: 255
61559
+ required:
61560
+ - id
61561
+ - name
61562
+ SearchPerson:
61563
+ type: object
61564
+ properties:
61565
+ id:
61566
+ type: string
61567
+ format: uuid
61568
+ readOnly: true
61569
+ description: Opaque UUID — used in API URLs and external references.
61570
+ name:
61571
+ type: string
61572
+ description: Full display name.
61573
+ maxLength: 255
61574
+ primary_email:
61575
+ type: string
61576
+ format: email
61577
+ description: Email used by the Person→User auto-link query (case-insensitive
61578
+ match).
61579
+ maxLength: 254
61580
+ job_title:
61581
+ type: string
61582
+ description: Free-text job title at their Organization.
61583
+ maxLength: 255
61584
+ organization:
61585
+ type: string
61586
+ format: uuid
61587
+ description: The Organization this Person belongs to (nullable).
61588
+ nullable: true
61589
+ lifecycle_stage:
61590
+ allOf:
61591
+ - $ref: '#/components/schemas/LifecycleStageEnum'
61592
+ description: |-
61593
+ Funnel position. Transitions are unrestricted — any stage may move to any other.
61594
+
61595
+ * `lead` - Lead
61596
+ * `qualified` - Qualified
61597
+ * `opportunity` - Opportunity
61598
+ * `customer` - Customer
61599
+ * `churned` - Churned
61600
+ required:
61601
+ - id
61602
+ - name
61603
+ SearchResponse:
61604
+ type: object
61605
+ description: One bucket per resource the caller may list; an unlisted bucket
61606
+ is absent.
61607
+ properties:
61608
+ q:
61609
+ type: string
61610
+ persons:
61611
+ type: array
61612
+ items:
61613
+ $ref: '#/components/schemas/SearchPerson'
61614
+ organizations:
61615
+ type: array
61616
+ items:
61617
+ $ref: '#/components/schemas/SearchOrganization'
61618
+ deals:
61619
+ type: array
61620
+ items:
61621
+ $ref: '#/components/schemas/SearchDeal'
61622
+ required:
61623
+ - q
59795
61624
  SendNotification:
59796
61625
  type: object
59797
61626
  description: Request serializer for sending notification
@@ -60040,6 +61869,16 @@ components:
60040
61869
  * `cancelled` - Cancelled
60041
61870
  * `error` - Error
60042
61871
  * `expired` - Expired
61872
+ Status05cEnum:
61873
+ enum:
61874
+ - open
61875
+ - won
61876
+ - lost
61877
+ type: string
61878
+ description: |-
61879
+ * `open` - Open
61880
+ * `won` - Won
61881
+ * `lost` - Lost
60043
61882
  Status0e3Enum:
60044
61883
  enum:
60045
61884
  - active
@@ -64132,6 +65971,45 @@ components:
64132
65971
  type: boolean
64133
65972
  required:
64134
65973
  - url
65974
+ _Column:
65975
+ type: object
65976
+ properties:
65977
+ id:
65978
+ type: string
65979
+ description: Field name shown as a column.
65980
+ maxLength: 64
65981
+ visible:
65982
+ type: boolean
65983
+ default: true
65984
+ required:
65985
+ - id
65986
+ _Filter:
65987
+ type: object
65988
+ properties:
65989
+ field:
65990
+ type: string
65991
+ maxLength: 64
65992
+ op:
65993
+ type: string
65994
+ description: e.g. `is`, `contains`, `gte`.
65995
+ maxLength: 32
65996
+ value:
65997
+ nullable: true
65998
+ required:
65999
+ - field
66000
+ - op
66001
+ _Sort:
66002
+ type: object
66003
+ properties:
66004
+ field:
66005
+ type: string
66006
+ maxLength: 64
66007
+ dir:
66008
+ allOf:
66009
+ - $ref: '#/components/schemas/DirEnum'
66010
+ default: asc
66011
+ required:
66012
+ - field
64135
66013
  _TagAttachRequest:
64136
66014
  type: object
64137
66015
  properties: