WinFactor Docs

Contacts

Two-way contact synchronization

WinFactor auto-populates contacts from submissions; these endpoints keep them in sync with your CRM.

GET /contacts

Query params: email (exact match — the lookup you want before deciding to create), limit, cursor. Items:

{
  "id": "k44…", "name": "Jane Doe", "email": "[email protected]",
  "phone": "+31 6 …", "companyName": "Doe BV",
  "address": null, "postalCode": null, "city": null, "country": null,
  "isStarred": false, "submissionCount": 3, "externalRef": "hubspot:contact:3314",
  "lastUsedAt": 1781100202000, "createdAt": 1770000000000, "updatedAt": 1781100202000
}

POST /contacts

Upsert by email — idempotent, safe to fire on every CRM change:

curl -X POST -H "Authorization: Bearer $WF_API_KEY" -H "Content-Type: application/json" \
  https://app.winfactor.app/api/v1/contacts \
  -d '{ "email": "[email protected]", "name": "Jane Doe", "externalRef": "hubspot:contact:3314" }'
{ "email": "[email protected]", "name": "Jane Doe", "companyName": "Doe BV",
  "phone": "+31 6 …", "externalRef": "hubspot:contact:3314" }

Returns 201 with "created": true for new contacts, 200 with "created": false for updates.

GET /contacts/{id} · PATCH /contacts/{id}

PATCH accepts any subset of: name, phone, companyName, address, postalCode, city, country, externalRef.

On this page