VitePOS Bridge icon

VitePOS Bridge

Use VitePOS automation bridge and analytics APIs

Customer → Upsert Customer

AI-generated

Summary

Creates or updates a customer in VitePOS via the bridge's POST /wp-json/vtab/v1/customers/upsert endpoint, using either individual fields or a raw JSON body.

Inputs

  • Input Mode — 'Use Fields' (default) builds the body from Customer Fields; 'Advanced JSON' sends the JSON Body as-is.
  • Customer Fields — Collection shown in Fields mode. Options: id, external_id, email, first_name, last_name, phone, company, address_1, address_2, city, state, postcode, country, and dry_run. Only filled values are sent (empty strings are skipped). Which fields the server uses to match an existing customer isn't defined in the node, so check the bridge's behavior.
  • Dry Run — Inside Customer Fields. When true, adds dry_run: true to the request, so the bridge can validate the request without saving (server-side behavior).
  • JSON Body — Shown in Advanced JSON mode. Custom request body, as a JSON string or object. Invalid JSON throws an error. Defaults to {"dry_run": true}.

Output shape

One item per input item. The JSON is the bridge API response, with a human-readable response string added at the top (e.g. 'Customer request completed.').

If the API response already has a response key, the original is placed under raw. If the bridge returns status/success false, the response text is its message. With Continue On Fail, failed items return {error: message}. An empty body is sent as no body at all.

Examples

Example 1: Sync a CRM contact into VitePOS as a customer

Input Mode: Use Fields; Customer Fields: external_id, email, first_name, last_name, phone set from expressions.

Example 2: Test a customer payload without saving

Customer Fields: email plus Dry Run enabled.

Example 3: Send a custom payload

Input Mode: Advanced JSON; JSON Body: {"email":"a@b.com","first_name":"Ann","city":"Lagos"}.

Links

Discussion