Skip to content

Create Component

POST
/api/v1/workspaces/{workspace_id}/email_design_systems/{emailDesignSystemId}/components

Creates a new component.

workspace_id
required
integer

Workspace ID

emailDesignSystemId
required
integer

Email Design System ID

object
name
required

A unique identifier for the component (used in code/templates).

string
Example
hero_banner
label
required

The human-readable display name of the component.

string
Example
Hero Banner
template
required

The Liquid HTML template for the component.

string
Example
<tr><td style="padding: 20px;"><h1>{{title}}</h1><p>{{description}}</p></td></tr>
field_definitions
required
Array
One of:
object
type
required
string
Allowed values: text
label
required
string
group

An optional label used to group related fields together in the editor.

string
nullable
Example
Styling
liquid_variable
required

The Liquid variable name used to reference this field in templates.

string
Example
heading_text
visible_if

A Liquid expression (without the surrounding {% %}) that determines when this field is visible in the editor.

string
Example
show_heading == true
default_value
required
string
validations
object
min_length
integer
max_length
integer
must_not_be_blank
boolean
must_not_be_default
boolean
hint

Helper text displayed below the field in the editor.

string
Example
Keep this short and punchy
hidden_in_editor

Whether this field is hidden from the editor UI.

boolean
hidden_from_ai

Whether this field is hidden from AI Agents.

boolean
feed_field_name

The name of the feed field that populates this field’s value. If null, this field is not populated from a feed.

string
nullable
feed_id

The ID of the data feed to associate with this component. If null, no feed is linked.

integer
nullable
Example
1
deprecated
boolean

Successful

object
name
required
string
Example
MyComponent
label
required
string
Example
My Component
description
required
string
nullable
Example
A hero banner image with a headline and image, body text and a call to action button.
email_design_system_id
required
integer
Example
12345
updated_at
required
string format: date-time
Example
2023-08-23T10:30:00.000Z
created_at
required
string format: date-time
Example
2023-08-23T10:30:00.000Z
container
boolean
nullable
template
required
string
Example
<div>My Component</div>
field_definitions
required
Array
One of:
object
type
required
string
Allowed values: text
label
required
string
group

An optional label used to group related fields together in the editor.

string
nullable
Example
Styling
liquid_variable
required

The Liquid variable name used to reference this field in templates.

string
Example
heading_text
visible_if

A Liquid expression (without the surrounding {% %}) that determines when this field is visible in the editor.

string
Example
show_heading == true
default_value
required
string
validations
object
min_length
integer
max_length
integer
must_not_be_blank
boolean
must_not_be_default
boolean
hint

Helper text displayed below the field in the editor.

string
Example
Keep this short and punchy
hidden_in_editor

Whether this field is hidden from the editor UI.

boolean
hidden_from_ai

Whether this field is hidden from AI Agents.

boolean
feed_field_name

The name of the feed field that populates this field’s value. If null, this field is not populated from a feed.

string
nullable
screenshot_url
required
string
Example
https://www.example.com/screenshot.png
position
required
integer
nullable
Example
1
last_updated_by
required
object
id
required
integer
Example
12345
first_name
required
string
Example
John
last_name
required
string
Example
Smith
profile_image_url
required
string
nullable
Example
https://example.com/profile.jpg
feed_id
required
integer
nullable
Example
12345
deprecated
required
boolean

Unauthorized

object
message
required
string
Example
Record not found

Forbidden

object
message
required
string
Example
Record not found

Unprocessable Entity

object
message
required
string
Example
Failed to save
errors
required
object
key
additional properties
Array<string>
Example
{
"errors": {
"username": [
"Username is required.",
"Username must be unique."
],
"email": [
"Invalid email format."
]
}
}