curl --request POST \
--url https://api.extole.io/v2/campaigns/{campaignId}{version}/flow-steps/{flowStepId}/metrics \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"component_ids": [
"component_id"
],
"component_references": [
{
"component_id": "component_id",
"socket_names": [
"socket_name"
]
}
],
"description": "description",
"expression": "expression",
"name": "name",
"tags": [
"tag"
],
"unit": "unit"
}
'import requests
url = "https://api.extole.io/v2/campaigns/{campaignId}{version}/flow-steps/{flowStepId}/metrics"
payload = {
"component_ids": ["component_id"],
"component_references": [
{
"component_id": "component_id",
"socket_names": ["socket_name"]
}
],
"description": "description",
"expression": "expression",
"name": "name",
"tags": ["tag"],
"unit": "unit"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
component_ids: ['component_id'],
component_references: [{component_id: 'component_id', socket_names: ['socket_name']}],
description: 'description',
expression: 'expression',
name: 'name',
tags: ['tag'],
unit: 'unit'
})
};
fetch('https://api.extole.io/v2/campaigns/{campaignId}{version}/flow-steps/{flowStepId}/metrics', 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.extole.io/v2/campaigns/{campaignId}{version}/flow-steps/{flowStepId}/metrics",
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([
'component_ids' => [
'component_id'
],
'component_references' => [
[
'component_id' => 'component_id',
'socket_names' => [
'socket_name'
]
]
],
'description' => 'description',
'expression' => 'expression',
'name' => 'name',
'tags' => [
'tag'
],
'unit' => 'unit'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$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.extole.io/v2/campaigns/{campaignId}{version}/flow-steps/{flowStepId}/metrics"
payload := strings.NewReader("{\n \"component_ids\": [\n \"component_id\"\n ],\n \"component_references\": [\n {\n \"component_id\": \"component_id\",\n \"socket_names\": [\n \"socket_name\"\n ]\n }\n ],\n \"description\": \"description\",\n \"expression\": \"expression\",\n \"name\": \"name\",\n \"tags\": [\n \"tag\"\n ],\n \"unit\": \"unit\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.extole.io/v2/campaigns/{campaignId}{version}/flow-steps/{flowStepId}/metrics")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"component_ids\": [\n \"component_id\"\n ],\n \"component_references\": [\n {\n \"component_id\": \"component_id\",\n \"socket_names\": [\n \"socket_name\"\n ]\n }\n ],\n \"description\": \"description\",\n \"expression\": \"expression\",\n \"name\": \"name\",\n \"tags\": [\n \"tag\"\n ],\n \"unit\": \"unit\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.extole.io/v2/campaigns/{campaignId}{version}/flow-steps/{flowStepId}/metrics")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"component_ids\": [\n \"component_id\"\n ],\n \"component_references\": [\n {\n \"component_id\": \"component_id\",\n \"socket_names\": [\n \"socket_name\"\n ]\n }\n ],\n \"description\": \"description\",\n \"expression\": \"expression\",\n \"name\": \"name\",\n \"tags\": [\n \"tag\"\n ],\n \"unit\": \"unit\"\n}"
response = http.request(request)
puts response.read_body{
"component_ids": [
"<string>"
],
"component_references": [
{
"component_id": "<string>",
"socket_names": [
"<string>"
]
}
],
"description": "<string>",
"expression": "<string>",
"id": "<string>",
"name": "<string>",
"tags": [
"<string>"
],
"unit": "<string>"
}Create a campaign flow step metric
Adds a new tracking metric to the specified campaign flow step. Returns the created metric with its server-assigned id.
curl --request POST \
--url https://api.extole.io/v2/campaigns/{campaignId}{version}/flow-steps/{flowStepId}/metrics \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"component_ids": [
"component_id"
],
"component_references": [
{
"component_id": "component_id",
"socket_names": [
"socket_name"
]
}
],
"description": "description",
"expression": "expression",
"name": "name",
"tags": [
"tag"
],
"unit": "unit"
}
'import requests
url = "https://api.extole.io/v2/campaigns/{campaignId}{version}/flow-steps/{flowStepId}/metrics"
payload = {
"component_ids": ["component_id"],
"component_references": [
{
"component_id": "component_id",
"socket_names": ["socket_name"]
}
],
"description": "description",
"expression": "expression",
"name": "name",
"tags": ["tag"],
"unit": "unit"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
component_ids: ['component_id'],
component_references: [{component_id: 'component_id', socket_names: ['socket_name']}],
description: 'description',
expression: 'expression',
name: 'name',
tags: ['tag'],
unit: 'unit'
})
};
fetch('https://api.extole.io/v2/campaigns/{campaignId}{version}/flow-steps/{flowStepId}/metrics', 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.extole.io/v2/campaigns/{campaignId}{version}/flow-steps/{flowStepId}/metrics",
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([
'component_ids' => [
'component_id'
],
'component_references' => [
[
'component_id' => 'component_id',
'socket_names' => [
'socket_name'
]
]
],
'description' => 'description',
'expression' => 'expression',
'name' => 'name',
'tags' => [
'tag'
],
'unit' => 'unit'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$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.extole.io/v2/campaigns/{campaignId}{version}/flow-steps/{flowStepId}/metrics"
payload := strings.NewReader("{\n \"component_ids\": [\n \"component_id\"\n ],\n \"component_references\": [\n {\n \"component_id\": \"component_id\",\n \"socket_names\": [\n \"socket_name\"\n ]\n }\n ],\n \"description\": \"description\",\n \"expression\": \"expression\",\n \"name\": \"name\",\n \"tags\": [\n \"tag\"\n ],\n \"unit\": \"unit\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.extole.io/v2/campaigns/{campaignId}{version}/flow-steps/{flowStepId}/metrics")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"component_ids\": [\n \"component_id\"\n ],\n \"component_references\": [\n {\n \"component_id\": \"component_id\",\n \"socket_names\": [\n \"socket_name\"\n ]\n }\n ],\n \"description\": \"description\",\n \"expression\": \"expression\",\n \"name\": \"name\",\n \"tags\": [\n \"tag\"\n ],\n \"unit\": \"unit\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.extole.io/v2/campaigns/{campaignId}{version}/flow-steps/{flowStepId}/metrics")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"component_ids\": [\n \"component_id\"\n ],\n \"component_references\": [\n {\n \"component_id\": \"component_id\",\n \"socket_names\": [\n \"socket_name\"\n ]\n }\n ],\n \"description\": \"description\",\n \"expression\": \"expression\",\n \"name\": \"name\",\n \"tags\": [\n \"tag\"\n ],\n \"unit\": \"unit\"\n}"
response = http.request(request)
puts response.read_body{
"component_ids": [
"<string>"
],
"component_references": [
{
"component_id": "<string>",
"socket_names": [
"<string>"
]
}
],
"description": "<string>",
"expression": "<string>",
"id": "<string>",
"name": "<string>",
"tags": [
"<string>"
],
"unit": "<string>"
}Authorizations
Path Parameters
(/version/.+)?Body
Body of a POST /v2/campaigns/{campaignId}{version:(/version/.+)?}/flow-steps/{flowStepId}/metrics request.
Choose between static or dynamic description
Choose between static or dynamic expression
Choose between static or dynamic name
Choose between static or dynamic tags
Choose between static or dynamic unit
Show child attributes
Show child attributes
Response
Successful response
Stored campaign flow step metric definition. Fields name, description, expression, unit, and tags are unevaluated and appear in buildtime-evaluatable form.
Show child attributes
Show child attributes
The description as configured: a literal value, or an expression (type:string) when defined dynamically.
The expression as configured: a literal value, or an expression (type:string) when defined dynamically.
The name as configured: a literal value, or an expression (type:string) when defined dynamically.
The tags as configured: a literal value, or an expression (type:string) when defined dynamically.
The unit as configured: a literal value, or an expression (type:string) when defined dynamically.
