Integrations

Connect with Zapier.

The Standwyse Zapier app links your exhibitor roster to the 6,000+ apps Zapier supports — no code. Push exhibitors into Standwyse from a CRM, a form, or a spreadsheet, and start a Zap whenever a new exhibitor appears in Standwyse.

What the app does

The Zapier app is a thin wrapper over the Standwyse ingestion API. It exposes one action and one trigger:

  • Action — Create or Update Exhibitor. Any Zap can map a record (a new CRM deal, a row added to a sheet, a form submission) onto an exhibitor in Standwyse. It upserts by external_id, so re-runs update rather than duplicate.
  • Trigger — New Exhibitor. Polls Standwyse and fires for each newly added exhibitor, so you can fan changes out to your CRM, a Slack channel, or a welcome email.

Authentication

The app authenticates with a per-tenant API key — the same swk_live_ key the ingestion API uses. Generate one from the organiser Exhibitors page; it is shown once, so copy it somewhere safe. When Zapier asks for it, paste it as the API key — Zapier sends it as a bearer token on every call:

Authorization header
Authorization: Bearer swk_live_your_key_here

Zapier verifies the key against GET /api/ingest/me, which returns the organisation the key belongs to and labels the connection. A key only ever sees its own organisation’s data, and you can revoke it at any time from the same page — a revoked key immediately returns 401.

Connection test
curl https://standwyse.com/api/ingest/me \
  -H "Authorization: Bearer swk_live_your_key_here"
# { "organisation_id": "…", "organisation_name": "Aurora Events", "key_label": "Zapier" }

Set up a Zap

  1. Generate an API key
    On the organiser Exhibitors page, create an ingestion key labelled “Zapier” and copy it.
  2. Connect Standwyse in Zapier
    Add Standwyse as an app, paste the key, and let Zapier run the connection test.
  3. Pick an action or trigger
    Use “Create or Update Exhibitor” to push data in, or “New Exhibitor” to start a Zap when one is added.
  4. Map your fields
    Map your source record onto external_id, account_name, and the optional fields, and choose the target event_slug.

Action — Create or Update Exhibitor

Under the hood the action POSTs one exhibitor to /api/ingest/exhibitors for a given event_slug. external_id (your stable id) and account_name are required; contact_email, reference_code, package_name, and status are optional. Because the upsert keys on external_id, a Zap that re-fires for the same record updates the existing account instead of creating a duplicate.

What the action sends
curl -X POST https://standwyse.com/api/ingest/exhibitors \
  -H "Authorization: Bearer swk_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "event_slug": "aurora-tech-expo",
    "exhibitors": [
      {
        "external_id": "crm-8842",
        "account_name": "Helix Robotics Ltd",
        "contact_email": "ops@helixrobotics.example.com"
      }
    ]
  }'

Trigger — New Exhibitor (polling)

The trigger polls GET /api/ingest/exhibitors, which returns your organisation’s exhibitors newest first. Zapier dedupes on id, so each exhibitor starts a Zap exactly once. Add ?event_slug= to watch a single event, and ?limit= (1–100, default 50) to bound each poll.

What the trigger reads
curl "https://standwyse.com/api/ingest/exhibitors?event_slug=aurora-tech-expo&limit=50" \
  -H "Authorization: Bearer swk_live_your_key_here"
# [
#   {
#     "id": "3f1c1d2e-9b7a-4c54-9a1e-2b6d8f0a1c33",
#     "external_id": "crm-8842",
#     "account_name": "Helix Robotics Ltd",
#     "contact_email": "ops@helixrobotics.example.com",
#     "reference_code": "EX-204",
#     "package_name": "Premium 6x4",
#     "status": "active",
#     "event_slug": "aurora-tech-expo",
#     "created_at": "2026-06-25T09:12:00.000Z",
#     "updated_at": "2026-06-25T09:12:00.000Z"
#   }
# ]

Rate limits & retries

Both the action and the trigger share the ingestion API’s per-key hourly limit; reads and writes are metered separately so a busy poll never blocks your imports. If a call is throttled it returns 429 with a Retry-After header, which Zapier honours automatically. Because every write is idempotent, a retried action is always safe. The full machine-readable contract — every field, status code, and an interactive console — is the API reference.