Update Email Config
curl --request POST \
--url https://api.velt.dev/v2/workspace/emailconfig/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": {
"useEmailService": true,
"emailServiceConfig": {
"type": "<string>",
"apiKey": "<string>",
"fromEmail": "<string>",
"fromCompany": "<string>",
"triggers": {
"comment_annotation.add": true,
"comment.add": true,
"comment_annotation.status_change": true,
"comment_annotation.assign": true,
"comment_annotation.priority_change": true
}
}
}
}
'import requests
url = "https://api.velt.dev/v2/workspace/emailconfig/update"
payload = { "data": {
"useEmailService": True,
"emailServiceConfig": {
"type": "<string>",
"apiKey": "<string>",
"fromEmail": "<string>",
"fromCompany": "<string>",
"triggers": {
"comment_annotation.add": True,
"comment.add": True,
"comment_annotation.status_change": True,
"comment_annotation.assign": True,
"comment_annotation.priority_change": 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: {
useEmailService: true,
emailServiceConfig: {
type: '<string>',
apiKey: '<string>',
fromEmail: '<string>',
fromCompany: '<string>',
triggers: {
'comment_annotation.add': true,
'comment.add': true,
'comment_annotation.status_change': true,
'comment_annotation.assign': true,
'comment_annotation.priority_change': true
}
}
}
})
};
fetch('https://api.velt.dev/v2/workspace/emailconfig/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/emailconfig/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' => [
'useEmailService' => true,
'emailServiceConfig' => [
'type' => '<string>',
'apiKey' => '<string>',
'fromEmail' => '<string>',
'fromCompany' => '<string>',
'triggers' => [
'comment_annotation.add' => true,
'comment.add' => true,
'comment_annotation.status_change' => true,
'comment_annotation.assign' => true,
'comment_annotation.priority_change' => 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/emailconfig/update"
payload := strings.NewReader("{\n \"data\": {\n \"useEmailService\": true,\n \"emailServiceConfig\": {\n \"type\": \"<string>\",\n \"apiKey\": \"<string>\",\n \"fromEmail\": \"<string>\",\n \"fromCompany\": \"<string>\",\n \"triggers\": {\n \"comment_annotation.add\": true,\n \"comment.add\": true,\n \"comment_annotation.status_change\": true,\n \"comment_annotation.assign\": true,\n \"comment_annotation.priority_change\": 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/emailconfig/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 \"useEmailService\": true,\n \"emailServiceConfig\": {\n \"type\": \"<string>\",\n \"apiKey\": \"<string>\",\n \"fromEmail\": \"<string>\",\n \"fromCompany\": \"<string>\",\n \"triggers\": {\n \"comment_annotation.add\": true,\n \"comment.add\": true,\n \"comment_annotation.status_change\": true,\n \"comment_annotation.assign\": true,\n \"comment_annotation.priority_change\": true\n }\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.velt.dev/v2/workspace/emailconfig/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 \"useEmailService\": true,\n \"emailServiceConfig\": {\n \"type\": \"<string>\",\n \"apiKey\": \"<string>\",\n \"fromEmail\": \"<string>\",\n \"fromCompany\": \"<string>\",\n \"triggers\": {\n \"comment_annotation.add\": true,\n \"comment.add\": true,\n \"comment_annotation.status_change\": true,\n \"comment_annotation.assign\": true,\n \"comment_annotation.priority_change\": true\n }\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"result": {
"status": "success",
"message": "Email configuration updated successfully.",
"data": null
}
}
Email Notifications Configuration
Update Email Config
POST
/
v2
/
workspace
/
emailconfig
/
update
Update Email Config
curl --request POST \
--url https://api.velt.dev/v2/workspace/emailconfig/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": {
"useEmailService": true,
"emailServiceConfig": {
"type": "<string>",
"apiKey": "<string>",
"fromEmail": "<string>",
"fromCompany": "<string>",
"triggers": {
"comment_annotation.add": true,
"comment.add": true,
"comment_annotation.status_change": true,
"comment_annotation.assign": true,
"comment_annotation.priority_change": true
}
}
}
}
'import requests
url = "https://api.velt.dev/v2/workspace/emailconfig/update"
payload = { "data": {
"useEmailService": True,
"emailServiceConfig": {
"type": "<string>",
"apiKey": "<string>",
"fromEmail": "<string>",
"fromCompany": "<string>",
"triggers": {
"comment_annotation.add": True,
"comment.add": True,
"comment_annotation.status_change": True,
"comment_annotation.assign": True,
"comment_annotation.priority_change": 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: {
useEmailService: true,
emailServiceConfig: {
type: '<string>',
apiKey: '<string>',
fromEmail: '<string>',
fromCompany: '<string>',
triggers: {
'comment_annotation.add': true,
'comment.add': true,
'comment_annotation.status_change': true,
'comment_annotation.assign': true,
'comment_annotation.priority_change': true
}
}
}
})
};
fetch('https://api.velt.dev/v2/workspace/emailconfig/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/emailconfig/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' => [
'useEmailService' => true,
'emailServiceConfig' => [
'type' => '<string>',
'apiKey' => '<string>',
'fromEmail' => '<string>',
'fromCompany' => '<string>',
'triggers' => [
'comment_annotation.add' => true,
'comment.add' => true,
'comment_annotation.status_change' => true,
'comment_annotation.assign' => true,
'comment_annotation.priority_change' => 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/emailconfig/update"
payload := strings.NewReader("{\n \"data\": {\n \"useEmailService\": true,\n \"emailServiceConfig\": {\n \"type\": \"<string>\",\n \"apiKey\": \"<string>\",\n \"fromEmail\": \"<string>\",\n \"fromCompany\": \"<string>\",\n \"triggers\": {\n \"comment_annotation.add\": true,\n \"comment.add\": true,\n \"comment_annotation.status_change\": true,\n \"comment_annotation.assign\": true,\n \"comment_annotation.priority_change\": 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/emailconfig/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 \"useEmailService\": true,\n \"emailServiceConfig\": {\n \"type\": \"<string>\",\n \"apiKey\": \"<string>\",\n \"fromEmail\": \"<string>\",\n \"fromCompany\": \"<string>\",\n \"triggers\": {\n \"comment_annotation.add\": true,\n \"comment.add\": true,\n \"comment_annotation.status_change\": true,\n \"comment_annotation.assign\": true,\n \"comment_annotation.priority_change\": true\n }\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.velt.dev/v2/workspace/emailconfig/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 \"useEmailService\": true,\n \"emailServiceConfig\": {\n \"type\": \"<string>\",\n \"apiKey\": \"<string>\",\n \"fromEmail\": \"<string>\",\n \"fromCompany\": \"<string>\",\n \"triggers\": {\n \"comment_annotation.add\": true,\n \"comment.add\": true,\n \"comment_annotation.status_change\": true,\n \"comment_annotation.assign\": true,\n \"comment_annotation.priority_change\": true\n }\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"result": {
"status": "success",
"message": "Email configuration updated successfully.",
"data": null
}
}
Use this API to update the email service configuration for a workspace. At least one of
useEmailService or emailServiceConfig 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/emailconfig/update
Headers
Your API key.
Your Auth Token.
Body
Params
Show properties
Show properties
Whether to enable the email service.
Email service configuration object.
Show properties
Show properties
Email service provider type. Accepted values:
"default" or "sendgrid".API key for the email service provider.
Sender email address.
Sender company name.
Event triggers that activate email 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
Trigger when a new comment thread is created.
Trigger when a new comment is added to a thread.
Trigger when a thread’s status changes (e.g., resolved).
Trigger when a thread is assigned to a user.
Trigger when a thread’s priority changes.
Example Request
{
"data": {
"useEmailService": true,
"emailServiceConfig": {
"type": "sendgrid",
"apiKey": "SG.xxxxxxxxxx",
"fromEmail": "noreply@example.com",
"fromCompany": "Example Corp"
}
}
}
Example Response
Success Response
{
"result": {
"status": "success",
"message": "Email configuration updated successfully.",
"data": null
}
}
Failure Response
{
"error": {
"status": "INVALID_ARGUMENT",
"message": "Invalid email service configuration."
}
}
{
"result": {
"status": "success",
"message": "Email configuration updated successfully.",
"data": null
}
}
Was this page helpful?
⌘I

