Documentation

Looking for something in particular?

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.

  1. Create a new Slack app in the workspace where you want to post messages by selecting Add an app.
  2. From the Features page, toggle and activate Incoming Webhooks.
  3. Click Add New Webhook to Workspace.
  4. Pick a channel for the app to post to, then click Authorize.
  5. 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.

Slack API

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:

  • Configure a new web service connection within Provar to facilitate communication with Slack’s API.

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)

    • Resource URL: upload{Token[2]}

    • Method: POST()

    • Body Style: Multipart

    • Add the Parts details as shown below in the screenshots

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.


Feedback

Was this article helpful for you?
Documentation library

Trying to raise a case with our support team?

We use cookies to better understand how our website is used so we can tailor content for you. For more information about the different cookies we use please take a look at our Privacy Policy.

Scroll to Top