Create a process promotion request
curl --request POST \
--url https://api.flowforma.com/v1/processes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"Title": "Promote Expenses v2",
"Rationale": "Signed off for production",
"EnvironmentType": "Production",
"OriginEnvironment": "b1c2d3e4-5717-4562-b3fc-2c963f66afa6",
"TargetEnvironment": "d4e5f6a7-5717-4562-b3fc-2c963f66afa6",
"TargetEnvProcessID": 42
}
'import requests
url = "https://api.flowforma.com/v1/processes"
payload = {
"Title": "Promote Expenses v2",
"Rationale": "Signed off for production",
"EnvironmentType": "Production",
"OriginEnvironment": "b1c2d3e4-5717-4562-b3fc-2c963f66afa6",
"TargetEnvironment": "d4e5f6a7-5717-4562-b3fc-2c963f66afa6",
"TargetEnvProcessID": 42
}
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({
Title: 'Promote Expenses v2',
Rationale: 'Signed off for production',
EnvironmentType: 'Production',
OriginEnvironment: 'b1c2d3e4-5717-4562-b3fc-2c963f66afa6',
TargetEnvironment: 'd4e5f6a7-5717-4562-b3fc-2c963f66afa6',
TargetEnvProcessID: 42
})
};
fetch('https://api.flowforma.com/v1/processes', 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.flowforma.com/v1/processes",
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([
'Title' => 'Promote Expenses v2',
'Rationale' => 'Signed off for production',
'EnvironmentType' => 'Production',
'OriginEnvironment' => 'b1c2d3e4-5717-4562-b3fc-2c963f66afa6',
'TargetEnvironment' => 'd4e5f6a7-5717-4562-b3fc-2c963f66afa6',
'TargetEnvProcessID' => 42
]),
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://api.flowforma.com/v1/processes"
payload := strings.NewReader("{\n \"Title\": \"Promote Expenses v2\",\n \"Rationale\": \"Signed off for production\",\n \"EnvironmentType\": \"Production\",\n \"OriginEnvironment\": \"b1c2d3e4-5717-4562-b3fc-2c963f66afa6\",\n \"TargetEnvironment\": \"d4e5f6a7-5717-4562-b3fc-2c963f66afa6\",\n \"TargetEnvProcessID\": 42\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://api.flowforma.com/v1/processes")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"Title\": \"Promote Expenses v2\",\n \"Rationale\": \"Signed off for production\",\n \"EnvironmentType\": \"Production\",\n \"OriginEnvironment\": \"b1c2d3e4-5717-4562-b3fc-2c963f66afa6\",\n \"TargetEnvironment\": \"d4e5f6a7-5717-4562-b3fc-2c963f66afa6\",\n \"TargetEnvProcessID\": 42\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flowforma.com/v1/processes")
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 \"Title\": \"Promote Expenses v2\",\n \"Rationale\": \"Signed off for production\",\n \"EnvironmentType\": \"Production\",\n \"OriginEnvironment\": \"b1c2d3e4-5717-4562-b3fc-2c963f66afa6\",\n \"TargetEnvironment\": \"d4e5f6a7-5717-4562-b3fc-2c963f66afa6\",\n \"TargetEnvProcessID\": 42\n}"
response = http.request(request)
puts response.read_body{
"RequestID": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"Title": "<string>",
"Rationale": "<string>",
"OriginEnvironment": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"TargetEnvironment": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"TargetEnvProcessID": 123,
"ListDetails": [
{
"Title": "<string>",
"URL": "<string>",
"NewListTitle": "<string>",
"NewLocationURL": "<string>",
"CopyItems": true
}
],
"Created": "2023-11-07T05:31:56Z",
"Author": "<string>"
}{
"code": "400",
"message": "Page does not exist."
}{
"code": "400",
"message": "Page does not exist."
}{
"code": "400",
"message": "Page does not exist."
}Processes
Create a process promotion request
Creates a request to promote a process from one environment to another. OriginEnvironment and TargetEnvironment must be IDs of existing environments (from the Environments endpoints). Title and Rationale are limited to 50 characters.
POST
/
v1
/
processes
Create a process promotion request
curl --request POST \
--url https://api.flowforma.com/v1/processes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"Title": "Promote Expenses v2",
"Rationale": "Signed off for production",
"EnvironmentType": "Production",
"OriginEnvironment": "b1c2d3e4-5717-4562-b3fc-2c963f66afa6",
"TargetEnvironment": "d4e5f6a7-5717-4562-b3fc-2c963f66afa6",
"TargetEnvProcessID": 42
}
'import requests
url = "https://api.flowforma.com/v1/processes"
payload = {
"Title": "Promote Expenses v2",
"Rationale": "Signed off for production",
"EnvironmentType": "Production",
"OriginEnvironment": "b1c2d3e4-5717-4562-b3fc-2c963f66afa6",
"TargetEnvironment": "d4e5f6a7-5717-4562-b3fc-2c963f66afa6",
"TargetEnvProcessID": 42
}
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({
Title: 'Promote Expenses v2',
Rationale: 'Signed off for production',
EnvironmentType: 'Production',
OriginEnvironment: 'b1c2d3e4-5717-4562-b3fc-2c963f66afa6',
TargetEnvironment: 'd4e5f6a7-5717-4562-b3fc-2c963f66afa6',
TargetEnvProcessID: 42
})
};
fetch('https://api.flowforma.com/v1/processes', 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.flowforma.com/v1/processes",
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([
'Title' => 'Promote Expenses v2',
'Rationale' => 'Signed off for production',
'EnvironmentType' => 'Production',
'OriginEnvironment' => 'b1c2d3e4-5717-4562-b3fc-2c963f66afa6',
'TargetEnvironment' => 'd4e5f6a7-5717-4562-b3fc-2c963f66afa6',
'TargetEnvProcessID' => 42
]),
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://api.flowforma.com/v1/processes"
payload := strings.NewReader("{\n \"Title\": \"Promote Expenses v2\",\n \"Rationale\": \"Signed off for production\",\n \"EnvironmentType\": \"Production\",\n \"OriginEnvironment\": \"b1c2d3e4-5717-4562-b3fc-2c963f66afa6\",\n \"TargetEnvironment\": \"d4e5f6a7-5717-4562-b3fc-2c963f66afa6\",\n \"TargetEnvProcessID\": 42\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://api.flowforma.com/v1/processes")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"Title\": \"Promote Expenses v2\",\n \"Rationale\": \"Signed off for production\",\n \"EnvironmentType\": \"Production\",\n \"OriginEnvironment\": \"b1c2d3e4-5717-4562-b3fc-2c963f66afa6\",\n \"TargetEnvironment\": \"d4e5f6a7-5717-4562-b3fc-2c963f66afa6\",\n \"TargetEnvProcessID\": 42\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flowforma.com/v1/processes")
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 \"Title\": \"Promote Expenses v2\",\n \"Rationale\": \"Signed off for production\",\n \"EnvironmentType\": \"Production\",\n \"OriginEnvironment\": \"b1c2d3e4-5717-4562-b3fc-2c963f66afa6\",\n \"TargetEnvironment\": \"d4e5f6a7-5717-4562-b3fc-2c963f66afa6\",\n \"TargetEnvProcessID\": 42\n}"
response = http.request(request)
puts response.read_body{
"RequestID": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"Title": "<string>",
"Rationale": "<string>",
"OriginEnvironment": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"TargetEnvironment": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"TargetEnvProcessID": 123,
"ListDetails": [
{
"Title": "<string>",
"URL": "<string>",
"NewListTitle": "<string>",
"NewLocationURL": "<string>",
"CopyItems": true
}
],
"Created": "2023-11-07T05:31:56Z",
"Author": "<string>"
}{
"code": "400",
"message": "Page does not exist."
}{
"code": "400",
"message": "Page does not exist."
}{
"code": "400",
"message": "Page does not exist."
}Authorizations
BearerAuthIntegrationToken
Azure AD app-only access token. Obtain it from GET /v1/oauthToken and send it as the Authorization: Bearer {token} header.
Body
application/json
Request title (max 50 characters).
Reason for the promotion (max 50 characters).
Environment type.
Available options:
Sandbox, UAT, Production, NA ID of the source environment.
ID of the destination environment.
ID of the process in the target environment, if updating an existing one.
Show child attributes
Show child attributes
Response
Successful operation
Environment type.
Available options:
Sandbox, UAT, Production, NA Request lifecycle status.
Available options:
AwaitingApproval, Accepted, NotAccepted, Processing, Completed, Failed Show child attributes
Show child attributes
⌘I

