{% extends "layouts/workspace_settings.html" %} {% block title %}WhatsApp templates · DemandTrail Messaging{% endblock %} {% block page_header %}

WhatsApp message templates

{% endblock %} {% block content %}

More than 24 hours after a contact's last message, WhatsApp accepts nothing but a template Meta has already approved. Write one here, submit it, and it becomes available to flows and broadcasts once the review comes back.

{% if not connections %}

No WhatsApp number is connected yet, so there is nothing to submit a template against.

{% endif %}

New template · Cost estimates ({{ cost_hint.currency }}, estimates only, never metered)

{% if templates %} {% for row in templates %} {% endfor %}
NameLanguageCategoryNumberVariablesStatus
{{ row.template.name }} {{ row.template.language }} {{ row.template.get_category_display }}
≈ {{ cost_hint.currency }} {{ row.cost }} per message
{{ row.template.channel_connection.display_name }} {% if row.slots %} {% for slot in row.slots %}{{ slot }}{% if not forloop.last %} {% endif %}{% endfor %} {% else %} None {% endif %} {{ row.template.get_status_display }} {% comment %} Meta's stated reason, escaped like every other provider-supplied string (SECURITY-BASELINE §2). Never mark_safe. {% endcomment %} {% if row.template.rejected_reason %}
{{ row.template.rejected_reason }} {% endif %}
{% if row.template.status == "draft" or row.template.status == "rejected" %} Edit
{% csrf_token %}
{% endif %}
{% csrf_token %}
{% else %}

No templates yet.

{% endif %}

What review is like

Meta usually answers within minutes, occasionally within a day. DemandTrail Messaging Chat checks every hour and notifies workspace admins when the answer arrives; a rejected template shows Meta's reason above and can be edited and resubmitted. Marketing templates are reviewed most strictly and cost the most to send.

{% endblock %}