Wsla Zapier API Documentation

This document covers the production API endpoints currently used by the published Wsla Zapier integration. Current integration scope: connection authentication and the New Customer Message trigger.

Overview

Base URL: https://api.wsla.io

Environment: Production Auth: API Key Format: JSON

The current public Wsla Zapier integration uses two endpoints:

  • GET /zapier/contacts for connection testing
  • GET /zapier/events for the message.customer.created polling trigger

Authentication

Wsla authenticates Zapier requests using a workspace-specific API key generated from Wsla > Integrations > Zapier.

Supported headers

Authorization: Bearer wsla_zap_xxxxxxxxxxxxxxxxx
Accept: application/json

Alternative header:

x-api-key: wsla_zap_xxxxxxxxxxxxxxxxx
Accept: application/json

Endpoints used by the current Zapier integration

Method Path Used for
GET /zapier/contacts Connection test during account authentication
GET /zapier/events Polling trigger for new customer messages

GET /zapier/contacts

Returns contacts in the authenticated Wsla workspace.

Query parameters

NameTypeRequiredDescription
limitintegerNoMaximum records to return. Default 50.
offsetintegerNoPagination offset. Default 0.
created_afterISO 8601 datetimeNoReturn contacts created on or after this timestamp.
updated_afterISO 8601 datetimeNoReturn contacts updated on or after this timestamp.

Example request

curl -X GET "https://api.wsla.io/zapier/contacts?limit=1"   -H "x-api-key: wsla_zap_xxxxxxxxxxxxxxxxx"   -H "Accept: application/json"

Response

{
  "contacts": [
    {
      "id": 611998,
      "name": "Ahmed Ali",
      "number": "201001234567",
      "email": "ahmed@example.com",
      "channel": "whatsapp_oficial",
      "active": true,
      "disableBot": false,
      "isGroup": false,
      "birthDate": null,
      "lastInteractionClient": "2026-03-22T05:48:07.000Z",
      "createdAt": "2026-03-21T10:14:00.000Z",
      "updatedAt": "2026-03-22T05:48:07.000Z",
      "tags": [],
      "extraInfo": []
    }
  ],
  "meta": {
    "limit": 1,
    "offset": 0,
    "count": 1
  }
}

GET /zapier/events

Returns outbound Wsla events for polling. The current published Zapier trigger uses eventType=message.customer.created.

Query parameters

NameTypeRequiredDescription
eventTypestringNoFilter by event type. Current published app uses message.customer.created.
sinceISO 8601 datetimeNoReturn events created on or after this timestamp.
limitintegerNoMaximum records to return. Default 100, max 500.

Example request

curl -X GET "https://api.wsla.io/zapier/events?eventType=message.customer.created&limit=50"   -H "x-api-key: wsla_zap_xxxxxxxxxxxxxxxxx"   -H "Accept: application/json"

Response

{
  "events": [
    {
      "id": 24,
      "eventType": "message.customer.created",
      "resourceType": "message",
      "resourceId": "2867236",
      "dedupKey": "message.customer.created:wamid.sample",
      "createdAt": "2026-03-22T05:48:10.423Z",
      "payload": {
        "id": 2867236,
        "wid": "wamid.sample",
        "ticketId": 594008,
        "contactId": 611998,
        "contactName": "Ahmed Ali",
        "contactNumber": "201001234567",
        "contactEmail": "ahmed@example.com",
        "contact": {
          "id": 611998,
          "name": "Ahmed Ali",
          "number": "201001234567",
          "email": "ahmed@example.com"
        },
        "whatsappId": 43,
        "whatsappName": "Main Official",
        "whatsappNumber": "9665580584911",
        "whatsappChannel": "whatsapp_oficial",
        "whatsapp": {
          "id": 43,
          "name": "Main Official",
          "number": "9665580584911",
          "channel": "whatsapp_oficial"
        },
        "body": "مرحبا",
        "fromMe": false,
        "read": false,
        "mediaType": "text",
        "mediaUrl": null,
        "reaction": null,
        "templateId": null,
        "templateMetaId": null,
        "quotedMsgId": null,
        "channel": "whatsapp_oficial",
        "createdAt": "2026-03-22T05:48:07.000Z"
      }
    }
  ]
}

Event types currently emitted

  • message.customer.created
  • contact.created
  • ticket.created
  • ticket.updated
  • ticket.closed

The currently published Zapier integration uses only message.customer.created.

Errors

StatusCodeDescription
401ERR_ZAPIER_API_KEY_REQUIREDNo API key was provided.
401ERR_ZAPIER_API_KEY_INVALIDThe API key is invalid or revoked.
4xx / 5xxWSLA_API_ERRORGeneric upstream error returned to the Zapier app.

Operational notes

  • All endpoints return JSON.
  • Dates are returned in ISO 8601 format.
  • dedupKey should be used by polling clients to prevent duplicate processing.
  • Per-key event scoping may restrict /zapier/events results to selected WhatsApp connections.

Last updated: 2026-03-27