Update Webhook Config
curl --request POST \
--url https://api.velt.dev/v2/workspace/webhookconfig/update \
--header 'Content-Type: application/json' \
--header 'x-velt-api-key: <x-velt-api-key>' \
--header 'x-velt-auth-token: <x-velt-auth-token>' \
--data '
{
"data": {
"useWebhookService": true,
"webhookServiceConfig": {
"authToken": "<string>",
"rawNotificationUrl": "<string>",
"processedNotificationUrl": "<string>",
"encodeData": true,
"encryptData": true,
"publicKey": "<string>",
"triggers": {
"comment_annotation.add": true,
"comment.add": true,
"comment.update": true,
"comment.delete": true,
"comment_annotation.status_change": true,
"comment_annotation.assign": true,
"comment_annotation.priority_change": true,
"comment.reaction_add": true,
"comment.reaction_delete": true
}
}
}
}
'import requests
url = "https://api.velt.dev/v2/workspace/webhookconfig/update"
payload = { "data": {
"useWebhookService": True,
"webhookServiceConfig": {
"authToken": "<string>",
"rawNotificationUrl": "<string>",
"processedNotificationUrl": "<string>",
"encodeData": True,
"encryptData": True,
"publicKey": "<string>",
"triggers": {
"comment_annotation.add": True,
"comment.add": True,
"comment.update": True,
"comment.delete": True,
"comment_annotation.status_change": True,
"comment_annotation.assign": True,
"comment_annotation.priority_change": True,
"comment.reaction_add": True,
"comment.reaction_delete": True
}
}
} }
headers = {
"x-velt-api-key": "<x-velt-api-key>",
"x-velt-auth-token": "<x-velt-auth-token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-velt-api-key': '<x-velt-api-key>',
'x-velt-auth-token': '<x-velt-auth-token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
data: {
useWebhookService: true,
webhookServiceConfig: {
authToken: '<string>',
rawNotificationUrl: '<string>',
processedNotificationUrl: '<string>',
encodeData: true,
encryptData: true,
publicKey: '<string>',
triggers: {
'comment_annotation.add': true,
'comment.add': true,
'comment.update': true,
'comment.delete': true,
'comment_annotation.status_change': true,
'comment_annotation.assign': true,
'comment_annotation.priority_change': true,
'comment.reaction_add': true,
'comment.reaction_delete': true
}
}
}
})
};
fetch('https://api.velt.dev/v2/workspace/webhookconfig/update', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.velt.dev/v2/workspace/webhookconfig/update",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'data' => [
'useWebhookService' => true,
'webhookServiceConfig' => [
'authToken' => '<string>',
'rawNotificationUrl' => '<string>',
'processedNotificationUrl' => '<string>',
'encodeData' => true,
'encryptData' => true,
'publicKey' => '<string>',
'triggers' => [
'comment_annotation.add' => true,
'comment.add' => true,
'comment.update' => true,
'comment.delete' => true,
'comment_annotation.status_change' => true,
'comment_annotation.assign' => true,
'comment_annotation.priority_change' => true,
'comment.reaction_add' => true,
'comment.reaction_delete' => true
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-velt-api-key: <x-velt-api-key>",
"x-velt-auth-token: <x-velt-auth-token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.velt.dev/v2/workspace/webhookconfig/update"
payload := strings.NewReader("{\n \"data\": {\n \"useWebhookService\": true,\n \"webhookServiceConfig\": {\n \"authToken\": \"<string>\",\n \"rawNotificationUrl\": \"<string>\",\n \"processedNotificationUrl\": \"<string>\",\n \"encodeData\": true,\n \"encryptData\": true,\n \"publicKey\": \"<string>\",\n \"triggers\": {\n \"comment_annotation.add\": true,\n \"comment.add\": true,\n \"comment.update\": true,\n \"comment.delete\": true,\n \"comment_annotation.status_change\": true,\n \"comment_annotation.assign\": true,\n \"comment_annotation.priority_change\": true,\n \"comment.reaction_add\": true,\n \"comment.reaction_delete\": true\n }\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-velt-api-key", "<x-velt-api-key>")
req.Header.Add("x-velt-auth-token", "<x-velt-auth-token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.velt.dev/v2/workspace/webhookconfig/update")
.header("x-velt-api-key", "<x-velt-api-key>")
.header("x-velt-auth-token", "<x-velt-auth-token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"useWebhookService\": true,\n \"webhookServiceConfig\": {\n \"authToken\": \"<string>\",\n \"rawNotificationUrl\": \"<string>\",\n \"processedNotificationUrl\": \"<string>\",\n \"encodeData\": true,\n \"encryptData\": true,\n \"publicKey\": \"<string>\",\n \"triggers\": {\n \"comment_annotation.add\": true,\n \"comment.add\": true,\n \"comment.update\": true,\n \"comment.delete\": true,\n \"comment_annotation.status_change\": true,\n \"comment_annotation.assign\": true,\n \"comment_annotation.priority_change\": true,\n \"comment.reaction_add\": true,\n \"comment.reaction_delete\": true\n }\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.velt.dev/v2/workspace/webhookconfig/update")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-velt-api-key"] = '<x-velt-api-key>'
request["x-velt-auth-token"] = '<x-velt-auth-token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": {\n \"useWebhookService\": true,\n \"webhookServiceConfig\": {\n \"authToken\": \"<string>\",\n \"rawNotificationUrl\": \"<string>\",\n \"processedNotificationUrl\": \"<string>\",\n \"encodeData\": true,\n \"encryptData\": true,\n \"publicKey\": \"<string>\",\n \"triggers\": {\n \"comment_annotation.add\": true,\n \"comment.add\": true,\n \"comment.update\": true,\n \"comment.delete\": true,\n \"comment_annotation.status_change\": true,\n \"comment_annotation.assign\": true,\n \"comment_annotation.priority_change\": true,\n \"comment.reaction_add\": true,\n \"comment.reaction_delete\": true\n }\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"result": {
"status": "success",
"message": "Webhook configuration updated successfully.",
"data": null
}
}
Webhooks Configuration
Update Webhook Config
POST
/
v2
/
workspace
/
webhookconfig
/
update
Update Webhook Config
curl --request POST \
--url https://api.velt.dev/v2/workspace/webhookconfig/update \
--header 'Content-Type: application/json' \
--header 'x-velt-api-key: <x-velt-api-key>' \
--header 'x-velt-auth-token: <x-velt-auth-token>' \
--data '
{
"data": {
"useWebhookService": true,
"webhookServiceConfig": {
"authToken": "<string>",
"rawNotificationUrl": "<string>",
"processedNotificationUrl": "<string>",
"encodeData": true,
"encryptData": true,
"publicKey": "<string>",
"triggers": {
"comment_annotation.add": true,
"comment.add": true,
"comment.update": true,
"comment.delete": true,
"comment_annotation.status_change": true,
"comment_annotation.assign": true,
"comment_annotation.priority_change": true,
"comment.reaction_add": true,
"comment.reaction_delete": true
}
}
}
}
'import requests
url = "https://api.velt.dev/v2/workspace/webhookconfig/update"
payload = { "data": {
"useWebhookService": True,
"webhookServiceConfig": {
"authToken": "<string>",
"rawNotificationUrl": "<string>",
"processedNotificationUrl": "<string>",
"encodeData": True,
"encryptData": True,
"publicKey": "<string>",
"triggers": {
"comment_annotation.add": True,
"comment.add": True,
"comment.update": True,
"comment.delete": True,
"comment_annotation.status_change": True,
"comment_annotation.assign": True,
"comment_annotation.priority_change": True,
"comment.reaction_add": True,
"comment.reaction_delete": True
}
}
} }
headers = {
"x-velt-api-key": "<x-velt-api-key>",
"x-velt-auth-token": "<x-velt-auth-token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-velt-api-key': '<x-velt-api-key>',
'x-velt-auth-token': '<x-velt-auth-token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
data: {
useWebhookService: true,
webhookServiceConfig: {
authToken: '<string>',
rawNotificationUrl: '<string>',
processedNotificationUrl: '<string>',
encodeData: true,
encryptData: true,
publicKey: '<string>',
triggers: {
'comment_annotation.add': true,
'comment.add': true,
'comment.update': true,
'comment.delete': true,
'comment_annotation.status_change': true,
'comment_annotation.assign': true,
'comment_annotation.priority_change': true,
'comment.reaction_add': true,
'comment.reaction_delete': true
}
}
}
})
};
fetch('https://api.velt.dev/v2/workspace/webhookconfig/update', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.velt.dev/v2/workspace/webhookconfig/update",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'data' => [
'useWebhookService' => true,
'webhookServiceConfig' => [
'authToken' => '<string>',
'rawNotificationUrl' => '<string>',
'processedNotificationUrl' => '<string>',
'encodeData' => true,
'encryptData' => true,
'publicKey' => '<string>',
'triggers' => [
'comment_annotation.add' => true,
'comment.add' => true,
'comment.update' => true,
'comment.delete' => true,
'comment_annotation.status_change' => true,
'comment_annotation.assign' => true,
'comment_annotation.priority_change' => true,
'comment.reaction_add' => true,
'comment.reaction_delete' => true
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-velt-api-key: <x-velt-api-key>",
"x-velt-auth-token: <x-velt-auth-token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.velt.dev/v2/workspace/webhookconfig/update"
payload := strings.NewReader("{\n \"data\": {\n \"useWebhookService\": true,\n \"webhookServiceConfig\": {\n \"authToken\": \"<string>\",\n \"rawNotificationUrl\": \"<string>\",\n \"processedNotificationUrl\": \"<string>\",\n \"encodeData\": true,\n \"encryptData\": true,\n \"publicKey\": \"<string>\",\n \"triggers\": {\n \"comment_annotation.add\": true,\n \"comment.add\": true,\n \"comment.update\": true,\n \"comment.delete\": true,\n \"comment_annotation.status_change\": true,\n \"comment_annotation.assign\": true,\n \"comment_annotation.priority_change\": true,\n \"comment.reaction_add\": true,\n \"comment.reaction_delete\": true\n }\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-velt-api-key", "<x-velt-api-key>")
req.Header.Add("x-velt-auth-token", "<x-velt-auth-token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.velt.dev/v2/workspace/webhookconfig/update")
.header("x-velt-api-key", "<x-velt-api-key>")
.header("x-velt-auth-token", "<x-velt-auth-token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"useWebhookService\": true,\n \"webhookServiceConfig\": {\n \"authToken\": \"<string>\",\n \"rawNotificationUrl\": \"<string>\",\n \"processedNotificationUrl\": \"<string>\",\n \"encodeData\": true,\n \"encryptData\": true,\n \"publicKey\": \"<string>\",\n \"triggers\": {\n \"comment_annotation.add\": true,\n \"comment.add\": true,\n \"comment.update\": true,\n \"comment.delete\": true,\n \"comment_annotation.status_change\": true,\n \"comment_annotation.assign\": true,\n \"comment_annotation.priority_change\": true,\n \"comment.reaction_add\": true,\n \"comment.reaction_delete\": true\n }\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.velt.dev/v2/workspace/webhookconfig/update")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-velt-api-key"] = '<x-velt-api-key>'
request["x-velt-auth-token"] = '<x-velt-auth-token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": {\n \"useWebhookService\": true,\n \"webhookServiceConfig\": {\n \"authToken\": \"<string>\",\n \"rawNotificationUrl\": \"<string>\",\n \"processedNotificationUrl\": \"<string>\",\n \"encodeData\": true,\n \"encryptData\": true,\n \"publicKey\": \"<string>\",\n \"triggers\": {\n \"comment_annotation.add\": true,\n \"comment.add\": true,\n \"comment.update\": true,\n \"comment.delete\": true,\n \"comment_annotation.status_change\": true,\n \"comment_annotation.assign\": true,\n \"comment_annotation.priority_change\": true,\n \"comment.reaction_add\": true,\n \"comment.reaction_delete\": true\n }\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"result": {
"status": "success",
"message": "Webhook configuration updated successfully.",
"data": null
}
}
Use this API to update the webhook service configuration for a workspace. At least one of
useWebhookService or webhookServiceConfig must be provided.
This endpoint uses API-key-level auth: pass
x-velt-api-key and x-velt-auth-token as headers. You can obtain these from the Get Auth Tokens endpoint.Endpoint
POST https://api.velt.dev/v2/workspace/webhookconfig/update
Headers
string
required
Your API key.
string
required
Your Auth Token.
Body
Params
object
required
Show properties
Show properties
boolean
Whether to enable the webhook service.
object
Webhook service configuration object.
Show properties
Show properties
string
Auth token sent with each webhook request for verification.
string
URL to receive raw (unprocessed) webhook notifications.
string
URL to receive processed webhook notifications.
boolean
Whether to base64 encode the webhook payload.
boolean
Whether to encrypt the webhook payload.
string
Public key used for payload encryption.
object
Event triggers that activate webhook notifications. Each key is an event type string and the value is a boolean to enable (
true) or disable (false) that trigger. See Webhooks for the full list of event types. Common keys include:Show properties
Show properties
boolean
Trigger when a new comment thread is created.
boolean
Trigger when a new comment is added to a thread.
boolean
Trigger when a comment is updated.
boolean
Trigger when a comment is deleted.
boolean
Trigger when a thread’s status changes (e.g., resolved).
boolean
Trigger when a thread is assigned to a user.
boolean
Trigger when a thread’s priority changes.
boolean
Trigger when a reaction is added to a comment.
boolean
Trigger when a reaction is removed from a comment.
Example Request
{
"data": {
"useWebhookService": true,
"webhookServiceConfig": {
"authToken": "webhook_auth_token_here",
"rawNotificationUrl": "https://example.com/webhooks/raw",
"processedNotificationUrl": "https://example.com/webhooks/processed"
}
}
}
Example Response
Success Response
{
"result": {
"status": "success",
"message": "Webhook configuration updated successfully.",
"data": null
}
}
Failure Response
{
"error": {
"status": "INVALID_ARGUMENT",
"message": "Invalid webhook service configuration."
}
}
{
"result": {
"status": "success",
"message": "Webhook configuration updated successfully.",
"data": null
}
}
Was this page helpful?

