Get journey editor options
Returns organization-specific trigger, field, assignee, template and editor catalogs. Event and sponsorship choices follow workspace feature flags; this endpoint additionally checks journeys_view, journeys_manage or group_all.
curl --request GET \
--url https://api.gratona.com/v1/admin/journeys/options \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.gratona.com/v1/admin/journeys/options"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.gratona.com/v1/admin/journeys/options', 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.gratona.com/v1/admin/journeys/options",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.gratona.com/v1/admin/journeys/options"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.gratona.com/v1/admin/journeys/options")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gratona.com/v1/admin/journeys/options")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"entity_types": [
{}
],
"statuses": [
{}
],
"step_types": [
{}
],
"message_channels": [
{}
],
"templates": [
{}
],
"features": {},
"trigger_events": {},
"blank_blueprints": {},
"reference_options": {},
"message_template_editor": {},
"message_templates": {
"email": [
{
"id": 42,
"value": 42,
"label": "Welcome message",
"channel": "email",
"scope_type": "journeys_library",
"set_id": 42,
"set_name": "Example",
"configured": false,
"enabled": false,
"last_updated_at": "2026-10-20T12:00:00Z",
"template_family": "journey_library",
"trigger": "journey_template:welcome",
"subject": "Welcome",
"body": "Hello {{first_name}}",
"body_preview": "Hello Jane",
"editor_mode": "email",
"has_design": false,
"source_scope_label": "Journeys library",
"shared_live_link_warning": "Editing this source updates every journey step that is still live-linked to it.",
"impact_story_ids": [
42
],
"design": "<unknown>",
"merge_schema": [
{}
],
"merge_tags": {},
"preview_context": {},
"preview_subject": "Welcome Jane",
"preview_html": "<p>Hello Jane</p>",
"from_label": "Example Foundation"
}
],
"sms": [
{
"id": 42,
"value": 42,
"label": "Welcome message",
"channel": "email",
"scope_type": "journeys_library",
"set_id": 42,
"set_name": "Example",
"configured": false,
"enabled": false,
"last_updated_at": "2026-10-20T12:00:00Z",
"template_family": "journey_library",
"trigger": "journey_template:welcome",
"subject": "Welcome",
"body": "Hello {{first_name}}",
"body_preview": "Hello Jane",
"editor_mode": "email",
"has_design": false,
"source_scope_label": "Journeys library",
"shared_live_link_warning": "Editing this source updates every journey step that is still live-linked to it.",
"impact_story_ids": [
42
],
"design": "<unknown>",
"merge_schema": [
{}
],
"merge_tags": {},
"preview_context": {},
"preview_subject": "Welcome Jane",
"preview_html": "<p>Hello Jane</p>",
"from_label": "Example Foundation"
}
]
},
"message_template_setup": {
"ready": false,
"needs_provisioning": false,
"email_ready": false,
"sms_ready": false,
"supports_sms": false,
"missing": [
"email"
],
"counts": {
"email": 42,
"sms": 42
},
"sets": {
"email": {
"id": 42,
"name": "Journeys Email Templates",
"channel": "email"
},
"sms": {
"id": 42,
"name": "Journeys Email Templates",
"channel": "email"
}
}
},
"supports_sms": false
}{
"message": "Something went wrong. Please try again.",
"status": "error",
"error": "invalid_request",
"code": "DONOR_NOT_FOUND"
}{
"message": "Something went wrong. Please try again.",
"status": "error",
"error": "invalid_request",
"code": "DONOR_NOT_FOUND"
}{
"errors": {},
"status": "error",
"message": "The given data was invalid."
}Authorizations
Passport bearer token authentication for legacy admin sessions.
Query Parameters
Journey subject type; sponsorship availability follows the workspace lifecycle feature flag.
donor, trip_participant, entity, sponsorship, null "donor"
Include merge-tag editor contexts; default true.
true
Response
Get journey editor options completed.
System automation capability flags and sponsorship lifecycle availability.
Event choices grouped by subject type.
Blank graph blueprints grouped by subject type.
Events, tags, donor_form_fields, journey_fields, field_value_options, notification_recipients, task_assignees and trigger_filter_schemas. Values depend on organization fields and enabled features.
Editor contexts by subject type; empty when include_editor_context=false.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Whether the SMS subsystem is available.
false
curl --request GET \
--url https://api.gratona.com/v1/admin/journeys/options \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.gratona.com/v1/admin/journeys/options"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.gratona.com/v1/admin/journeys/options', 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.gratona.com/v1/admin/journeys/options",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.gratona.com/v1/admin/journeys/options"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.gratona.com/v1/admin/journeys/options")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gratona.com/v1/admin/journeys/options")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"entity_types": [
{}
],
"statuses": [
{}
],
"step_types": [
{}
],
"message_channels": [
{}
],
"templates": [
{}
],
"features": {},
"trigger_events": {},
"blank_blueprints": {},
"reference_options": {},
"message_template_editor": {},
"message_templates": {
"email": [
{
"id": 42,
"value": 42,
"label": "Welcome message",
"channel": "email",
"scope_type": "journeys_library",
"set_id": 42,
"set_name": "Example",
"configured": false,
"enabled": false,
"last_updated_at": "2026-10-20T12:00:00Z",
"template_family": "journey_library",
"trigger": "journey_template:welcome",
"subject": "Welcome",
"body": "Hello {{first_name}}",
"body_preview": "Hello Jane",
"editor_mode": "email",
"has_design": false,
"source_scope_label": "Journeys library",
"shared_live_link_warning": "Editing this source updates every journey step that is still live-linked to it.",
"impact_story_ids": [
42
],
"design": "<unknown>",
"merge_schema": [
{}
],
"merge_tags": {},
"preview_context": {},
"preview_subject": "Welcome Jane",
"preview_html": "<p>Hello Jane</p>",
"from_label": "Example Foundation"
}
],
"sms": [
{
"id": 42,
"value": 42,
"label": "Welcome message",
"channel": "email",
"scope_type": "journeys_library",
"set_id": 42,
"set_name": "Example",
"configured": false,
"enabled": false,
"last_updated_at": "2026-10-20T12:00:00Z",
"template_family": "journey_library",
"trigger": "journey_template:welcome",
"subject": "Welcome",
"body": "Hello {{first_name}}",
"body_preview": "Hello Jane",
"editor_mode": "email",
"has_design": false,
"source_scope_label": "Journeys library",
"shared_live_link_warning": "Editing this source updates every journey step that is still live-linked to it.",
"impact_story_ids": [
42
],
"design": "<unknown>",
"merge_schema": [
{}
],
"merge_tags": {},
"preview_context": {},
"preview_subject": "Welcome Jane",
"preview_html": "<p>Hello Jane</p>",
"from_label": "Example Foundation"
}
]
},
"message_template_setup": {
"ready": false,
"needs_provisioning": false,
"email_ready": false,
"sms_ready": false,
"supports_sms": false,
"missing": [
"email"
],
"counts": {
"email": 42,
"sms": 42
},
"sets": {
"email": {
"id": 42,
"name": "Journeys Email Templates",
"channel": "email"
},
"sms": {
"id": 42,
"name": "Journeys Email Templates",
"channel": "email"
}
}
},
"supports_sms": false
}{
"message": "Something went wrong. Please try again.",
"status": "error",
"error": "invalid_request",
"code": "DONOR_NOT_FOUND"
}{
"message": "Something went wrong. Please try again.",
"status": "error",
"error": "invalid_request",
"code": "DONOR_NOT_FOUND"
}{
"errors": {},
"status": "error",
"message": "The given data was invalid."
}