Octopus API version: 2.41
Database version: 18.15.0
Bug Fixes
Udf: yesNo attribute when adding or updating a Udf is not saved as expected
Fixed the parsing of the attribute "yesNo" and saving the value properly.
All mandatory fields are not returned in validate command
Fixed a bug that was preventing mandatory formulas to work properly in very specific scenarios of validating Opportunities. The issue would happen when there is a mix of mandatory formulas that uses Revenue Type as a condition with other mandatory formulas that uses any other field (for example, Categories).
New features and improvements
ImportTemplate: remove forced compatibility for string schema 2.0.
Import Template creation API will not validate string length by default, will be only validated if string Schema version 2.0 is added in compatibility.
Octopus API version: 2.40
Database version: 18.15.0
Bug Fixes
Completing Task with just Completed and Key set's WithKey to Null
Fix the scenario when updating an existing Task without providing any related key field in the request (WithKey or AbEntryKey). The original WithKey was being incorrectly removed in this situation, and this fix ensures the original WithKey is kept as-is.
User without "User/Group details" read rights and without the "Modify other users' private entries" privilege shows all fields as being Read only when retrieving Metadata for an Opportunity
Users without User/Group read permission set were denied access to all fields (ReadOnly = false) on any Opportunity assigned to the SalesTeam that the user is a member of or even Opportunities in which the user is a leader. This fix ensures that users will be able to access the fields allowed for their SalesTeam even if they are denied User/Group Read permission.
New features and improvements
Webhooks (BETA) - breaking changes
After conducting a beta phase for AbEntry and Opportunities webhooks, it became evident that the initially chosen approach was not stable and led to increased issues. Consequently, a decision has been made to pivot and adopt an alternative approach.
In the revised implementation, new events will be triggered without any delay when an Opportunity is created, updated, or deleted. However, for now, these events will include the Opportunity Key only. To retrieve additional details, consumers are required to call API.
For further information, please refer to the Webhooks documentation.
API - Return meaningful message for malformed JSON
Added validation for malformed JSON payload request. Endpoints will now return a meaningful error message for malformed JSON, including details about the encountered issue and error codes.
Prepare API for Health Indicators implementation
AbEntry object now supports two new System Udfs:
Type_Id = 60066 => Table Udf to store the Health Indicator associated with that entry, calculated based on specific rules. The result can be any of these 3 values: Code_Id = 60001 (Healthy), Code_Id = 60011 (Concerned) and Code_Id = 60021 (At Risk).
Type_Id = 60067 => Alphanumeric Udf to store information about the rules contributing to the calculation of the Health Indicator.
Two new items have been added to the ADMN_Config table for the Health Indicator Worker process:
KeyCode = HEALTH_INDICATOR_ABENTRY, SubKeyCode = SCRIPT => stores the script with the logic (formula) to calculate the health index.
KeyCode = HEALTH_INDICATOR_ABENTRY, SubKeyCode = CONFIGURATION => parameters for the calculations, including those set by the UI based on specific rules.
QuotaRevenue - Add support for Parent object (SalesTeamObject)
A New Parent field was added to the QuotaRevenue object, providing details of the object represented by the ParentKey. For example, when ParentKey represents a SalesTeam, the Parent will expose all fields related to SalesTeamObject.
QuotaRevenue - Support querying by ParentKey EntityType
Added the ability to read from the QuotaRevenue object by filtering ParentKey using EntityType, allowing filtering quotas assigned to Sales Teams or Users.
Task - Change name/label for Activity and AssignedTo fields
The schema definition for the Task object was updated to versions 1.8 and 2.2. The names of the following fields were changed:
/Task/Activity => Name changed from "Activity/Subject" to "Subject"
/Task/AssignedTo => Name changed from "Owner" to "Assigned to"
Octopus API version: 2.39
Database version: 18.14.0
Bug Fixes
Lead Search Email Address Issue
Resolved an issue where searches for an email address in Lead Search failed when the address contained more than one number. This was due to an invalid SQL query generated when a Lead $PHRASE search was issued with a term that was identified as both an email (term contains '@' and '.') and a phone (term contains at least three numeric values) simultaneously.
Opportunities Search by Close Date
Fixed a bug specific to Cloud customers, where searching for Opportunities by Close Date = "This Fiscal Quarter" used the range between the second day of the fiscal quarter to the day after the fiscal quarter. The issue was resolved by correcting the logic for converting local time to UTC time, ensuring that Opportunities closed one day after the upper bound date are not incorrectly returned.
API Date Format Issue for Locale en-CA
Addressed an issue where the API returned the Note DateTime field's Display Value for the Short date incorrectly when the Locale was set to en-CA. The resolution involved fixing the date formatting for single-digit days when the date format is set to "short date" in Advanced Settings, ensuring correct date display (e.g., "2022-05-5 3:27 PM" now correctly displays as "2022-05-05 3:27 PM") for certain locales, including CA, SK, and PT.
MaAccess Error for New UDF in 2023.2 On-Premise DB
Resolved a MaAccess Error encountered when adding a new User-Defined Field (UDF) for an Opportunity or Campaign in a new 2023.2 On-Premise DB, specific to On-Premise customers. The issue was fixed by removing the creation of the outdated "Udf Detail View" (old security mechanism) from the UDF creation process, aligning with the current security mechanism that does not rely on those detailed views.
Import - Search by Key Issue
Fixed an issue where the Import object could not be queried by Key due to an incorrect implementation of the json transformer, which failed to translate the request into the actual database query. The query by Key is now fully operational for the Import object.
OAuth - Validate /Token requests before processing
Added validations to the /Token endpoint on the Authentication API (OAuth), to ensure the data provided in the request is correct before processing it. If no data is provided, it fails with an error message: "Authorization was attempted with no data provided." If the "client_id" parameter is not provided, has more than 20 characters, or is not alphanumeric, it fails with "Authorization was attempted with an invalid client_id." When the "grant_type" parameter is "authorization_code," and if the "code" parameter is not provided, has more than 20 characters, or is not alphanumeric, it fails with "Authorization was attempted with an invalid code." When the "grant_type" parameter is "refresh_token," and if the "refresh_token" parameter is not provided, has more than 20 characters, or is not alphanumeric, it fails with "Authorization was attempted with an invalid refresh_token." If the "grant_type" parameter is not "authorization_code" or "refresh_token," it fails with "The value of the grant_type parameter is not valid."
New features and improvements
Case - New Field "Overdue"
Added a new "Overdue" flag (BooleanField) to the Case object. This field is calculated based on the FollowUpDate field and will be: "null" when the FollowUpDate field is not set (null), "true" when the FollowUpDate field is past the current datetime, and "false" when the FollowUpDate field is not past the current datetime. The new field is available when searching on both Legacy and SQL drivers. The field is not assignable, meaning it cannot be set to a specific value when creating, updating, or deleting a Case.
Support Teams for Revenue Targets
Added support for SalesTeamKey as ParentKey for the QuotaRevenue object. It's now possible to assign quota targets for Sales Teams and also individual users (UidKey was already supported previously). For CUD (create, update, delete) operations, there is no change in the request, except that ParentKey now recognizes SalesTeamKey formatting. For Read operations, there is additional information that can be added to the "Scope", making it easier to differentiate when a ParentKey is for a Sales Team and when it's for an individual user. The API will automatically set the response using the desired format depending on the ParentKey associated with each entry.
See an example below: