Duplicate a Workflow
POST
https://mapi.storyblok.com/v1/spaces/:space_id/workflows/:workflow_id/duplicateCreates a new custom workflow by duplicating an existing workflow using the workflow id of the parent workflow. Duplicating a workflow keeps workflow stages the same for the new workflow.
The name and content types are required and should be different.
Path parameters
Section titled “Path parameters”- :space_id required number
Numeric ID of a space
Request body properties
Section titled “Request body properties”- workflow Workflow Object
Response properties
Section titled “Response properties”- workflow Workflow Object
Examples
Section titled “Examples”curl "https://mapi.storyblok.com/v1/spaces/288868932106293/workflows/656/duplicate" \ -X POST \ -H "Authorization: YOUR_OAUTH_TOKEN" \ -H "Content-Type: application/json" \ -d "{\"workflow\":{\"content_types\":[\"page_new\"],\"name\":\"duplicated page\"}}"// storyblok-js-client@>=7, node@>=18import Storyblok from "storyblok-js-client";
const storyblok = new Storyblok({ oauthToken: "YOUR_PERSONAL_ACCESS_TOKEN",});
try { const response = await storyblok.post('spaces/288868932106293/workflows/656/duplicate', { "workflow": { "content_types": [ "page_new" ], "name": "duplicated page" }}) console.log({ response })} catch (error) { console.log(error)}$client = new \Storyblok\ManagementClient('YOUR_OAUTH_TOKEN');
$payload = ["workflow" => ["content_types" => ["page_new"],"name" => "duplicated page"]];
$client->post('spaces/288868932106293/workflows/656/duplicate', $payload)->getBody();HttpResponse<String> response = Unirest.post("https://mapi.storyblok.com/v1/spaces/288868932106293/workflows/656/duplicate") .header("Content-Type", "application/json") .header("Authorization", "YOUR_OAUTH_TOKEN") .body({"workflow":{"content_types":["page_new"],"name":"duplicated page"}}) .asString();var client = new RestClient("https://mapi.storyblok.com/v1/spaces/288868932106293/workflows/656/duplicate");var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");request.AddHeader("Authorization", "YOUR_OAUTH_TOKEN");request.AddParameter("application/json", "{\"workflow\":{\"content_types\":[\"page_new\"],\"name\":\"duplicated page\"}}", ParameterType.RequestBody);IRestResponse response = client.Execute(request);import requests
url = "https://mapi.storyblok.com/v1/spaces/288868932106293/workflows/656/duplicate"
querystring = {}
payload = {"workflow":{"content_types":["page_new"],"name":"duplicated page"}}headers = { 'Content-Type': "application/json", 'Authorization': "YOUR_OAUTH_TOKEN"}
response = requests.request("POST", url, data=payload, headers=headers, params=querystring)
print(response.text)require 'storyblok'client = Storyblok::Client.new(oauth_token: 'YOUR_OAUTH_TOKEN')
payload = {"workflow" => {"content_types" => ["page_new"],"name" => "duplicated page"}}
client.post('spaces/288868932106293/workflows/656/duplicate', payload)let storyblok = URLSession(storyblok: .mapi(accessToken: .oauth("YOUR_OAUTH_TOKEN")))var request = URLRequest(storyblok: storyblok, path: "spaces/288868932106293/workflows/656/duplicate")request.httpMethod = "POST"request.httpBody = try JSONSerialization.data(withJSONObject: [ "workflow": [ "content_types": [ "page_new", ], "name": "duplicated page", ],])let (data, _) = try await storyblok.data(for: request)print(try JSONSerialization.jsonObject(with: data))val client = HttpClient { install(Storyblok(MAPI)) { accessToken = OAuth("YOUR_OAUTH_TOKEN") }}
val response = client.post("spaces/288868932106293/workflows/656/duplicate") { setBody(buildJsonObject { putJsonObject("workflow") { putJsonArray("content_types") { add("page_new") } put("name", "duplicated page") } })}
println(response.body<JsonElement>())You will receive a workflows object as a response along with another property called workflow_stages - these workflow stages are inherited from the parent workflow.
Thanks! We received your feedback.
An error occurred. Please try again.
Was this page helpful?
This site uses reCAPTCHA and Google's Privacy Policy (opens in a new window) . Terms of Service (opens in a new window) apply.
Get in touch with the Storyblok community