Workflow API
Create Workflow
Create a new workflow for a team.
POST
/
v2
/
workflows
Create Workflow
curl --request POST \
--url https://public.api.serval.com/v2/workflows \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"teamId": "<string>",
"name": "<string>",
"content": "<string>",
"description": "<string>",
"requireFormConfirmation": true,
"isPublished": true,
"tagIds": [
"<string>"
],
"showInServiceCatalog": true,
"serviceCatalogDescription": "<string>"
}
'import requests
url = "https://public.api.serval.com/v2/workflows"
payload = {
"teamId": "<string>",
"name": "<string>",
"content": "<string>",
"description": "<string>",
"requireFormConfirmation": True,
"isPublished": True,
"tagIds": ["<string>"],
"showInServiceCatalog": True,
"serviceCatalogDescription": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
teamId: '<string>',
name: '<string>',
content: '<string>',
description: '<string>',
requireFormConfirmation: true,
isPublished: true,
tagIds: ['<string>'],
showInServiceCatalog: true,
serviceCatalogDescription: '<string>'
})
};
fetch('https://public.api.serval.com/v2/workflows', 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://public.api.serval.com/v2/workflows",
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([
'teamId' => '<string>',
'name' => '<string>',
'content' => '<string>',
'description' => '<string>',
'requireFormConfirmation' => true,
'isPublished' => true,
'tagIds' => [
'<string>'
],
'showInServiceCatalog' => true,
'serviceCatalogDescription' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://public.api.serval.com/v2/workflows"
payload := strings.NewReader("{\n \"teamId\": \"<string>\",\n \"name\": \"<string>\",\n \"content\": \"<string>\",\n \"description\": \"<string>\",\n \"requireFormConfirmation\": true,\n \"isPublished\": true,\n \"tagIds\": [\n \"<string>\"\n ],\n \"showInServiceCatalog\": true,\n \"serviceCatalogDescription\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.post("https://public.api.serval.com/v2/workflows")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"teamId\": \"<string>\",\n \"name\": \"<string>\",\n \"content\": \"<string>\",\n \"description\": \"<string>\",\n \"requireFormConfirmation\": true,\n \"isPublished\": true,\n \"tagIds\": [\n \"<string>\"\n ],\n \"showInServiceCatalog\": true,\n \"serviceCatalogDescription\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://public.api.serval.com/v2/workflows")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"teamId\": \"<string>\",\n \"name\": \"<string>\",\n \"content\": \"<string>\",\n \"description\": \"<string>\",\n \"requireFormConfirmation\": true,\n \"isPublished\": true,\n \"tagIds\": [\n \"<string>\"\n ],\n \"showInServiceCatalog\": true,\n \"serviceCatalogDescription\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"teamId": "<string>",
"name": "<string>",
"description": "<string>",
"requireFormConfirmation": true,
"content": "<string>",
"isPublished": true,
"hasUnpublishedChanges": true,
"tagIds": [
"<string>"
],
"showInServiceCatalog": true,
"serviceCatalogDescription": "<string>",
"scopedId": "<string>",
"folderId": "<string>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
The ID of the team.
The name of the workflow.
The content/code of the workflow.
A description of the workflow.
Whether the workflow requires form confirmation (optional).
Whether to publish the workflow after creation (optional).
The IDs of the tags to associate with the workflow.
Whether to list this workflow in the Service Catalog (optional). When omitted, the workflow is not listed.
Optional description shown at the top of the Service Catalog run form.
Response
200 - application/json
Success
The created workflow.
Show child attributes
Show child attributes
Was this page helpful?
⌘I
Create Workflow
curl --request POST \
--url https://public.api.serval.com/v2/workflows \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"teamId": "<string>",
"name": "<string>",
"content": "<string>",
"description": "<string>",
"requireFormConfirmation": true,
"isPublished": true,
"tagIds": [
"<string>"
],
"showInServiceCatalog": true,
"serviceCatalogDescription": "<string>"
}
'import requests
url = "https://public.api.serval.com/v2/workflows"
payload = {
"teamId": "<string>",
"name": "<string>",
"content": "<string>",
"description": "<string>",
"requireFormConfirmation": True,
"isPublished": True,
"tagIds": ["<string>"],
"showInServiceCatalog": True,
"serviceCatalogDescription": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
teamId: '<string>',
name: '<string>',
content: '<string>',
description: '<string>',
requireFormConfirmation: true,
isPublished: true,
tagIds: ['<string>'],
showInServiceCatalog: true,
serviceCatalogDescription: '<string>'
})
};
fetch('https://public.api.serval.com/v2/workflows', 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://public.api.serval.com/v2/workflows",
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([
'teamId' => '<string>',
'name' => '<string>',
'content' => '<string>',
'description' => '<string>',
'requireFormConfirmation' => true,
'isPublished' => true,
'tagIds' => [
'<string>'
],
'showInServiceCatalog' => true,
'serviceCatalogDescription' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://public.api.serval.com/v2/workflows"
payload := strings.NewReader("{\n \"teamId\": \"<string>\",\n \"name\": \"<string>\",\n \"content\": \"<string>\",\n \"description\": \"<string>\",\n \"requireFormConfirmation\": true,\n \"isPublished\": true,\n \"tagIds\": [\n \"<string>\"\n ],\n \"showInServiceCatalog\": true,\n \"serviceCatalogDescription\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.post("https://public.api.serval.com/v2/workflows")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"teamId\": \"<string>\",\n \"name\": \"<string>\",\n \"content\": \"<string>\",\n \"description\": \"<string>\",\n \"requireFormConfirmation\": true,\n \"isPublished\": true,\n \"tagIds\": [\n \"<string>\"\n ],\n \"showInServiceCatalog\": true,\n \"serviceCatalogDescription\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://public.api.serval.com/v2/workflows")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"teamId\": \"<string>\",\n \"name\": \"<string>\",\n \"content\": \"<string>\",\n \"description\": \"<string>\",\n \"requireFormConfirmation\": true,\n \"isPublished\": true,\n \"tagIds\": [\n \"<string>\"\n ],\n \"showInServiceCatalog\": true,\n \"serviceCatalogDescription\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"teamId": "<string>",
"name": "<string>",
"description": "<string>",
"requireFormConfirmation": true,
"content": "<string>",
"isPublished": true,
"hasUnpublishedChanges": true,
"tagIds": [
"<string>"
],
"showInServiceCatalog": true,
"serviceCatalogDescription": "<string>",
"scopedId": "<string>",
"folderId": "<string>"
}
}
