Targets
Targets are pointers to cloud-based applications and services such as Twitter and Twilio, as well as to HTTP and email addresses. You can use targets with triggers and automations to send a notification to the target when a ticket is created or updated. For a list of targets, seeNotifying external targets.
To specify a target notification as an action for a trigger or automation, use the action'snotification_target
field. The field's value is an array of two strings specifying the numeric ID of the target and the message body. Example:
{
"actions":[
{"field":“不ification_target","value":["32322","Ticket {{ticket.id}} has been updated."]}
]
}
For more information, seeTriggersorAutomations.
JSON format
Targets are represented as JSON objects with the following properties:
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
active | boolean | false | false | Whether or not the target is activated |
created_at | string | true | false | The time the target was created |
id | integer | true | false | Automatically assigned when created |
title | string | false | true | A name for the target |
type | string | false | true | A pre-defined target, such as "basecamp_target". See the additional attributes for the type that follow |
Besides the common fields, the target may have extra properties depending on its type.
"basecamp_target" has the following additional attributes:
Name | Type | Mandatory | Comment |
---|---|---|---|
target_url | string | yes | The URL of your Basecamp account, including protocol and path |
username | string | The 37Signals username of the account you use to log in to Basecamp | |
password | string | The 37Signals password for the Basecamp account (only writable) | |
token | string | yes | Get the API token from My info > Show your tokens > Token for feed readers or the Basecamp API in your Basecamp account |
project_id | string | yes | The ID of the project in Basecamp where updates should be pushed |
resource | string | yes | "todo" or "message" |
message_id | string | Can be filled if it is a "todo" resource | |
todo_list_id | string | Can be filled if it is a "message" resource |
"campfire_target" has the following additional attributes:
Name | Type | Mandatory | Comment |
---|---|---|---|
subdomain | string | yes | |
ssl | boolean | ||
room | string | yes | |
token | string | yes | |
preserve_format | boolean |
"clickatell_target" has the following additional attributes:
Name | Type | Mandatory | Comment |
---|---|---|---|
target_url | string | Read-only | |
method | string | Read-only | |
attribute | string | Read-only | |
username | string | yes | |
password | string | yes | only writable |
api_id | string | yes | |
to | string | yes | |
from | string | ||
us_small_business_account | string | Possible values: "0" or "1" for false or true |
"email_target" has the following additional attributes:
Name | Type | Mandatory | Comment |
---|---|---|---|
string | yes | ||
subject | string | yes |
"flowdock_target" has the following additional attributes:
Name | Type | Mandatory | Comment |
---|---|---|---|
api_token | string | yes |
"get_satisfaction_target" has the following additional attributes:
Name | Type | Mandatory | Comment |
---|---|---|---|
string | yes | ||
password | string | yes | only writable |
account_name | string | yes | |
target_url | string |
"jira_target" has the following additional attributes:
Name | Type | Mandatory | Comment |
---|---|---|---|
target_url | string | yes | |
username | string | yes | |
password | string | yes | only writable |
"pivotal_target" has the following additional attributes:
Name | Type | Mandatory | Comment |
---|---|---|---|
token | string | yes | |
project_id | string | yes | |
story_type | string | yes | |
story_title | string | yes | |
requested_by | string | ||
owner_by | string | ||
story_labels | string |
"twitter_target" has the following additional attributes:
Name | Type | Mandatory | Comment |
---|---|---|---|
token | string | ||
secret | string | only writable |
"url_target" has the following additional attributes:
Name | Type | Mandatory | Comment |
---|---|---|---|
target_url | string | yes | |
method | string | "get" | |
attribute | string | yes | |
username | string | ||
password | string | only writable |
"yammer_target" has the following additional attributes:
Name | Type | Mandatory | Comment |
---|---|---|---|
group_id | string | ||
token | string |
Example
{
"active":false,
"created_at":"2012-02-20T22:55:29Z",
"id":88335,
"title":"basecamp target",
"type":"basecamp_target",
"url":"https://company.zendesk.com/api/v2/targets/88335.json"
}
List Targets
GET /api/v2/targets
Allowed For
- Agents
代码示例
curl
curlhttps://{subdomain}.zendesk.com/api/v2/targets.json\
-v -u{email_address}:{password}
Go
import(
"fmt"
"io"
"net/http"
)
funcmain(){
url:="https://example.zendesk.com/api/v2/targets"
method:="GET"
req,err:=http.NewRequest(method,url,nil)
iferr!=nil{
fmt.Println(err)
return
}
req.Header.Add("Content-Type","application/json")
req.Header.Add("Authorization","Basic
" )// Base64 encoded "username:password"client:=&http.Client{}
res,err:=client.Do(req)
iferr!=nil{
fmt.Println(err)
return
}
deferres.Body.Close()
body,err:=io.ReadAll(res.Body)
iferr!=nil{
fmt.Println(err)
return
}
fmt.Println(string(body))
}
Java
importcom.squareup.okhttp.*;
OkHttpClientclient=newOkHttpClient();
HttpUrl.BuilderurlBuilder=HttpUrl.parse("https://example.zendesk.com/api/v2/targets")
.newBuilder();
Requestrequest=newRequest.Builder()
.url(urlBuilder.build())
.method("GET",null)
.addHeader("Content-Type","application/json")
.addHeader("Authorization",Credentials.basic("your-email",“你的密码”))
.build();
Responseresponse=client.newCall(request).execute();
Nodejs
varaxios=require('axios');
varconfig={
method:'GET',
url:'https://example.zendesk.com/api/v2/targets',
headers:{
'Content-Type':'application/json',
'Authorization':'Basic
' ,// Base64 encoded "username:password"},
};
axios(config)
.then(function(response){
console.log(JSON.stringify(response.data));
})
.catch(function(error){
console.log(error);
});
Python
importrequests
url="https://example.zendesk.com/api/v2/targets"
headers={
"Content-Type":"application/json",
}
response=requests.request(
"GET",
url,
auth=('
' ,'' ),headers=headers
)
print(response.text)
Ruby
require"net/http"
uri=URI("https://example.zendesk.com/api/v2/targets")
request=Net::HTTP::Get.new(uri,"Content-Type":"application/json")
request.basic_auth"username","password"
response=Net::HTTP.start uri.hostname,uri.port,use_ssl:truedo|http|
http.request(request)
end
Example response(s)
200 OK
// Status 200 OK
{
"targets":[
{
"active":true,
"created_at":"2009-05-13T00:07:08Z",
"id":211,
"title":"Fancy box",
"type":"basecamp_target"
}
]
}
Show Target
GET /api/v2/targets/{target_id}
Allowed For
- Agents
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
target_id | integer | Path | true | The ID of the target |
代码示例
curl
curlhttps://{subdomain}.zendesk.com/api/v2/targets/{target_id}.json\
-v -u{email_address}:{password}
Go
import(
"fmt"
"io"
"net/http"
)
funcmain(){
url:="https://example.zendesk.com/api/v2/targets/211"
method:="GET"
req,err:=http.NewRequest(method,url,nil)
iferr!=nil{
fmt.Println(err)
return
}
req.Header.Add("Content-Type","application/json")
req.Header.Add("Authorization","Basic
" )// Base64 encoded "username:password"client:=&http.Client{}
res,err:=client.Do(req)
iferr!=nil{
fmt.Println(err)
return
}
deferres.Body.Close()
body,err:=io.ReadAll(res.Body)
iferr!=nil{
fmt.Println(err)
return
}
fmt.Println(string(body))
}
Java
importcom.squareup.okhttp.*;
OkHttpClientclient=newOkHttpClient();
HttpUrl.BuilderurlBuilder=HttpUrl.parse("https://example.zendesk.com/api/v2/targets/211")
.newBuilder();
Requestrequest=newRequest.Builder()
.url(urlBuilder.build())
.method("GET",null)
.addHeader("Content-Type","application/json")
.addHeader("Authorization",Credentials.basic("your-email",“你的密码”))
.build();
Responseresponse=client.newCall(request).execute();
Nodejs
varaxios=require('axios');
varconfig={
method:'GET',
url:'https://example.zendesk.com/api/v2/targets/211',
headers:{
'Content-Type':'application/json',
'Authorization':'Basic
' ,// Base64 encoded "username:password"},
};
axios(config)
.then(function(response){
console.log(JSON.stringify(response.data));
})
.catch(function(error){
console.log(error);
});
Python
importrequests
url="https://example.zendesk.com/api/v2/targets/211"
headers={
"Content-Type":"application/json",
}
response=requests.request(
"GET",
url,
auth=('
' ,'' ),headers=headers
)
print(response.text)
Ruby
require"net/http"
uri=URI("https://example.zendesk.com/api/v2/targets/211")
request=Net::HTTP::Get.new(uri,"Content-Type":"application/json")
request.basic_auth"username","password"
response=Net::HTTP.start uri.hostname,uri.port,use_ssl:truedo|http|
http.request(request)
end
Example response(s)
200 OK
// Status 200 OK
{
"target":{
"active":true,
"created_at":"2009-05-13T00:07:08Z",
"id":211,
"title":"Fancy box",
"type":"basecamp_target"
}
}
Create Target
POST /api/v2/targets
Allowed For
- Admins
代码示例
curl
curlhttps://{subdomain}.zendesk.com/api/v2/targets\
-H"Content-Type: application/json"-X POST\
-d'{"target": {"type": "email_target", "title": "Test Email Target", "email": "[email protected]", "subject": "Test Target"}}'\
-v -u{email_address}:{password}
Go
import(
"fmt"
"io"
"net/http"
)
funcmain(){
url:="https://example.zendesk.com/api/v2/targets"
method:="POST"
req,err:=http.NewRequest(method,url,nil)
iferr!=nil{
fmt.Println(err)
return
}
req.Header.Add("Content-Type","application/json")
req.Header.Add("Authorization","Basic
" )// Base64 encoded "username:password"client:=&http.Client{}
res,err:=client.Do(req)
iferr!=nil{
fmt.Println(err)
return
}
deferres.Body.Close()
body,err:=io.ReadAll(res.Body)
iferr!=nil{
fmt.Println(err)
return
}
fmt.Println(string(body))
}
Java
importcom.squareup.okhttp.*;
OkHttpClientclient=newOkHttpClient();
HttpUrl.BuilderurlBuilder=HttpUrl.parse("https://example.zendesk.com/api/v2/targets")
.newBuilder();
RequestBodybody=RequestBody.create(MediaType.parse("application/json"),
"""
""");
Requestrequest=newRequest.Builder()
.url(urlBuilder.build())
.method("POST",body)
.addHeader("Content-Type","application/json")
.addHeader("Authorization",Credentials.basic("your-email",“你的密码”))
.build();
Responseresponse=client.newCall(request).execute();
Nodejs
varaxios=require('axios');
varconfig={
method:'POST',
url:'https://example.zendesk.com/api/v2/targets',
headers:{
'Content-Type':'application/json',
'Authorization':'Basic
' ,// Base64 encoded "username:password"},
};
axios(config)
.then(function(response){
console.log(JSON.stringify(response.data));
})
.catch(function(error){
console.log(error);
});
Python
importrequests
url="https://example.zendesk.com/api/v2/targets"
headers={
"Content-Type":"application/json",
}
response=requests.request(
"POST",
url,
auth=('
' ,'' ),headers=headers
)
print(response.text)
Ruby
require"net/http"
uri=URI("https://example.zendesk.com/api/v2/targets")
request=Net::HTTP::Post.new(uri,"Content-Type":"application/json")
request.basic_auth"username","password"
response=Net::HTTP.start uri.hostname,uri.port,use_ssl:truedo|http|
http.request(request)
end
Example response(s)
201 Created
// Status 201 Created
{
"target":{
"active":true,
"created_at":"2009-05-13T00:07:08Z",
"email":"[email protected]",
"subject":"Test Target",
"title":"Test Email Target",
"type":"email_target"
}
}
Update Target
PUT /api/v2/targets/{target_id}
Allowed For
- Admins
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
target_id | integer | Path | true | The ID of the target |
代码示例
curl
curlhttps://{subdomain}.zendesk.com/api/v2/targets/{target_id}\
-H"Content-Type: application/json"-X PUT\
-d'{"target": {"email": "[email protected]"}}'\
-v -u{email_address}:{password}
Go
import(
"fmt"
"io"
"net/http"
)
funcmain(){
url:="https://example.zendesk.com/api/v2/targets/211"
method:="PUT"
req,err:=http.NewRequest(method,url,nil)
iferr!=nil{
fmt.Println(err)
return
}
req.Header.Add("Content-Type","application/json")
req.Header.Add("Authorization","Basic
" )// Base64 encoded "username:password"client:=&http.Client{}
res,err:=client.Do(req)
iferr!=nil{
fmt.Println(err)
return
}
deferres.Body.Close()
body,err:=io.ReadAll(res.Body)
iferr!=nil{
fmt.Println(err)
return
}
fmt.Println(string(body))
}
Java
importcom.squareup.okhttp.*;
OkHttpClientclient=newOkHttpClient();
HttpUrl.BuilderurlBuilder=HttpUrl.parse("https://example.zendesk.com/api/v2/targets/211")
.newBuilder();
RequestBodybody=RequestBody.create(MediaType.parse("application/json"),
"""
""");
Requestrequest=newRequest.Builder()
.url(urlBuilder.build())
.method("PUT",body)
.addHeader("Content-Type","application/json")
.addHeader("Authorization",Credentials.basic("your-email",“你的密码”))
.build();
Responseresponse=client.newCall(request).execute();
Nodejs
varaxios=require('axios');
varconfig={
method:'PUT',
url:'https://example.zendesk.com/api/v2/targets/211',
headers:{
'Content-Type':'application/json',
'Authorization':'Basic
' ,// Base64 encoded "username:password"},
};
axios(config)
.then(function(response){
console.log(JSON.stringify(response.data));
})
.catch(function(error){
console.log(error);
});
Python
importrequests
url="https://example.zendesk.com/api/v2/targets/211"
headers={
"Content-Type":"application/json",
}
response=requests.request(
"PUT",
url,
auth=('
' ,'' ),headers=headers
)
print(response.text)
Ruby
require"net/http"
uri=URI("https://example.zendesk.com/api/v2/targets/211")
request=Net::HTTP::Put.new(uri,"Content-Type":"application/json")
request.basic_auth"username","password"
response=Net::HTTP.start uri.hostname,uri.port,use_ssl:truedo|http|
http.request(request)
end
Example response(s)
200 OK
// Status 200 OK
{
"target":{
"active":true,
"created_at":"2009-05-13T00:07:08Z",
"email":"[email protected]",
"subject":"Test Target",
"title":"Test Email Target",
"type":"email_target"
}
}
删除Target
DELETE /api/v2/targets/{target_id}
Allowed For
- Admins
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
target_id | integer | Path | true | The ID of the target |
代码示例
curl
curlhttps://{subdomain}.zendesk.com/api/v2/targets/{target_id}\
-H"Content-Type: application/json"-X DELETE\
-v -u{email_address}:{password}
Go
import(
"fmt"
"io"
"net/http"
)
funcmain(){
url:="https://example.zendesk.com/api/v2/targets/211"
method:="DELETE"
req,err:=http.NewRequest(method,url,nil)
iferr!=nil{
fmt.Println(err)
return
}
req.Header.Add("Content-Type","application/json")
req.Header.Add("Authorization","Basic
" )// Base64 encoded "username:password"client:=&http.Client{}
res,err:=client.Do(req)
iferr!=nil{
fmt.Println(err)
return
}
deferres.Body.Close()
body,err:=io.ReadAll(res.Body)
iferr!=nil{
fmt.Println(err)
return
}
fmt.Println(string(body))
}
Java
importcom.squareup.okhttp.*;
OkHttpClientclient=newOkHttpClient();
HttpUrl.BuilderurlBuilder=HttpUrl.parse("https://example.zendesk.com/api/v2/targets/211")
.newBuilder();
Requestrequest=newRequest.Builder()
.url(urlBuilder.build())
.method("DELETE",null)
.addHeader("Content-Type","application/json")
.addHeader("Authorization",Credentials.basic("your-email",“你的密码”))
.build();
Responseresponse=client.newCall(request).execute();
Nodejs
varaxios=require('axios');
varconfig={
method:'DELETE',
url:'https://example.zendesk.com/api/v2/targets/211',
headers:{
'Content-Type':'application/json',
'Authorization':'Basic
' ,// Base64 encoded "username:password"},
};
axios(config)
.then(function(response){
console.log(JSON.stringify(response.data));
})
.catch(function(error){
console.log(error);
});
Python
importrequests
url="https://example.zendesk.com/api/v2/targets/211"
headers={
"Content-Type":"application/json",
}
response=requests.request(
"DELETE",
url,
auth=('
' ,'' ),headers=headers
)
print(response.text)
Ruby
require"net/http"
uri=URI("https://example.zendesk.com/api/v2/targets/211")
request=Net::HTTP::删除.new(uri,"Content-Type":"application/json")
request.basic_auth"username","password"
response=Net::HTTP.start uri.hostname,uri.port,use_ssl:truedo|http|
http.request(request)
end
Example response(s)
204 No Content
// Status 204 No Content
null