Slack Integration with Automation
Last Modified:
By integrating Automation with Slack, you can use a dedicated Slack channel to automatically notify internal team members about important test results in real-time. You can also define the type of test results you want to share. To create a Slack integration with Automation, you will need Slack admin rights for your Slack workspace.
Post Messages on Slack via Automation
Step 1: Create a Webhook.
- Create a new Slack app in the workspace where you want to post messages by selecting Add an app.
- From the Features page, toggle and activate Incoming Webhooks.
- Click Add New Webhook to Workspace.
- Pick a channel for the app to post to, then click Authorize.
- Use the Incoming Webhook URL to post a message to Slack.
Please see the screenshots below.
Above: Adding an app in the workspace.
Above: Activating Incoming Webhooks.
When Incoming Webhooks are added from the app directory, you can see a Webhook URL generated for your channel.
Above: View of the generated Webhook URL.
Step 2: Add a new web service connection in Automation.
Create your test script with the connection details given below.
Above: Adding a new web service connection.
Step 3: Create a Test Script.
Create a test script. Drag the Web Request API from the Test Palette and drop it to your test script. Enter everything after the Slack API in the webhook URL to the Resource URL section.
Enter the text that you want to post in the body section in the given below format.
Above: Creating a test script.
Now, execute your test script. By default, the username with which your messages will be incoming and the channel name to which the messages are posted are set in the Incoming Webhooks configuration, but you can update the details in the JSON payload as well.
Upload file to a Slack Channel
Slack has deprecated the files.upload API method, with plans to retire it on March 11, 2025. The recommended approach now involves a two-step process using files.getUploadURLExternal and files.completeUploadExternal for file uploads.
Updated Steps to Upload a File to a Slack Channel:
1. Generate an Authentication Token:
- Create a new Slack app and install it in your workspace to obtain the necessary tokens.
- Generate an authentication token by Creating a new Slack app and installing it in your workspace. Your tokens are displayed after installation is completed.
2. Add a New Web Service Connection in Provar:
3. Create a Test Script in Provar:
In your test script, implement the following steps:
-
Send a request to files.getUploadURLExternal to receive a unique URL for uploading your file.
-
Test steps parameters for getUploadURLExternal web request
-
Resource URL: /files.getUploadURLExternal
-
Request headers: Authorization:Bearer Slack OAuth Tokens
-
Method: POST
-
Body Style: Other Body
-
Body: The body contains channels ID, file name and file size in byte separated
by & ( Example:- channels=C0801HYJTSQ&filename=template 1.xml&length=25 )
-
-
Content Type: Application Url Encoded (application/x-www-form-urlencoded)
In the RestResponse we have a file_id and upload_url
4. Upload the File:
- Use the obtained(upload_url) URL to upload your file directly to Slack’s storage.
- Use the Split API to split the URL
- Use the first Token as a base URL to Configure a new web service connection within Provar.
-
Drag the Web Request(REST) API from the Test Palette
-
Test steps parameters to upload your file directly to Slack’s storage(upload_url)
5. Complete the Upload Process:
- Drag the Web Request to files.completeUploadExternal to finalize the upload and, if desired, share the file in a specific channel.
- Test steps parameters for completeUploadExternal Web Request
- Resource URL: /files.completeUploadExternal
- Request headers: Authorization:Bearer Slack OAuth Tokens
- Method: POST()
- Body Style: JSON Body
- Body: \{
“channel_id”: “Your channel id’s “,
“file”: “{RestResponse.upload_url}”,
“files”: [
\{
“id”: “{RestResponse.file_id}”,
“title”: “My Uploaded File”
}
]
}Note: if you want to send a file to multiple channels add all channels in an array [“C0801HYJTSQ”, “C1234XYZ789”,“C5678ABC456”]
For more information, check out this course on University of Provar.
- Provar Automation
- System Requirements
- Browser and Driver Recommendations
- Installing Provar Automation
- Updating Provar Automation
- Licensing Provar
- Granting Org Permissions to Provar Automation
- Optimizing Org and Connection Metadata Processing in Provar
- Using Provar Automation
- Understanding Provar’s Use of AI Service for Test Automation
- Provar Automation
- Creating a New Test Project
- Import Test Project from a File
- Import Test Project from a Remote Repository
- Import Test Project from Local Repository
- Commit a Local Test Project to Source Control
- API Testing
- Behavior-Driven Development
- Consolidating Multiple Test Execution Reports
- Creating Test Cases
- Custom Table Mapping
- Functions
- Debugging Tests
- Defining a Namespace Prefix on a Connection
- Defining Proxy Settings
- Environment Management
- Exporting Test Cases into a PDF
- Exporting Test Projects
- Japanese Language Support
- Override Auto-Retry for Test Step
- Customize Browser Driver Location
- Mapping and Executing the Lightning Article Editor in Provar
- Managing Test Steps
- Namespace Org Testing
- NitroX
- Provar Test Builder
- ProvarDX
- Refresh and Recompile
- Reintroduction of CLI License Check
- Reload Org Cache
- Reporting
- Running Tests
- Searching Provar with Find Usages
- Secrets Management and Encryption
- Setup and Teardown Test Cases
- Tags and Service Level Agreements (SLAs)
- Test Cycles
- Test Data Generation
- Test Plans
- Testing Browser – Chrome Headless
- Testing Browser Options
- Tooltip Testing
- Using the Test Palette
- Using Custom APIs
- Callable Tests
- Data-Driven Testing
- Page Objects
- Block Locator Strategies
- Introduction to XPaths
- Creating an XPath
- JavaScript Locator Support
- Label Locator Strategies
- Maintaining Page Objects
- Mapping Non-Salesforce fields
- Page Object Operations
- ProvarX™
- Refresh and Reselect Field Locators in Test Builder
- Using Java Method Annotations for Custom Objects
- Applications Testing
- Provar Manager
- How to Use Provar Manager
- Provar Manager Setup
- Provar Manager Integrations
- Release Management
- Test Management
- Test Operations
- Provar Manager and Provar Automation
- Setting Up a Connection to Provar Manager
- Object Mapping Between Automation and Manager
- How to Upload Test Plans, Test Plan Folders, Test Plan Instances, and Test Cases
- Provar Manager Filters
- Uploading Callable Test Cases in Provar Manager
- Uploading Test Steps in Provar Manager
- How to Know if a File in Automation is Linked in Test Manager
- Test Execution Reporting
- Metadata Coverage with Manager
- Provar Grid
- DevOps
- Introduction to Provar DevOps
- Introduction to Test Scheduling
- Apache Ant
- Configuration for Sending Emails via the Automation Command Line Interface
- Continuous Integration
- AutoRABIT Salesforce DevOps in Provar Test
- Azure DevOps
- Running a Provar CI Task in Azure DevOps Pipelines
- Configuring the Automation secrets password in Microsoft Azure Pipelines
- Parallel Execution in Microsoft Azure Pipelines using Multiple build.xml Files
- Parallel Execution in Microsoft Azure Pipelines using Targets
- Parallel execution in Microsoft Azure Pipelines using Test Plans
- Bitbucket Pipelines
- CircleCI
- Copado
- Docker
- Flosum
- Gearset
- GitHub Actions
- Integrating GitHub Actions CI to Run Automation CI Task
- Remote Trigger in GitHub Actions
- Parameterization using Environment Variables in GitHub Actions
- Parallel Execution in GitHub Actions using Multiple build.xml Files
- Parallel Execution in GitHub Actions using Targets
- Parallel Execution in GitHub Actions using Test Plan
- Parallel Execution in GitHub Actions using Job Matrix
- GitLab Continuous Integration
- Travis CI
- Jenkins
- Execution Environment Security Configuration
- Provar Jenkins Plugin
- Parallel Execution
- Running Provar on Linux
- Reporting
- Salesforce DX
- Git
- Version Control
- Salesforce Testing
- Recommended Practices
- Salesforce Connection Best Practices
- Improve Your Metadata Performance
- Java 21 Upgrade
- Testing Best Practices
- Automation Planning
- Supported Testing Phases
- Provar Naming Standards
- Test Case Design
- Create records via API
- Avoid using static values
- Abort Unused Test Sessions/Runs
- Avoid Metadata performance issues
- Increase auto-retry waits for steps using a global variable
- Create different page objects for different pages
- The Best Ways to Change Callable Test Case Locations
- Working with the .testProject file and .secrets file
- Best practices for the .provarCaches folder
- Best practices for .pageObject files
- Troubleshooting
- How to Use Keytool Command for Importing Certificates
- Installing Provar After Upgrading to macOS Catalina
- Browsers
- Configurations and Permissions
- Connections
- DevOps
- Error Messages
- Provar Manager 3.0 Install Error Resolution
- Provar Manager Test Case Upload Resolution
- Administrator has Blocked Access to Client
- JavascriptException: Javascript Error
- macOS Big Sur Upgrade
- Resolving Failed to Create ChromeDriver Error
- Resolving Jenkins License Missing Error
- Resolving Metadata Timeout Errors
- Test Execution Fails – Firefox Not Installed
- Selenium 4 Upgrade
- Licensing, Installation and Firewalls
- Memory
- Test Builder and Test Cases
- Release Notes
- Provar AI Assistant Popup Test