Submit Email for Review
POST
/api/v1/workspaces/{workspace_id}/emails/{email_id}/approval_workflow
const url = 'https://example.com/%7B%7Bapp_url%7D/api/v1/workspaces/1/emails/1/approval_workflow';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"review_group_id":1,"resubmission":false}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/%7B%7Bapp_url%7D/api/v1/workspaces/1/emails/1/approval_workflow \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "review_group_id": 1, "resubmission": false }'Submits an email for review.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters”workspace_id
required
integer
Workspace ID
email_id
required
integer
Email ID
Request Body
Section titled “Request Body”Media typeapplication/json
object
review_group_id
The ID of the Review Group to assign for reviewing this email. Required unless resubmitting, in which case the existing Review Group is kept.
integer
Example
1resubmission
Whether this is a resubmission of a previously reviewed email (e.g. after addressing requested changes).
boolean
Example
falseResponses
Section titled “ Responses ”Successful
Media typeapplication/json
object
id
required
integer
email_id
required
integer
status
required
string
review_group_id
required
integer
creator_id
required
integer | null
creator
required
review_approvals
required
Array<object>
object
id
required
integer
approval_workflow_id
required
integer
decision
required
string
user_id
required
integer | null
review_group
required
object
id
required
integer
name
required
string
reusable
required
boolean
stages
required
Array<object>
object
position
required
integer
approval_type
required
string
Example
{ "id": 12345, "email_id": 12345, "status": "in_progress", "review_group_id": 12345, "creator_id": 12345, "creator": { "type": "User", "id": 12345, "first_name": "John", "last_name": "Smith", "profile_image_url": "https://example.com/profile.jpg" }, "review_approvals": [ { "id": 12345, "approval_workflow_id": 12345, "decision": "approved", "user_id": 12345, "user": { "type": "User", "id": 12345, "first_name": "John", "last_name": "Smith", "profile_image_url": "https://example.com/profile.jpg" } } ], "review_group": { "id": 12345, "name": "My Review Group", "reusable": false, "stages": [ { "position": 1, "approval_type": "one_of", "members": [ { "user_id": 12345, "user": { "type": "User", "id": 12345, "first_name": "John", "last_name": "Smith", "profile_image_url": "https://example.com/profile.jpg" } } ] } ] }}Unauthorized
Media typeapplication/json
object
message
required
string
code
string
Example
{ "message": "Record not found", "code": "share_link_expired"}Forbidden
Media typeapplication/json
object
message
required
string
code
string
Example
{ "message": "Record not found", "code": "share_link_expired"}Not Found
Media typeapplication/json
object
message
required
string
code
string
Example
{ "message": "Record not found", "code": "share_link_expired"}Unprocessable Entity
Media typeapplication/json
object
message
required
string
errors
required
object
key
additional properties
Array<string>
Example
{ "errors": { "username": [ "Username is required.", "Username must be unique." ], "email": [ "Invalid email format." ] }}