Integrating with Sofy via Webhooks

Updated by Aishwarya Rai


Webhooks allows you to enable real-time notifications from Sofy to your CICD systems. They also reduce the need for frequent polling, saving on system resources and costs.

The below steps will help you configure Webhooks so that Sofy can communicate with your CI/CD systems or other endpoints.

Note: You must have admin access to both your Sofy account and your CICD system where the webhook will send data. You will receive data related to all your schedule runs via your webhook.

Steps to integrate with Sofy via Webhooks

  1. Setup your endpoint
    Before you can receive data from Sofy, you need to set up an endpoint in your system that can accept HTTP POST requests. This endpoint will process the data sent by Sofy.
  2. Enable a webhook in Sofy
    Contact Sofy’s CSM team to enable a new webhook in Sofy. You will need to provide:
    1. Endpoint URL: The URL Sofy will post data to
    2. API Access Token: A token that Sofy will send with each request for validation
  3. Sofy Configuration
    Once we receive your request, our team will configure the webhook and we will notify you once your setup is complete.
  4. Test the Webhook
    After the webhook is configured:
    1. We will send test payloads to your endpoint. Verify that the endpoint receives these correctly.
    2. Perform any additional tests to confirm the integration works within your environment
  5. Go Live
    Upon successful testing and your confirmation, the webhook integration will be considered active. All events related to your schedule runs will now trigger notifications to your endpoint whenever they occur.
  6. Troubleshooting and Support
    1. If you encounter issues, review the logs at your endpoint and check for any errors in the data format or delivery failures.
    2. For unresolved integration issues, please contact our CSM Team.
Sample Payload

Here’s a sample JSON payload that Sofy might send to your endpoint:

{"event": "test_completion","timestamp": "2024-04-15T12:34:56Z","data": {"test_id": "123456","status": "passed","details": "Test completed successfully with no errors." } }

How did we do?