ataca/connect docs
Dashboard

Contacts & Templates

Managing contacts via API and creating message templates with per-channel bodies.

Contacts

Contacts represent the people you send messages to. Each contact can have a phone number, email address, and a custom reference ID.

Creating contacts

curl -X POST https://connect.ataca.io/v1/contacts \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"number": "+1234567890", "email": "[email protected]", "reference": "cust-001"}'
Field Type Description
number string Phone number for SMS/WhatsApp/Viber/Telegram
email string Email address for email channels
reference string Your own identifier (e.g., customer ID, order number)

At least one of number or email is required.

Uniqueness constraints

Contacts are scoped to your organization. Within an org:

  • number must be unique — no two contacts can share the same phone number
  • reference must be unique — no two contacts can share the same reference

Attempting to create a duplicate returns HTTP 409 Conflict.

Listing and fetching

# List with pagination
curl -H "Authorization: Bearer $API_KEY" "https://connect.ataca.io/v1/contacts?page=1&page_size=20"

# Get by ID
curl -H "Authorization: Bearer $API_KEY" https://connect.ataca.io/v1/contacts/01jqk...

Templates

Templates define the content of your messages. Each template has a name, description, and one or more per-channel bodies.

Structure

A template consists of:

  • Name — unique identifier used in the send API (e.g., welcome, order-confirmation)
  • Description — human-readable summary
  • Category — optional grouping (e.g., marketing, transactional)
  • Language — template language code (e.g., en)
  • Bodies — one per delivery channel, each with its own content and placeholders

Per-channel bodies

Each channel body contains markdown content tailored to that channel:

Channel Content format Notes
WhatsApp Plain text Subject to template approval by Meta
Viber Plain text —
SMS (Sinch/Plivo) Plain text Keep under 160 chars for single SMS
Email (SMTP) Markdown → HTML Rendered to both plain text and HTML
Telegram Markdown Telegram-flavored markdown

Placeholders

Use {{name}} syntax in template bodies for dynamic content:

Hello {{first_name}}, your order {{order_id}} is ready for pickup.

Required placeholders — {{name}} with no default. The send API returns an error if the placeholder value is missing from data.

Optional placeholders — {{name:"default"}} with an inline default. Uses the default when no value is provided:

Your discount is {{discount:"10%"}} — use code {{code:"WELCOME"}}.

Aggregated placeholders

The GET /v1/templates endpoint aggregates placeholders across all channel bodies. A placeholder is marked required: true if it appears without a default in any channel body.

Creating templates

Templates are managed through the dashboard template editor. Navigate to Templates and click Create Template.

The editor lets you:

  1. Set name, description, category, and language
  2. Add bodies for each delivery channel
  3. Write content with {{placeholder}} syntax
  4. Preview rendered output

Template editor

WhatsApp template approval

WhatsApp templates require approval from Meta before they can be used for delivery. After creating a template with a WhatsApp body, ATACA Connect submits it to the WhatsApp Cloud API for review. The approval status is tracked per-body:

Status Meaning
pending Submitted, awaiting Meta review
approved Approved and ready for delivery
rejected Rejected — check the reason and resubmit