Server Settings
Server-wide settings can be accessed using the File menu on the ThinkAutomation Studio ribbon. These settings affect the ThinkAutomation server.
Email Sending
Enter an Administrator Email Address. This will be used as the 'from' address for any server generated emails (error notifications etc.).
Enter any Default Recipients. This is the default email address to receive server generated emails (automation error notifications, daily summary emails, message source error notifications etc.). You can override this setting on a per-solution basis (the Contact Email on the Solution properties page).
If Send Automation Error Emails is enabled then the ThinkAutomation Server will send an email to the Default Recipients whenever an Automation fails with an error.
Send Emails Via
These settings control how ThinkAutomation sends outgoing emails. This should be configured if any of your Automations use the Send Email action.
You can send emails via:
- SendGrid (Recommended)
- Smart Host (An external SMTP Server)
Via SendGrid
You can use SendGrid to send outgoing emails. You must create a SendGrid account and specify your SendGrid API Key. SendGrid provides a reliable and fast option for sending outgoing emails. See: https://www.sendgrid.com.
Via Smart Host (SMTP)
You can use an external mail server to send outgoing emails. Specify the Outgoing SMTP Server IP address or DNS name, Port, Username & Password. Click the Outgoing SMTP Security option if your mail server requires STARTTLS or SSL specifically, or leave as 'Auto'. You can also use this option to send via cloud hosted email providers that provide an SMTP option (such as Office 365, Amazon SES).
Using Office 365
To use Office 365 set the Send Emails Via option to Via Smart Host (SMTP) and set the SMTP settings to:
- Outgoing SMTP Server: smtp.office365.com
- Outgoing SMTP Security: STARTTLS
- Outgoing SMTP Port: 587
- Username: Your Office 365 Address (e.g. example@yourdomain.com)
- Password: Your Office 365 password (or App Password)
You may need to create an 'App Password' to use Office 365 SMTP and use this instead of your regular user password.
If using Office 365 SMTP the 'from' address of your outgoing emails must be one of your email addresses assigned to the Office 365 account being used. Emails sent will show in the Office 365 Sent Items folder for the user.
Click the Send Test Email button to verify the outgoing email settings.
Outgoing Queue Size
This setting determines the maximum number of outgoing emails that can be sent in a single batch. Some mail servers will limit the number of emails accepted from a single IP address per second, hour etc. You can reduce the queue size if your outgoing mail server imposes send limits. If the queue becomes full, ThinkAutomation will store the email in the Message Store database and add it to the queue later when the current queue is empty. A lower queue size will result in outgoing emails being sent more slowly. The queue is refreshed after 5 seconds. So if you set the queue size to 10 then a maximum of 10 emails will be sent every 5 seconds.
The Queue Size setting is not applicable if you are using SendGrid to send outgoing emails - since SendGrid's rate limits are already very high.
Message Store
This tab shows the current Message Store configuration. The Message Store database will have been created when you first run ThinkAutomation.
Changing The Message Store Type
Click Reconfigure to change the Message Store type. This will remove the current Message Store configuration settings and restart the ThinkAutomation Studio so that a new Message Store database can be created. Your existing Message Store database will be left unchanged. The new Message Store will contain no data. The ThinkAutomation Services will be stopped during this process.
Copying The Message Store Database
Click the Copy button to make a copy of the current Message Store database. The Copy Message Store Wizard will be shown. Here you can select another database to copy the current Message Store records to. If the copy database does not exist it will be created. The copy database can be a different type. For example: Your current Message Store could be using SQL Server, and you can copy it to a SQLite, MySQL or PostgreSQL database.
The contents of the current Message Store database will then be copied to the selected database. This process may take some time for large Message Stores.
You can run the copy whilst the ThinkAutomation server is active. However, the copy may not contain all data if messages are processed during the copy. If you want to ensure the copy contains an exact copy of all processed messages, you should disable all of your Solutions first (or stop the ThinkAutomationMessageProcessor service during the copy).
If you want to change your Message Store database type and retain all of your existing data, you can use the Copy option to create a copy. Then use the Reconfigure option. You can then select the copy database as your new Message Store.
Other Settings
Run Message Store Database Maintenance At
Each day at the times specified the ThinkAutomation Server will delete processed messages according to the Keep Messages For (Days) setting on each of your Solutions. This process can take some time on a high usage ThinkAutomation implementation. If you are using a shared database server for your ThinkAutomation Message Store then you should select times when no other maintenance operations are being performed on the database. You should specify multiple times on high usage implementations to split up the delete operations.
Log Retention Maximum Days
This setting defines the maximum number of days that Automation & Message Source logs are retained for. Any log records older than this will be deleted during message store maintenance.
Disable Message Store Database Maintenance
You can disable the automatic deletion of Message Store messages for all Solutions by enabling this option.
Backup Solution Settings In Message Store
If this option is enabled then ThinkAutomation will automatically store copies of your Solutions (Message Source & Automation settings) in the Message Store database. These copies will be updated whenever any changes are made. This setting should not be enabled if your Message Store database is not secure - since someone without ThinkAutomation user access could potentially view settings data if they can access the database.
Restoring Solution Settings
Should your MetaData file (MetaData.db) become corrupt or lost, the ThinkAutomation server will attempt to restore your Solutions from the Message Store backup (if the above option is enabled). Ensure the ThinkAutomation Service is stopped. Remove the corrupted MetaData.db file from the \ProgramData\Parker Software\ThinkAutomation.NET\ folder. The restart the ThinkAutomation Server. If the server cannot find a MetaData.db file it will attempt a recovery from the Message Store database (if the Backup option was enabled).
Message Store Flags
You can assign a Flag to an incoming message in an Automation using the Set Message Store Flag action. When you view messages in the Message Store you can filter by Flag.
You can define any number of Flags. Each flag is given a Number, Description and Color.
Message Processor
The Message Processor Service Tasks setting defines the number of message processor tasks that the Message Processor Service starts.
By default the Message Processor Service starts 4 separate tasks for Automation processing. Each separate Automation is assigned to one of these tasks. This means that by default 4 Automations can process messages at the same time. If all tasks are processing then new messages will wait in a queue. Messages for each Automation are processed by their assigned task one at a time in the order that messages are received.
The higher this number, the more Automations can execute messages at the same time (at the expense of additional memory). See Also: Performance Tips - Concurrent Automation Processing.
Global Constants
You can create any number of Global Constants. These are %variables% that you can use on any Automation within any Solution.
You can specify any number of Constant Name and Constant Value pairs.
For example: If you create a global constant with name 'VatNumber' and value 'GB12345678'. If you use %VatNumber% on any Action property on any Automation, the value 'GB12345678' will be replaced when messages are processed.
Clients
This tab allows you to configure the port numbers and whitelist that the ThinkAutomation Server uses for client communication. Under normal circumstances you should not need to change the port numbers.
The Client Websocket Port is the port used by the ThinkAutomation Studio, ThinkAutomation Desktop Connector and Message Reader, Message Processor services to communicate with the ThinkAutomation Server. The default port is 9110.
The HTTPS/HTTP ports are the ports used by the local HTTP API. The default ports are 9899 (HTTP) and 9898 (HTTPS).
HTTPS Certificate
By default the HTTPS interface uses a self-signed SSL certificate. You can assign a trusted certificate if required.
Whitelist
The Whitelist IP Addresses entry should contain a list of IP addresses that the ThinkAutomation Server accepts incoming connections from. Separate multiple IP's using semi-colons. You can use wildcards (eg: 192.168.*). You can use the wildcard *.*.*.* to allow connections from anywhere.
Note: If you are using the Web API you do not need to whitelist public IP addresses. This is because your ThinkAutomation Server makes an outbound connection to the API Gateway Server. Your ThinkAutomation Server does not need to be exposed to the Internet itself.
If you want to use the ThinkAutomation Studio or Desktop Connector on remote computers, then the remote computer IP addresses must be added to the whitelist.
AI
The AI tab is used to define default settings for the AI provider types supported by ThinkAutomation.
From the Configure AI Type list, select the AI provider type (OpenAI ChatGPT, OptimaGPT or xAI Grok).
OpenAI ChatGPT
Specify your OpenAI API Key for use with the Ask AI action.
In the Available Models grid you can define the ChatGPT models and the Max Tokens that each model supports. When you use the Ask AI action you can select a model to use.
From the Embeddings Model list, select the model to use when generating Embeddings. You can also specify the Embeddings Dimensions. In most cases you will not need to change these values.
Parker Software OptimaGPT Server
OptimaGPT is Parker Software's on-premises or private-cloud hosted AI server. This enables you to use the Ask AI actions without sending private data to OpenAI. OptimaGPT must be installed and setup on a separate computer. Once configured, enable the OptimaGPT Enabled option and specify the OptimaGPT Local Server Address and OptimaGPT API Key.
xAI Grok
Specify your xAI Grok API Key and the available Model Names and Max Tokens for each model. You can select a model to use in the Ask AI action.
Default AI Type
From the Default AI Type list, select the default AI type. This will be used when generating embeddings for the knowledge store articles used to add context to AI requests.
Microsoft Logins
By default any login that ThinkAutomation makes to Microsoft Graph/Office 365 uses a multi-tenant app registration created by Parker Software. This provides ThinkAutomation users with a secure login without any additional configuration (Note: This does NOT give access to your data to any other organization, including Parker Software, it simply provides an authentication method for users to access their own data).
You can override this with your own App Registration. Using your own App Registration will allow longer periods between re-authentication.
You must create an App Registration in Azure before you can change these settings:
- Open your Azure Portal.
- Search for and select 'App Registrations'.
- Click '+ New registration'.
- Give it a name and select the account type (single, multi-tenant).
- In the 'Redirect URI' you must add Platform: Web with
http://localhost:3017
- Click Register
Now select the new App Registration. Click the link against Client credentials to create a Secret Key.
IMPORTANT: Make a note of the new Secret Key Value (not Secret Id) before closing as you can only view this once. Secret keys can have a validity value of up to 2 years.
In ThinkAutomation enter your Client Id, Client Secret Value and optionally Tenant ID.
Any Office 365 logins will now use your own Client ID, Client Secret and Tenant ID instead of the default.
You can also provide your own App Registration details on a per-solution basis.
Use App Only Access
Enable this option to login using client credentials. You create the client-credentials in Azure. ThinkAutomation then authenticates using this - rather than asking for a user login.
To set up app-only access, follow the instructions above to create an App Registration.
You must now configure the permissions:
- Under the application's API permissions page, choose Add a permission.
- Select Microsoft Graph.
- Select Application permissions.
- In the Select Permissions dialog, choose the permissions required for ThinkAutomation. As a minimum you will need: User.ReadAll, Mail.ReadWrite.
- You must then click the Grant admin consent button. This allows the selected permissions to be used.
See: Get access without a user - Microsoft Graph for more information.
When App-Only access is used, whenever you connect to Office 365 in ThinkAutomation you will be asked for the username to use (for example, the user to read emails for). However a login form will not be shown.
Note: Any existing Office 365 logins will need to be signed in again if you change these settings.
SMTP Server API
The ThinkAutomation Server can operate as a mail server to receive emails directly for processing. By default the SMTP Server is disabled.
You can create Message Sources to process emails received via the built-in mail server.
The Host Name Or IP Address entry should be set to the IP address/name that the SMTP server should listen on. By default this is 'localhost' and should not need to be changed. If your computer has multiple network interfaces you can force the SMTP Server to listen on a specific IP address.
The Listen On Port entry defines the port number. This defaults to 587. Ensure this port is open on your firewall if you want to receive inbound SMTP from other computers.
You can require incoming SMTP connections to authenticate with a Login Username and Password. This is optional.
Any email client or script can then be used to send email directly to ThinkAutomation for processing. The first Message Source with a matching SMTP Incoming Email 'To' address will receive the email.
You can test using PowerShell. For example:
Send-MailMessage -From test@test.com -To messagesource1@localhost -Subject Test -Body Test -SmtpServer 127.0.0.1 -Port 587
or using C# code, for example:
var smtpClient = new SmtpClient("127.0.0.1")
{
Port = 587
};
smtpClient.Send("email", "recipient", "subject", "body");
The ThinkAutomation SMTP Server supports the following ESMTP extensions: STARTTLS, SIZE, PIPELINING, 8BITMIME, AUTH PLAIN LOGIN
The SMTP Server will only accept incoming SMTP connections from IP addresses in the Whitelist. The Whitelist is configured on the Clients tab.
The ThinkAutomation SMTP Server is used to receive email for processing. It cannot be used to send outgoing emails (it does not act as a 'mail relay') and therefore cannot be used by malware to send spam.
Web API
ThinkAutomation allows messages to be sent for processing via the Web API. The Web API provides a secure public endpoint allowing messages to be posted to ThinkAutomation from Web Forms and your own or 3rd party solutions. The ThinkAutomation Server connects to the Web API Gateway server when it starts. Each of your Message Sources configured in ThinkAutomation will have a unique URL which you can post messages to.
You can disable the Web API for your ThinkAutomation Server if required. If the Web API is disabled you will not be able to use: Web Form Message Sources, Microsoft Teams Message Sources, Wait For User Response & Twilio Actions.
See: Using The Web API for more information.
Use Own Gateway Instance
By default, ThinkAutomation connects to 'api.thinkautomation.com', which is a shared API Gateway Server hosted by Parker Software. This works out-of-the-box and requires no setup but provides a restricted number of messages per day (5000 for the Pro edition, 1000 for Standard).
With the ThinkAutomation Professional Edition, you can also host your own instance of the ThinkAutomation API Gateway Server which would have no restrictions. For this you will need a Windows Server with a public IP address (or a virtual machine hosted in Microsoft Azure or any other cloud based provider) with its own DNS name and trusted SSL certificate. See: Configuring Self Hosted API Gateway Server.
Once setup you would then enable the Use Own Gateway Instance option and enter your public DNS name in the Gateway Address option.
Parker Software can assist in setting up your own API Gateway Server. Contact us for details.
Users
This tab allows you to configure users of the ThinkAutomation Studio and ThinkAutomation Desktop Connector. A default system administrator user will have been created during the setup. You can create additional users and set various rights for each user. You must have one user that is the System Administrator.
Resetting A Password
You can request a password reset for any user. Edit the user and enable the Requires Password Reset option and save the user. When the user next logs in using the ThinkAutomation Studio or Client they will be asked to change their password.
When you create a new user the Requires Password Reset option is automatically enabled. The new user must change their password after their first login.
The System Administrator user's password is also used to encrypt the Metadata database (held in the Metadata.db file). This contains all your Solutions, Message Source & Automation settings. If you reset the System Administrator user's password then the metadata database will be rebuilt using the new password.
Limited Access Users
If the Can Create/Edit Message Sources & Automations user right is disabled, the user will not be able to add or edit Message Sources or Automations using the Studio. The user can send new messages for processing.
If all User Rights are disabled for a user then the ThinkAutomation Studio can only be used to send messages to an Automation for processing and to view the results. No other options will be available for the user.
Limiting Access To Solutions
For non-administrator users you can restrict access to specific Solutions. When the user connects using the Studio or Client they will only see the Solutions they have been granted access to. Click the Solutions tab. Uncheck the Has Access To All Solutions option and enable/disable the Solutions that the user has access to.
Revision Saving
ThinkAutomation can save changes made to your Automations allowing you to Revert to a previous version.
Enable the Store Automation Revisions option to enable (it is enabled by default). The Store Max Revisions setting defines the number of previous versions that are stored.
Logging
Set the default Logging level for Automations. The logging level controls the amount of detail recorded in the Automation log for each processed message.
The default logging level can be overridden using the Set Logging Level action inside individual Automations.
During Automation development you can set the level to 'Default' or 'Detailed'. Once your Automation is complete and working as intended it is recommended to set the logging level to 'Minimal'. This will improve performance and reduce the Message Store database size.
Any Comment actions that have the Show In Log option enabled will always be logged, regardless of the logging level.
Default CSS
For outgoing emails sent using the Send Email action you can use Markdown for the message text. Any Markdown will be automatically converted to HTML when the email is sent. A basic CSS stylesheet will be used for this conversion. You can edit the CSS using this tab. The Default CSS is also used with the Wrap HTML action when the Default style is selected.
Proxy
Use this tab to specify your Proxy Server details if your ThinkAutomation computer uses a proxy server to connect to the Internet. Automation actions that make outbound connections will then attempt to use the proxy server properties specified.
Package Manager
Script Actions and Custom Action Scripts can include NuGet packages. You can configure the NuGet Package Sources. This is a list of URL's (one per line). The default package source is https://api.nuget.org/v3/index.json - which is the Microsoft NuGet package repository (see: https://www.nuget.org). If you have your own package repository you can replace the default or add it to the list.
Twilio Integration
If you use any of the Twilio actions (Twilio Make A Telephone Call, Twilio Send SMS Message etc.) then you must Enable Twilio Integration and enter your Twilio Account SID and Auth Token. These can be found in your Twilio Account Settings.
Enter the Default Twilio Caller Id. This is the default Twilio phone number that you have created in your Twilio account. This will be used as the sender 'from' number for the Twilio SMS Send SMS Message/Twilio Make A Telephone Call actions, if no specific From number is specified on these actions.
Customer Participation
Send Usage Data
The ThinkAutomation Server will periodically (once per week) send usage information to Parker Software. This helps us to improve the product based on customer usage. Only the action Type Names that you are using across all your Automations are sent. No personal information or configuration settings are sent.
Automatically Check For Updates
If this option is enabled ThinkAutomation will automatically check for new updates once per week. A message will be shown in the ThinkAutomation Studio if an update is available. If the automatic check is disabled you can still manually check for updates using the Studio - File - Check For Updates option.
Include Pre-Release Updates
If this option is enabled then pre-release updates will be included in the Check For Updates. Pre-releases will include the latest fixes and changes which are ready to release unless significant bugs emerge. Pre-releases are intended for test servers, not production servers, unless Parker Software support requests you to update to a pre-release for a specific reason.