When setting up a Workflow, you will first need to set up a trigger event to determine when the Action will run. For a list of Trigger Events see our article here: Workflow Trigger Events
This article will focus on Notification Actions. A user can be notified by 3 automated workflow actions. They can receive an E-mail or combined email, and be notified via Slack integration with a Webhook.
Send Notification
This allows you to send a notification on screen to the user. This is a great tool to give instant feedback of actions to let users know of actions that may have been triggered i.e. if a user triggers and email notification you can add a notification node at the end that says 'Email Sent'.
- Message: This is where you put the message to send to the user
- Target Teams: Here you can choose a team to send the message to
- Target Users: Here you can select a user on the site to send a message to
- Target Person Fields: Here you can select a person field on the app that contains a user you want to send a message to
- Target Current User: Here you can select to send the message to the user who triggered the workflow
- Target Current Users Team: Here you can select to send the message to the users team who triggered the workflow
Note: Another great use for this is to get quick feedback if you having an issue with a workflow not completing but you can't tell where it's failing on the workflow. If you have a chain of 5 nodes for example you can add a notification after each node and before the next stating which node it's after, then when you test in workspace you will see which notification it stops at and then you able to tell which node is failing.
Send Webhook Message
The send webhook node allows you to send data outside of the Softools platform. This can be used to:
- Transferring data to another 3rd party application
- Sending notifications to users outside of Softools (Sending MS Teams Notifications)
- Automating your work
To understand webhooks on a deeper level please see this community post here.
- Destination URL: Think of this as the address you're sending your data to.
- Fill in Defaults: If you have default values in your app make sure to tick this so they are included in the message
- Send Full Record: This is a quick way of sending a whole records worth of data so you don't have to individually select fields if you want all the data sent.
-
Send Specified Data:
- Add Field: This allows you to select individual fields to send the data of
- Add Expression: This allows you to manipulate the data you are sending so you don't have to create a separate field in the app and send that.
The headers we send are as follows:
- Softools-RecordId : the record ID
Softools-Workflow-RunId : the run ID (as seen in the Workflow Runs view in App Studio)
Softools-Workflow-NodeId : the node ID (as seen in the Workflow graph editor in App Studio)
Send Email
You can send an email to a User that contains information from the Record that generated the Workflow. Firstly, select 'Notify' as the Action and 'Send Email' as the Result.
Below is example content for sending information about a RAID item that has turned Status Red:
First select 'Notify' as the Action and 'Send Email' as the Result.
Email Content: You can then choose if you would like to 'Use Base Template?'. If you select this format then it will format the email to include a Softools header and footer to the body of the message.
You can now set the Subject for the email and the message content. For these you can reference Record data by using @Softools.FieldValue("FieldID") as a Keyword. You can also add a link to the Record that generated the workflow by adding the Keyword @Softools.RecordLink("text shown"). This will create a clickable link to the record if the user clicks the "Text shown" in the email. If you just use the @Softools.RecordLink()without the text to click, then URL will be shown as clickable text
For our example we will use the following in the Subject and Message:
Subject:
@Softools.FieldValue("Title") has turned Status Red
Message:
RAID Item
- A RAID item (@Softools.FieldValue("Title") ) has turned status RED
- Owner : @Softools.FieldValue("Owner_Text")
- Client : @Softools.FieldValue("Client")
- Status: @Softools.FieldValue("Status")
- Tag: @Softools.FieldValue("Tag")
- Due Date : @Softools.FieldValue("DueDate_Formatted")
- Click here to load the record : @Softools.RecordLink()
- @Softools.RecordLinkHtml(click here to show my project) shows an actual URL link with the text provided as the parameter.
- This is the project Description : @Softools.FieldValue("Description")
You can reference Record data by using @Softools.FieldValue("FieldID") as a Keyword.
You can also add a link to the Record that generated the workflow by adding the Keyword @Softools.RecordLink()
Note: For records with multiple forms where you want to attach the record link with the correct form showing (e.g., you have three forms, one for proposal of an idea, one for evaluation of the idea and one for approval and you want to send the record link but open on the approval form), you would use the same Keyword - @Softools.RecordLink() but with a forward-slash and then the form ID like so:
@Softools.RecordLink()/FormID
The message will take a similar syntax to Markdown. Here is an example message for when a support ticket has been completed:
Attachment: Within the email, you can choose to include a Templated Report as an attachment - at the bottom, there is an 'Add Attachment' button allowing you to specify the templated report you wish to attach to the email going out. This needs to be a pre-existing word export template at Record level.
- Alternatively, you can use @Softools.DocumentLink("DocumentFieldID") to put a Document download link directly in the body of the email instead of adding it as an attachment.
Notes: Notes is a handy area for app builders to note down what the purpose of each node is used for to help themselves down the line or for other app builders who work on the app and need some context
- Note: Attachments are added to emails via a link, this link will last for 30 days.
- Note: The entry for the message is Rich Text. This means that if you copy and paste values in then it will keep the text formatting. This may cause a conflict for the @Softools.FieldValue("Field") references if the text format has changed due to a copy and paste of the Field ID. We recommend that you type the full keyword reference and do not copy and paste values into the Email message to avoid this.
- Note: Some field types are not supported because the emails are rich text and so cannot support more complex field types such as ImageFields, Grids, InAppChart fields... For these, it is better to include them in a Templated Report and attach that.
- Note: Adding a static email address to an email workflow will require you to create an email field in the app with the email as the default value and then reference that field in the workflow as: @Softools.FieldValue("EmialFieldId") otherwise the '@' in the email will try and reference a field that doesn't exist
Following the above example will send an email that looks like this:
Lastly, you will need to say which Users should receive the email. To do this type in the 'To' box and you can search for specific Users and Teams or Users named in Person and Email Fields.
Note: The recipient list must contain one 'To' in order to send the email. If a User is referred to more than once as a result of being selected as a User and a member of a Team and named in a Person or Email Field then they will only receive the email once in priority 'To' then 'Cc' and then 'Bcc'.
Send Combined Email
This function is similar to the node above with some differences suited for larger amounts of data.
- "Send email" sends one email per record to all the recipients. You can use template substitutions (@Softools.FieldValue... etc) within the subject and message body. The attachments of each email contain only the one record the email is about.
- "Send combined email" sends one email per workflow batch (typically only one email unless the number of records matched is very large) to all the recipients. You cannot use template substitutions (@Softools.FieldValue... etc) within the subject or message body. The attachments are combined reports of all records matched.
Send Azure OpenAI Classification Node
This node allows you to utilize the power of Azure OpenAI for text classification tasks directly within your workflows. This can be used for:
- Automating decision-making based on text inputs.
- Classifying text into predefined categories.
- Enabling smarter workflows using AI-driven insights.
Destination URL: This is the endpoint where your prompt data will be sent. Make sure to use the proper URL of your deployed Azure OpenAI model and include the api-version
query parameter.
-
Example URL:
https://api.openai.azure.com/v1/classifications
API Version: Specify the version of the Azure OpenAI API you are targeting. This ensures compatibility between your workflow and the OpenAI model.
-
Example:
?api-version=2023-06-01
API Key: Enter your Azure OpenAI API key, which is required for authorization. This ensures that only authenticated requests are processed by the model.
Max Tokens: Set the maximum length of the response in tokens. This defines how much data the AI can generate or classify for a given input.
Temperature: Adjust how "creative" or "focused" the AI responses should be, adjust this setting based on the nature of your classification task:
-
Low (0.0–0.4): Focused and deterministic responses.
-
High (0.5–1.0): Creative and diverse responses.
Response Variable Name:
You can define a variable name to store the response. This makes it easier to use the results in subsequent workflow steps. This can follow into another node like an email or update field value
-
Example:
Var.ClassificationResponse
Classifications: Choose from a list of your select lists for the AI model to classify the text into. The model will choose the best-matched category.
Context Fields: Provide text fields that contain the input data you want to classify. You can include up to 5 fields, enabling flexibility for diverse text classification tasks.
Practical Use Cases
-
Sorting customer feedback into categories like "Positive," "Negative," and "Neutral."
-
Automating ticket routing based on content (e.g., technical vs. billing issues).
-
Classifying emails or text inputs for workflow triggers.
Send Azure OpenAI Prompt Node
This node allows you to use the capabilities of Azure OpenAI's chat completion API to generate AI-powered responses directly within your workflows. It is versatile and can be used for tasks such as:
- Crafting dynamic responses based on input prompts.
- Enabling AI-driven conversations.
- Automating workflows with context-aware AI outputs.
Destination URL: This is the endpoint where your prompt data will be sent. Ensure the URL corresponds to your deployed Azure OpenAI model and includes the api-version
query parameter.
-
Example URL:
https://api.openai.azure.com/v1/completions
API Version: Specify the version of the Azure OpenAI API being targeted. This ensures the model responds appropriately.
-
Example:
?api-version=2023-06-01
API Key: Enter your Azure OpenAI API key. This is required for authentication to ensure only authorized requests are processed.
Max Tokens: Set the maximum number of tokens for the AI’s response. This limits the length of the output.
Temperature: Adjust the randomness and creativity of the AI's output:
-
Low (0.0–0.4): More focused and predictable responses.
-
High (0.5–1.0): Creative and varied responses.
Response Variable Name: Define a variable name to store the AI's response for use in subsequent workflow steps, such as email generation or updating field values.
-
Example:
Var.PromptResponse
Message Structure: Messages are used to structure the conversation for the Azure OpenAI chat completion API. Each message includes a role and content:
-
Roles:
-
system
: Defines the AI assistant’s behavior. -
user
: Provides input from the user. -
assistant
: Represents the AI’s responses.
-
-
Example Message:
-
System: "You are a risk advisor."
-
User: "I'm starting a project creating an application to track our projects"
-
Assistant: "Lay out the risks with a score of 1-5 for severity and likelihood"
-
Practical Use Cases
-
Generating natural language summaries from text fields.
-
Providing dynamic and tailored responses to customer queries.
-
Drafting email content or report text based on workflow data.
Make sure to click the 'Save' button when making any changes in order for them to be added to the next app version. Once you have made all the changes you need to an application you are then ready to publish it to workspace.
Comments
0 comments
Please sign in to leave a comment.