SHA512 support in CRMScript
Added global functionByte[] encodeHMACSHA512(String key, String value).This function generates and returns a hash from a specified key-value pair using the HMAC SHA512 encoding algorithm. This can be used to ensure data integrity.For more information, see the CRMScript reference.NetServer
NetServer Logger requirements
NetServer has switched from using a baked-into-the-code logger to using an extensible plugin system of ILogger based loggers.The old logger now lives in SuperOffice.Logging.dll, but you can remove it, replace it, or add more loggers alongside it.All the logger plugins are used - there is no preferential treatment among theILoggers.- For web applications, ASP.NET will load all the DLLs in the bin folder automatically.
- For console applications, you will need to add the plugins to the
<DynamicLoad>section or add explicit references to make sure the DLLs are loaded and found by the class factory.
ChatbotbLogic
Chatbot - CRMScript Chatbots
Chatbots are CRMScripts that can interact with chat sessions. Chatbot functionality in SuperOffice requires the AI license. This enables the Chatbot tab in chat administration.Chatbots are folders that contain one or more CRMScripts with names that fit a pattern:…bot register… signals the presence of a chatbot in the folder.…bot session create… is called when a new chat session starts.…bot session change… is called when the chat session changes state.…bot message receive… is called when a new message is received.The names of the scripts must follow this pattern, but they allow any prefix or suffix you want. echobot register, my bot registered, and BotRegister are all acceptable names for the registration script.The CRMScripts are not called after the chatbot hands the session off to the queue for human processing. The bot message receive script is only called for incoming messages.This removes the need for a bunch of book-keeping logic, simplifying the bot scripts.Read more about chatbots.New options for bLogic chart element
New Map keys foraddSeries:- seriesType
- yaxis2
- setX2Label
- setY2Label
- setY2Min
- setX2Max
- setAllowY2AxisDecimals
- setY2AxisInterval
Bulk Operations
Mass Operations
SuperOffice APIs support the import and update of large datasets via the Mass Operations API. This API leverages database server features that are optimized for speed and efficiency.See API referenceWebHooks
WebHooks - Include contact_id and person_id in activity.deleted
With the introduction of soft-deletes, the contact and person deleted webhooks were “broken”. These events will fire when the entity has been permanently removed from SuperOffice.contact.deletedperson.deleted
contact.softdeletedperson.softdeleted
Values property to webhook for deleted events, to hold ID values from the original record (if available). Deleted activities will now retain contact and person ID values. This will allow you to see which company or person the deleted activity was connected to.For more info, see announcement in the forums and webhook reference.WebHooks - Project member triggers/webhooks
Once you delete a project member, the Number of project members field is automatically updated and does not require scripting.Deleted activities will now retain contact, person, project, and sale ID values. This will allow you to see which company, person, project, or sale the deleted activity was connected to.Prefix changes on date/time
Since serialization of arbitrary objects is somewhat problematic - that’s why we have JSON, BSON, XML, ASN.1, and what-have-you - we decided to make our own, self-identifying format for archive values. In our code, it lives in the beautifully named classCultureDataFormatter, and we use it all over the place, particularly in the archive providers. Both values going out through DisplayValue and values coming in view ArchiveRestrictionInfo.Values[] use this format.Also check out the blog post.