From 8b712819e463c37fbe2ae8a23abf4d8f5bcce407 Mon Sep 17 00:00:00 2001 From: Shivansh Rai Date: Mon, 16 Jun 2025 15:58:43 +0530 Subject: [PATCH 1/9] s/`deprecated`/`is_deprecated` in schema deprecation example --- fern/docs/pages/customization.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fern/docs/pages/customization.mdx b/fern/docs/pages/customization.mdx index cfce2849..392ed85a 100644 --- a/fern/docs/pages/customization.mdx +++ b/fern/docs/pages/customization.mdx @@ -402,7 +402,7 @@ following POST request payload to `schemas.custom.set` can be used: "fields": [ ... ], - "deprecated": true, + "is_deprecated": true, } ``` From 8c81cdc72023ceec92f4d78089dbd119c17cc4c0 Mon Sep 17 00:00:00 2001 From: Shivansh Rai Date: Mon, 16 Jun 2025 16:01:59 +0530 Subject: [PATCH 2/9] Update supported operations in dependent field expressions --- fern/docs/pages/customization.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fern/docs/pages/customization.mdx b/fern/docs/pages/customization.mdx index 392ed85a..53b5d29a 100644 --- a/fern/docs/pages/customization.mdx +++ b/fern/docs/pages/customization.mdx @@ -685,7 +685,7 @@ curl --location 'https://api.devrev.ai/schemas.custom.set' \ Any attempt to update a _bug_ object to the _completed_ stage without populating the _RCA_ field is rejected. -The supported operators are `==`, `!=`, `>`, `>=`, `<`, `<=`. The `expression` is a +The supported operators are `==`, `!=`, `&&`, `||`. The `expression` is a boolean expression that must return a boolean value. The `effects` array contains the list of effects of the condition. The following effects are supported: From 929022717ba613d071b2abd78dde01eb1cdbbc56 Mon Sep 17 00:00:00 2001 From: Shivansh Rai Date: Mon, 16 Jun 2025 16:05:10 +0530 Subject: [PATCH 3/9] Document that dependent field expressions are binary --- fern/docs/pages/customization.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fern/docs/pages/customization.mdx b/fern/docs/pages/customization.mdx index 53b5d29a..8fbaf2b1 100644 --- a/fern/docs/pages/customization.mdx +++ b/fern/docs/pages/customization.mdx @@ -686,7 +686,7 @@ Any attempt to update a _bug_ object to the _completed_ stage without populating the _RCA_ field is rejected. The supported operators are `==`, `!=`, `&&`, `||`. The `expression` is a -boolean expression that must return a boolean value. +binary expression that must return a boolean value. The `effects` array contains the list of effects of the condition. The following effects are supported: * `require`: Whether the field must be set for the condition to be met. From 3ffeda2ba70b08115d593e4201ff695019a456ab Mon Sep 17 00:00:00 2001 From: Shivansh Rai Date: Mon, 16 Jun 2025 16:05:54 +0530 Subject: [PATCH 4/9] Add `leaf_type_display_name` in custom object schema --- fern/docs/pages/custom-objects.mdx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/fern/docs/pages/custom-objects.mdx b/fern/docs/pages/custom-objects.mdx index 8878b9a8..1db14d91 100644 --- a/fern/docs/pages/custom-objects.mdx +++ b/fern/docs/pages/custom-objects.mdx @@ -34,6 +34,9 @@ curl --location 'https://api.devrev.ai/schemas.custom.set' \ "type": "tenant_fragment", "description": "Attributes for Campaign", "leaf_type": "campaign", + "leaf_type_display_name": "Campaign", + "is_custom_leaf_type": true, + "id_prefix": "CAMP" "fields": [ { "name": "name", @@ -64,9 +67,7 @@ curl --location 'https://api.devrev.ai/schemas.custom.set' \ "Students" ] } - ], - "is_custom_leaf_type": true, - "id_prefix": "CAMP" + ] }' ``` From 667f8fa1dfb7c712cde7f9534f2cd9a89e2a17c0 Mon Sep 17 00:00:00 2001 From: Shivansh Rai Date: Sat, 21 Jun 2025 20:09:45 +0530 Subject: [PATCH 5/9] Document `unique_key` separately --- fern/docs/pages/custom-objects.mdx | 33 +++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/fern/docs/pages/custom-objects.mdx b/fern/docs/pages/custom-objects.mdx index 1db14d91..115459f2 100644 --- a/fern/docs/pages/custom-objects.mdx +++ b/fern/docs/pages/custom-objects.mdx @@ -12,8 +12,7 @@ and manage object types tailored to your specific business needs. 2. **Subtype**: A categorization of a leaf type. For example, "promotion" or "advertising" for a "campaign" leaf type. 3. **Schema fragment**: A schema fragment defines the schema for an object. 4. **Custom fields**: User-defined fields that store specific data for your custom object. -5. **Unique key**: A unique identifier for each custom object. This is useful for maintaining idempotency when retrying custom object creation requests. -6. **ID prefix**: A unique prefix used to generate the display ID for the custom object. If the `id_prefix` is "CAMP", the generated custom object display ID is "C-CAMP-1". The display ID is used to identify the custom object in the UI, similar to the standard DevRev object display IDs like "ISS-001" for issues. +5. **ID prefix**: A unique prefix used to generate the display ID for the custom object. If the `id_prefix` is "CAMP", the generated custom object display ID is "C-CAMP-1". The display ID is used to identify the custom object in the UI, similar to the standard DevRev object display IDs like "ISS-001" for issues. For more details on customization concepts, please refer to the [Customization](./object-customization) documentation. @@ -83,7 +82,6 @@ curl --location 'https://api.devrev.ai/custom-objects.create' \ --header 'Authorization: Bearer ' \ --data '{ "leaf_type": "campaign", - "unique_key": "CAMP-001", "custom_schema_spec": { "tenant_fragment": true }, @@ -108,7 +106,6 @@ The response of the above API call is the ID of the custom object created. "modified_date": "2024-10-01T07:02:58.958Z", "display_id": "C-CAMP-1", "leaf_type": "campaign", - "unique_key": "CAMP-001" "stock_schema_fragment": "don:core:dvrv-us-1:stock_sf/1", "custom_schema_fragments": [ "don:core:dvrv-us-1:devo/demo:tenant_fragment/1" @@ -250,7 +247,33 @@ curl --location 'https://api.devrev.ai/custom-objects.create' \ "tnt__target_audience": "Professionals", "ctype__social_media_platform": "Facebook", "ctype__post_id": "1234567890" + } +}' +``` + +### Use unique keys for custom objects + +A unique identifier for each custom object can be used to maintain idempotency +when retrying custom object creation requests. No other custom object of the +same type can have the same unique key. + +```curl {10} +curl --location 'https://api.devrev.ai/custom-objects.create' \ +--header 'Content-Type: application/json' \ +--header 'Accept: application/json' \ +--header 'Authorization: Bearer ' \ +--data '{ + "leaf_type": "campaign", + "custom_schema_spec": { + "tenant_fragment": true }, - "unique_key": "CAMP-001" + "unique_key": "CAMP-1", + "custom_fields": { + "tnt__name": "Summer Sale 2023", + "tnt__start_date": "2023-06-01", + "tnt__end_date": "2023-08-31", + "tnt__budget": 10000, + "tnt__target_audience": "Professionals" + } }' ``` From 75b867f006289acbb62aba9b287a6dec15532fe2 Mon Sep 17 00:00:00 2001 From: Shivansh Rai Date: Sat, 21 Jun 2025 20:12:50 +0530 Subject: [PATCH 6/9] Make public --- fern/versions/public.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fern/versions/public.yml b/fern/versions/public.yml index 3cc524fa..e4f1c7e5 100644 --- a/fern/versions/public.yml +++ b/fern/versions/public.yml @@ -68,6 +68,12 @@ navigation: - page: Restricted messages on a timeline slug: timeline-entries path: ../docs/pages/timeline-entries.mdx + - page: Object customization + slug: object-customization + path: ../docs/pages/object-customization.mdx + - page: Custom objects + slug: custom-objects + path: ../docs/pages/custom-objects.mdx - section: SDKs slug: sdks path: ../docs/pages/sdks/index.mdx From 414e6336b0ca496bd6ef79e2c3d58e9d5ffb0aee Mon Sep 17 00:00:00 2001 From: Shivansh Rai Date: Sat, 21 Jun 2025 20:19:12 +0530 Subject: [PATCH 7/9] Remove beta callout --- fern/docs/pages/custom-objects.mdx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/fern/docs/pages/custom-objects.mdx b/fern/docs/pages/custom-objects.mdx index 115459f2..8c4d053e 100644 --- a/fern/docs/pages/custom-objects.mdx +++ b/fern/docs/pages/custom-objects.mdx @@ -1,7 +1,3 @@ - -This functionality is in Beta. It is not recommended for use in production applications. - - Custom objects allow you to extend DevRev's data model beyond the standard use-cases served by the native apps like Build and Support. Custom objects allow you to create and manage object types tailored to your specific business needs. From a50f05ee54bde6140af096a7b4df7f7ddfeb311a Mon Sep 17 00:00:00 2001 From: Shivansh Rai Date: Sat, 21 Jun 2025 20:19:36 +0530 Subject: [PATCH 8/9] Unlist from beta docs --- fern/versions/beta.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/fern/versions/beta.yml b/fern/versions/beta.yml index 3434011b..03579980 100644 --- a/fern/versions/beta.yml +++ b/fern/versions/beta.yml @@ -14,10 +14,6 @@ navigation: title: Changelog - section: Guides contents: - - page: Object customization - path: ../docs/pages/customization.mdx - - page: Custom objects - path: ../docs/pages/custom-objects.mdx - page: Account creation path: ../docs/pages/create-accounts.mdx - page: Agents async API From d653578c0d152953f66d9135f05ed7ea2aa621f4 Mon Sep 17 00:00:00 2001 From: Shivansh Rai Date: Sun, 22 Jun 2025 06:30:49 +0530 Subject: [PATCH 9/9] Add redirects from old beta to new public endpoints --- fern/docs.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fern/docs.yml b/fern/docs.yml index 5be74dfe..ece16d81 100644 --- a/fern/docs.yml +++ b/fern/docs.yml @@ -83,6 +83,12 @@ redirects: - source: /:path*/airdrop/overview destination: /:path*/airdrop permanent: true + - source: /beta/guides/object-customization + destination: /public/guides/object-customization + permanent: true + - source: /beta/guides/custom-objects + destination: /public/guides/custom-objects + permanent: true analytics: ga4: