Create a product tour
Creates the tour as a draft. Pass active: true to publish immediately — the tour must have at least one step and targeting set, otherwise it stays a draft and the response note explains why. The response includes a dashboardUrl for reviewing the tour in the builder.
Authorization
BearerAuth Use an API key from the Produktly dashboard → Settings → API keys.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/product-tours" \ -H "Content-Type: application/json" \ -d '{ "name": "Onboarding tour", "steps": [ { "type": "welcome", "title": "Welcome to Acme", "content": "Here is a two minute tour of the basics." }, { "type": "highlight", "domQuery": "[data-tour=\'inbox\']", "title": "Your inbox", "content": "New messages land here.", "direction": "bottom" } ], "targeting": { "showOnAllPages": true }, "settings": { "tourStart": "immediate", "trigger": "once" }, "active": true }'{ "id": 0, "name": "string", "active": true, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "folderId": 0, "themeId": 0, "steps": [ { "type": "highlight", "id": "string" } ], "settings": { "tourStart": "minified", "startDelay": 0, "trigger": "once", "saveProgress": true, "hideBeacon": true, "beaconPosition": "bottom-right", "multiPageEnabled": true, "timeout": 1, "allowClosingTour": true, "closeOnOutsideClick": true, "themeColor": "string", "textColor": "string", "nextBtnText": "string", "backBtnText": "string", "finishBtnText": "string", "startTourBtnText": "string", "continueTourBtnText": "string", "filterType": "string" }, "rules": [ { "type": "string", "comparisonOperator": "string", "value": null, "userSegmentId": 0 } ], "ruleLogicalOperator": "string", "dashboardUrl": "string", "note": "string"}