Update Goal
curl --request PUT \
--url https://api.tess.im/digital-employees/{employeeId}/goal \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-workspace-id: <x-workspace-id>' \
--data '
{
"title": "<string>",
"description": "<string>",
"success_criteria": "<string>",
"status": "<string>"
}
'import requests
url = "https://api.tess.im/digital-employees/{employeeId}/goal"
payload = {
"title": "<string>",
"description": "<string>",
"success_criteria": "<string>",
"status": "<string>"
}
headers = {
"x-workspace-id": "<x-workspace-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {
'x-workspace-id': '<x-workspace-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
title: '<string>',
description: '<string>',
success_criteria: '<string>',
status: '<string>'
})
};
fetch('https://api.tess.im/digital-employees/{employeeId}/goal', 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.tess.im/digital-employees/{employeeId}/goal",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'title' => '<string>',
'description' => '<string>',
'success_criteria' => '<string>',
'status' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-workspace-id: <x-workspace-id>"
],
]);
$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.tess.im/digital-employees/{employeeId}/goal"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"success_criteria\": \"<string>\",\n \"status\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-workspace-id", "<x-workspace-id>")
req.Header.Add("Authorization", "Bearer <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.put("https://api.tess.im/digital-employees/{employeeId}/goal")
.header("x-workspace-id", "<x-workspace-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"success_criteria\": \"<string>\",\n \"status\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tess.im/digital-employees/{employeeId}/goal")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-workspace-id"] = '<x-workspace-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"success_criteria\": \"<string>\",\n \"status\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyDigital Employees
Update Goal
Sets or updates the goal definition for a digital employee.
PUT
/
digital-employees
/
{employeeId}
/
goal
Update Goal
curl --request PUT \
--url https://api.tess.im/digital-employees/{employeeId}/goal \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-workspace-id: <x-workspace-id>' \
--data '
{
"title": "<string>",
"description": "<string>",
"success_criteria": "<string>",
"status": "<string>"
}
'import requests
url = "https://api.tess.im/digital-employees/{employeeId}/goal"
payload = {
"title": "<string>",
"description": "<string>",
"success_criteria": "<string>",
"status": "<string>"
}
headers = {
"x-workspace-id": "<x-workspace-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {
'x-workspace-id': '<x-workspace-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
title: '<string>',
description: '<string>',
success_criteria: '<string>',
status: '<string>'
})
};
fetch('https://api.tess.im/digital-employees/{employeeId}/goal', 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.tess.im/digital-employees/{employeeId}/goal",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'title' => '<string>',
'description' => '<string>',
'success_criteria' => '<string>',
'status' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-workspace-id: <x-workspace-id>"
],
]);
$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.tess.im/digital-employees/{employeeId}/goal"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"success_criteria\": \"<string>\",\n \"status\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-workspace-id", "<x-workspace-id>")
req.Header.Add("Authorization", "Bearer <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.put("https://api.tess.im/digital-employees/{employeeId}/goal")
.header("x-workspace-id", "<x-workspace-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"success_criteria\": \"<string>\",\n \"status\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tess.im/digital-employees/{employeeId}/goal")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-workspace-id"] = '<x-workspace-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"success_criteria\": \"<string>\",\n \"status\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyCode Examples
curl --request PUT \
--url 'https://api.tess.im/digital-employees/123/goal' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'x-workspace-id: 10' \
--header 'Content-Type: application/json' \
--data '{
"title": "Increase Q3 revenue by 15%",
"description": "Monitor and report on key revenue metrics weekly.",
"success_criteria": "Revenue reaches $1.5M by September 30",
"status": "active"
}'
const axios = require('axios');
const config = {
method: 'put',
url: 'https://api.tess.im/digital-employees/123/goal',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'x-workspace-id': '10',
'Content-Type': 'application/json'
},
data: {
title: 'Increase Q3 revenue by 15%',
description: 'Monitor and report on key revenue metrics weekly.',
success_criteria: 'Revenue reaches $1.5M by September 30',
status: 'active'
}
};
try {
const response = await axios(config);
console.log(response.data);
} catch (error) {
console.error(error);
}
import requests
url = "https://api.tess.im/digital-employees/123/goal"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"x-workspace-id": "10",
"Content-Type": "application/json"
}
payload = {
"title": "Increase Q3 revenue by 15%",
"description": "Monitor and report on key revenue metrics weekly.",
"success_criteria": "Revenue reaches $1.5M by September 30",
"status": "active"
}
response = requests.put(url, headers=headers, json=payload)
print(response.json())
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tess.im/digital-employees/123/goal",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
"title" => "Increase Q3 revenue by 15%",
"description" => "Monitor and report on key revenue metrics weekly.",
"success_criteria" => "Revenue reaches \$1.5M by September 30",
"status" => "active"
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOUR_API_KEY",
"x-workspace-id: 10",
"Content-Type: application/json"
]
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
String body = """
{
"title": "Increase Q3 revenue by 15%",
"description": "Monitor and report on key revenue metrics weekly.",
"success_criteria": "Revenue reaches $1.5M by September 30",
"status": "active"
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.tess.im/digital-employees/123/goal"))
.header("Authorization", "Bearer YOUR_API_KEY")
.header("x-workspace-id", "10")
.header("Content-Type", "application/json")
.PUT(HttpRequest.BodyPublishers.ofString(body))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io/ioutil"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader(`{
"title": "Increase Q3 revenue by 15%",
"description": "Monitor and report on key revenue metrics weekly.",
"success_criteria": "Revenue reaches $1.5M by September 30",
"status": "active"
}`)
client := &http.Client{}
req, _ := http.NewRequest("PUT", "https://api.tess.im/digital-employees/123/goal", payload)
req.Header.Add("Authorization", "Bearer YOUR_API_KEY")
req.Header.Add("x-workspace-id", "10")
req.Header.Add("Content-Type", "application/json")
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
using System.Net.Http;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");
client.DefaultRequestHeaders.Add("x-workspace-id", "10");
var json = """
{
"title": "Increase Q3 revenue by 15%",
"description": "Monitor and report on key revenue metrics weekly.",
"success_criteria": "Revenue reaches $1.5M by September 30",
"status": "active"
}
""";
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PutAsync("https://api.tess.im/digital-employees/123/goal", content);
Console.WriteLine(await response.Content.ReadAsStringAsync());
require 'uri'
require 'net/http'
require 'json'
uri = URI('https://api.tess.im/digital-employees/123/goal')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Put.new(uri)
request['Authorization'] = 'Bearer YOUR_API_KEY'
request['x-workspace-id'] = '10'
request['Content-Type'] = 'application/json'
request.body = {
title: 'Increase Q3 revenue by 15%',
description: 'Monitor and report on key revenue metrics weekly.',
success_criteria: 'Revenue reaches $1.5M by September 30',
status: 'active'
}.to_json
response = http.request(request)
puts response.read_body
Headers
Include your API key in the
Authorization header as Bearer YOUR_API_KEY on all requests.integer
required
ID of the workspace. Required for all Digital Employees API requests.
Path Parameters
integer
required
The unique identifier of the digital employee.
Body Parameters
string
required
Goal title. Max 500 characters.
string
Detailed goal description. Max 2000 characters.
string
Measurable criteria for goal completion. Max 1000 characters.
string
Goal status. Accepted values:
planned, active, achieved, cancelled.Response
{
"data": {
"id": 123,
"name": "Finance Ops",
"goal_json": {
"title": "Increase Q3 revenue by 15%",
"description": "Monitor and report on key revenue metrics weekly.",
"success_criteria": "Revenue reaches $1.5M by September 30",
"status": "active"
}
}
}
⌘I