Duplicate a Workflow
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\"}}"// Using the Universal JavaScript Client:// https://github.com/storyblok/storyblok-js-clientStoryblok.post('spaces/288868932106293/workflows/656/duplicate', { "workflow": { "content_types": [ "page_new" ], "name": "duplicated page" }}) .then(response => { 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)var request = URLRequest(url: URL(string: "https://mapi.storyblok.com/v1/spaces/288868932106293/workflows/656/duplicate")!)request.setValue("YOUR_OAUTH_TOKEN", forHTTPHeaderField: "Authorization")request.httpMethod = "POST"request.httpBody = try JSONSerialization.data(withJSONObject: [ "workflow": [ "content_types": [ "page_new", ], "name": "duplicated page", ],])let (data, _) = try await URLSession.shared.data(for: request)print(try JSONSerialization.jsonObject(with: data))val client = HttpClient { install(ContentNegotiation) { json() } install(DefaultRequest) { url { takeFrom("https://mapi.storyblok.com/v1/") headers.append("Authorization", "YOUR_OAUTH_TOKEN") } }}
val response = client.post("spaces/288868932106293/workflows/656/duplicate") { contentType(ContentType.Application.Json) 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.
Was this page helpful?
This site uses reCAPTCHA and Google's Privacy Policy. Terms of Service apply.
Get in touch with the Storyblok community