v3.7.9 – Workflow Automation, Access Control & AI Visibility
Release Notes
v3.7.9 continues to evolve Blocks Cloud into a modern, extensible platform for building, securing, and operating intelligent systems. This release introduces visual Workflows for automation, Roles and Permissions for fine-grained access control, and meaningful upgrades across AI, localization, and platform APIs.
Together, these enhancements bring greater control, transparency, and composability—allowing teams to automate processes, govern access across data and applications, and gain deeper insight into AI behavior, all while staying aligned with current industry standards for platform engineering and AI operations.
Roles and Permissions
Blocks Cloud introduces Roles and Permissions to give teams fine-grained control over access across data, APIs, and user interfaces. This capability aligns with modern security and governance standards, ensuring the right users have the right access—no more, no less.
Access Control Areas
Roles and permissions can be applied across three key aspects of the platform:
- Data Connect
- Control access to data using row-level and schema level permissions.
- Ensure sensitive data is visible only to authorized roles.
- Endpoints
- Define who can access and invoke specific API endpoints.
- Enforce consistent authorization rules across services.
- Front-End
- Control access to front-end pages and resources.
- Tailor UI visibility based on user roles.
Benefits
- Stronger security through least-privilege access control.
- Centralized governance across data, APIs, and UI.
- Cleaner separation of responsibilities for teams and collaborators.
- Scalable access management as applications and organizations grow.
Workflows
Blocks Cloud now introduces Workflows, enabling teams to orchestrate automation and integrations through a visual, node-based experience—similar to modern workflow tools used across the industry.
Nodes Available
Workflows are built by connecting reusable nodes that can be arranged in any configuration:
- HTTP — Send HTTP requests to external services or APIs.
- Webhook — Receive incoming HTTP calls with user-defined input and output schemas.
- Email — Send emails as part of automated flows.
- AI — Invoke any chatbot configured in Blocks Cloud directly within a workflow.
Key Capabilities
- Flexible, visual node-based composition for building automation flows.
- Support for custom input and output definitions, enabling predictable integrations.
- Combine AI, external APIs, and notifications in a single workflow.
Benefits
- Faster automation without writing glue code.
- Seamless AI integration—use chatbots as first-class workflow components.
- Greater flexibility to connect services, react to events, and automate processes.
- Extensible foundation for future workflow nodes and integrations.
AI
The assistant now provides live feedback after a prompt is submitted, indicating the current stage of processing so users know the request is actively being handled.
- The assistant now provides live feedback after a prompt is submitted, indicating the current stage of processing so users know the request is actively being handled.
- Ask AI in Tracing and Logs also has real-time responses
- Improvements in AI conversation history
- See workflow steps
- See duration in each step
- See the tools that were used, if any, along with the input and output parameters
- See the used retrieval calls, if any, along with the chunks
- The Tools sections input and output parameters has been improved and supports nested objects
- The output parameters can be reduced based on output parameter limits. This helps reduce token calls
- Tools dashboard tab is now active. See useful information like:
- Total Requests
- Success Rate
- Success Requests
- Failed Requests
- Configuration improvements
Microservices endpoint changes
Some microservice endpoints have been updated in this release. The previous endpoints will remain supported for a limited period to ensure backward compatibility.
We recommend updating your integrations to use the new endpoints as soon as possible, as the legacy endpoints will be deprecated and removed after the announced deprecation window.
| Submodules | Old microservice Endpoint | New microservice endpoint |
|---|---|---|
| Authentication submodule | /authentication/v1/Client/GetOIDCClients | /idp/v1/Authentication/GetOIDCClient |
/authentication/v1/OIDCClient/Save | /idp/v1/Authentication/SaveOIDCClient | |
/authentication/v1/Client/DeleteOIDCClient | /idp/v1/Authentication/DeleteOIDCClient | |
/authentication/v1/OIDCClient/Get | /idp/v1/Authentication/GetClientCredentials | |
/authentication/v1/Client/SaveClientCredential | /idp/v1/Authentication/SaveClientCredential | |
/authentication/v1/Client/DeleteClientCredential | /idp/v1/Authentication/DeleteClientCredential | |
/authentication/v1/Configuration/Get | /cloudconfiguration/v1/Authentication/Get | |
/authentication/v1/Configuration/Update | /cloudconfiguration/v1/Authentication/Update | |
/authentication/v1/OAuth/Token | /idp/v1/Authentication/Token | |
/authentication/v1/Authentication/Logout | /idp/v1/Authentication/Logout | |
/authentication/v1/OAuth/GetSocialLogInEndPoint | /idp/v1/Authentication/GetSocialLogInEndPoint | |
/authentication/v1/Social/GetSsoCredentials | /idp/v1/Authentication/GetSsoCredentials | |
/authentication/v1/Social/SaveSsoCredential | /idp/v1/Authentication/SaveSsoCredential | |
/authentication/v1/Social/DeleteSsoCredential | /idp/v1/Authentication/DeleteSsoCredential | |
/authentication/v1/Social/UpdateStatus | /idp/v1/Authentication/UpdateStatus | |
/authentication/v1/Social/GetLoginOptions | /idp/v1/Authentication/GetLoginOptions | |
| Captcha submodule | /captcha/v1/Configuration/Gets | /cloudconfiguration/v1/Captcha/Gets |
/captcha/v1/Configuration/Save | /cloudconfiguration/v1/Captcha/Save | |
/captcha/v1/Configuration/UpdateStatus | /cloudconfiguration/v1/Captcha/UpdateStatus | |
| Communication submodule | /mailservice/v1/Configuration/Get | /cloudconfiguration/v1/Mail/Get |
/mailservice/v1/Configuration/Gets | /cloudconfiguration/v1/Mail/Gets | |
/mailservice/v1/Template/Gets | /communication/v1/Template/Gets | |
/mailservice/v1/Template/Get | /communication/v1/Template/Get | |
/mailservice/v1/Configuration/Save | /cloudconfiguration/v1/Mail/Save | |
/mailservice/v1/Mail/SendToAny | /communication/v1/Mail/SendToAny | |
/mailservice/v1/Template/Save | /communication/v1/Template/Save | |
/mailservice/v1/Template/Clone | /communication/v1/Template/Clone | |
/mailservice/v1/Template/Delete | /communication/v1/Template/Delete | |
/mailservice/v1/Configuration/Delete | /cloudconfiguration/v1/Mail/Delete | |
| Data-gateway submodule | /data/v1/data-sources/add | /uds/v1/data-sources/add |
/data/v1/data-sources/update | /uds/v1/data-sources/update | |
/data/v1/data-sources/${payload.projectKey}/get | /uds/v1/data-sources/${payload.projectKey}/get | |
/data/v1/${payload.projectShortKey}/configurations/${payload.projectKey}/reload | /uds/v1/${payload.projectShortKey}/configurations/${payload.projectKey}/reload | |
/data/v1/configurations/${payload.projectKey}/reload | /uds/v1/configurations/${payload.projectKey}/reload | |
/data/v1/schemas?Keyword=${payload.keyword}&PageSize=${payload.pageSize}&PageNo=${payload.pageNo}&SortDescending=${payload.sortDescending}&SortBy=${payload.sortBy}&ProjectKey=${payload.projectKey}&SchemaType=${payload.schemaType} | /uds/v1/schemas?Keyword=${payload.keyword}&PageSize=${payload.pageSize}&PageNo=${payload.pageNo}&SortDescending=${payload.sortDescending}&SortBy=${payload.sortBy}&ProjectKey=${payload.projectKey}&SchemaType=${payload.schemaType} | |
/data/v1/schemas/${id}?projectkey=${projectKey} | /uds/v1/schemas/${id}?projectkey=${projectKey} | |
/data/v1/schemas/info | /uds/v1/schemas/info | |
/data/v1/schemas/fields | /uds/v1/schemas/fields | |
/data/v1/schemas/${payload.id}?projectKey=${payload.projectKey} | /uds/v1/schemas/${payload.id}?projectKey=${payload.projectKey} | |
/data/v1/data-access/manage | /uds/v1/data-access/manage | |
/data/v1/data-access/security/change | /uds/v1/data-access/security/change | |
/data/v1/${projectShortKey}/gateway | /uds/v1/${projectShortKey}/gateway | |
/data/v1/data-manage/${projectKey}/mock-data | /uds/v1/data-manage/${projectKey}/mock-data | |
/data/v1/data-manage/mock-data | /uds/v1/data-manage/mock-data | |
| Iam submodule | /iam/v1/Account/Activate | /idp/v1/Iam/Activate |
/iam/v1/Account/ResendActivation | /idp/v1/Iam/ResendActivation | |
/iam/v1/Account/Recover | /idp/v1/Iam/Recover | |
/iam/v1/Account/ResetPassword | /idp/v1/Iam/ResetPassword | |
/iam/v1/Account/ValidateActivationCode | /idp/v1/Iam/ValidateActivationCode | |
/iam/v1/Configuration/Get | /cloudconfiguration/v1/IAM/Get | |
/iam/v1/Configuration/Save | /cloudconfiguration/v1/IAM/Save | |
/iam/v1/Resource/GetPermissions | /idp/v1/Iam/GetPermissions | |
/iam/v1/Resource/GetPermission | /idp/v1/Iam/GetPermission | |
/iam/v1/Resource/CreatePermission | /idp/v1/Iam/CreatePermission | |
/iam/v1/Resource/UpdatePermission | /idp/v1/Iam/UpdatePermission | |
/iam/v1/Resource/GetResourceGroups | /idp/v1/Iam/GetResourceGroups | |
/iam/v1/Resource/GetRoles | /idp/v1/Iam/GetRoles | |
/iam/v1/Resource/GetRole | /idp/v1/Iam/GetRole | |
/iam/v1/Resource/CreateRole | /idp/v1/Iam/CreateRole | |
/iam/v1/Resource/UpdateRole | /idp/v1/Iam/UpdateRole | |
/iam/v1/Resource/SetRoles | /idp/v1/Iam/SetRoles | |
/iam/v1/User/GetUsers | /idp/v1/Iam/GetUsers | |
/iam/v1/User/GetUser | /idp/v1/Iam/GetUser | |
/iam/v1/User/GetUser?id=${payload.id}&ProjectKey=${payload.projectKey} | /idp/v1/Iam/GetUser?id=${payload.id}&ProjectKey=${payload.projectKey} | |
/iam/v1/User/Create | /idp/v1/Iam/Create | |
/iam/v1/User/Update | /idp/v1/Iam/Update | |
/iam/v1/User/SaveRolesAndPermissions | /idp/v1/Iam/SaveRolesAndPermissions | |
/iam/v1/Activity/GetSessions | /idp/v1/Iam/GetSessions | |
/iam/v1/Activity/GetHistories | /idp/v1/Iam/GetHistories | |
/authentication/v1/Client/GetUserCodes | /idp/v1/Authentication/GetUserCodes | |
/authentication/v1/Client/GenerateUserCode | /idp/v1/Authentication/GenerateUserCode | |
/iam/v1/user/getUserRoles?Id=${payload.userId}&ProjectKey=${payload.projectKey} | /idp/v1/Iam/GetUserRoles?Id=${payload.userId}&ProjectKey=${payload.projectKey} | |
/iam/v1/user/GetUserPermissions?Id=${payload.userId}&ProjectKey=${payload.projectKey} | /idp/v1/Iam/GetUserPermissions?Id=${payload.userId}&ProjectKey=${payload.projectKey} | |
/iam/v1/Account/ResendActivation | /idp/v1/Iam/ResendActivation | |
| MFA submodule | /mfa/v1/Configuration/Get?ProjectKey=${paylaod.projectKey} | /cloudconfiguration/v1/MFA/Get?ProjectKey=${paylaod.projectKey} |
/mfa/v1/Configuration/Save | /cloudconfiguration/v1/MFA/Save | |
/mfa/v1/Management/GenerateOTP | /idp/v1/Mfa/GenerateOTP | |
/mfa/v1/Management/SetUpTotp?UserId=${paylaod.id}&ProjectKey=${paylaod.projectKey} | /idp/v1/Mfa/SetUpTotp?UserId=${paylaod.id}&ProjectKey=${paylaod.projectKey} | |
/mfa/v1/Management/VerifyOTP | /idp/v1/Mfa/VerifyOTP | |
/mfa/v1/Management/ResendOtp | /idp/v1/Mfa/ResendOtp | |
/mfa/v1/Management/DisableUserMfa | /idp/v1/Mfa/DisableUserMfa | |
| Nofitication submodule | /notification/v1/NotificationHub | /communication/v1/NotificationHub |
/notification/v1/Notifier/GetNotifications | /communication/v1/Notification/GetNotifications | |
/notification/v1/Notifier/MarkNotificationAsRead | /communication/v1/Notification/MarkNotificationAsRead | |
/notification/v1/MarkAllNotificationAsRead | /communication/v1/Notification/MarkAllNotificationAsRead | |
/notification/v1//Configuration/Gets?page=${page}&pageSize=${pageSize}&projectKey=${projectKey} | /cloudconfiguration/v1/Notification/Gets?page=${page}&pageSize=${pageSize}&projectKey=${projectKey} | |
/notification/v1/Configuration/Save | /cloudconfiguration/v1/Notification/Save | |
/notification/v1/Configuration/Delete?itemId=${payload.itemId}&projectKey=${payload.projectKey} | /cloudconfiguration/v1/Notification/Delete?itemId=${payload.itemId}&projectKey=${payload.projectKey} | |
| Storage submodule | /storage/v1/Configuration/Gets?ProjectKey=${projectKey} | /cloudconfiguration/v1/Storage/Gets?ProjectKey=${projectKey} |
/storage/v1/Configuration/Save | /cloudconfiguration/v1/Storage/Save | |
/storage/v1/Configuration/Delete?ProjectKey=${payload.projectKey}&ConfigurationName=${payload.configurationName} | /cloudconfiguration/v1/Storage/Delete?ProjectKey=${payload.projectKey}&ConfigurationName=${payload.configurationName} | |
/storage/v1/Files/GetFile?FileId=${payload.itemId}&ProjectKey=${payload.projectKey} | /uds/v1/Files/GetFile?FileId=${payload.itemId}&ProjectKey=${payload.projectKey} | |
/storage/v1/Files/DeleteFile | /uds/v1/Files/DeleteFile | |
/storage/v1/Files/GetPreSignedUrlForUpload | /uds/v1/Files/GetPreSignedUrlForUpload | |
/storage/v1/Files/GetFilesInfo | /uds/v1/Files/GetFilesInfo | |
/storage/v1/Files/updateFileAdditionalInfo | /uds/v1/Files/updateFileAdditionalInfo | |
/storage/v1/Files/GetFile?FileId=${meta.fileId}&ProjectKey=${meta.projectKey} | /uds/v1/Files/GetFile?FileId=${meta.fileId}&ProjectKey=${meta.projectKey} | |
/storage/v1/Files/UploadFileToLocalStorage | /uds/v1/Files/UploadFileToLocalStorage | |
/storage/v1/Certificate/UploadCertificate?TenantId=${payload.TenantId}&IsThirdParty=true | /uds/v1/Certificate/UploadCertificate?TenantId=${payload.TenantId}&IsThirdParty=true |
Localization Service Webhook
Get notified every time the auto-translation is complete. Use the following endpoint to set up your webhooks.
curl --location 'https://api.seliseblocks.com/uilm/v1/Config/SaveWebHook' \
--header 'Authorization: Bearer <your-token>' \
--header 'Content-Type: application/json' \
--data '{
"itemId": "<uuid>",
"createDate": "<iso_8601_timestamp>",
"lastUpdateDate": "<iso_8601_timestamp>",
"url": "<webhook_url>",
"contentType": "application/json",
"blocksWebhookSecret": {
"secret": "<webhook_secret>",
"headerKey": "<signature_header_name>"
},
"isDisabled": false,
"projectKey": "<project-key>"
}'
Bug Fixes
- Fixed key duplication when migrating language keys form one environment to another
- Fixed only keys are IDs were being exported when exporting to Excel format