Skip to content

Preview template text

Open .md

POST/v2/api/store/{team_slug}/setting/message_template/preview

v2Operation ID v2_public_message_template_preview

Renders template text you are writing, before you save it: send the type, body and optional subject. Returns the finished message (data): HTML for email types, plain text for the three text-message types, plus the filled-in subject and body. subject is an empty string for every type but the three system ones.

Without object_id, YoPrint fills the placeholders with made-up sample data. With object_id, it uses that sales order, quote or purchase order.

Nothing is saved and nothing is sent.

Permission

Any member of the team. With object_id, no permission on that record is checked. AI apps can't send object_id (they preview on sample data only), and their Liquid is checked first.

Path parameters

  • team_slugstringrequired

    Your team slug, shown as Team ID next to your API key in Profile.

    • Example your-team

Request body

application/json, required.

  • bodystringrequired

    Liquid.

  • typestringrequired
    • One of: "new_sales_order_message", "new_quote_message", "purchase_order", "sales_order_message", "sales_order_text_message", "quote_message", "quote_text_message", "purchase_order_message", "purchase_order_text_message"
  • object_idstring

    Optional: a record of your team to fill the placeholders from. Without it, sample data is used.

  • optionsobject

    Email button settings. Accepted but, in practice, not saved: YoPrint keeps them only on a template that already has button settings, and templates made through the API or by YoPrint have none. They are not returned when you read a template. Preview does use them.

    Child fields (3)
  • subjectstring

    Liquid.

Response

200Successful response.

  • dataobjectrequired
    Child fields (3)
    • bodystringrequired
    • datastringrequired

      The whole message: HTML for email types, plain text for text-message types.

    • subjectstringrequired

      The filled-in subject. An empty string for types without a subject line (all but the three system types).

  • statusintegerrequired
  • successbooleanrequired

Errors

  • 401The API key is missing or wrong (unauthenticated).

  • 403You are not allowed to do this. api_access_not_in_plan: your team's plan doesn't include API access (Pro and above, with an active subscription or trial), so every request answers this until the team upgrades. When your role lacks the permission the operation needs, the body is only {"message": "Insufficient Permission"}. Other refusals use the error envelope, with unauthorized or user_is_not_authorized.

  • 404Not found. page_not_found: the team slug is unknown, you are not a member of the team, or an id in the path is not one of this team's. code: null, with a message that starts "No query results for": there is no record with that id.

  • 422The request was refused and changed nothing. validation_failed lists what to fix in error.fields; other codes name a business rule, explained in error.message. A few checks answer with only {"message": "..."}. An operation that calls another service (a payment provider, a carrier, an accounting app) can answer connect_timeout ("Please retry again") when that service does not answer in time: the change may or may not have happened there, so read the record back before you retry.

    When
    body or type is missing or the Liquid is invalid (validation_failed); type is unknown (invalid_type); or object_id is not a record of your team (preview_failed).
    Fix
    Check the type, the template text and the record id.