ACTION_ID: engagebay_upsert_contact NAME: Engagebay: Create or Update Contact CATEGORY: CRM CREDITS: 0 Create a new EngageBay contact, or update an existing one when a contact ID is supplied. Property values are written through a single properties array. PREREQUISITE: EngageBay account connection — the user must create it in the Floqer UI (Connections page); an agent cannot. Without it the action fails the row with a connection / authentication error. Confirm it exists before configuring. 1. INPUTS contact_id (string, required) Contact Id. Enter Id of an existing contact to update or leave blank to create a new one existing_properties (raw_array, optional) Existing Properties. Update existing properties of the contact 2. OUTPUTS (none — this action writes to the destination and returns no fields) 3. HOW TO CONFIGURE Configure Action body — create: { "inputs": { "contact_id": "", "existing_properties": [ { "name": "email", "value": "{{person_work_email_waterfall_01ab.work_email}}" }, { "name": "first_name", "value": "{{input.first_name}}" }, { "name": "company", "value": "{{input.company_name}}" } ] } } Configure Action body — update: { "inputs": { "contact_id": "{{input.engagebay_contact_id}}", "existing_properties": [ { "name": "last_name", "value": "{{input.last_name}}" } ] } } Field-by-field: - contact_id Leave empty to create; supply an existing EngageBay contact ID to update that record. - existing_properties `[{name, value}]` against EngageBay's property names. 4. KEY NOTES - `contact_id` is marked required on the template but an empty string is the documented way to create a new contact — pass `""` rather than omitting the field. - `existing_properties` has no dynamic-options resolver — Get Action Field Options returns a 400. Read property names from the EngageBay UI. - This action returns no output fields, so the new contact's ID is not available downstream. Store your own key on the row if you need to update the contact later. - Update mode is a partial write — properties you do not list are left as they are. 5. WHERE IT FITS IN A WORKFLOW Pattern: person_work_email_waterfall -> filter (work_email is not empty) -> engagebay_upsert_contact. Terminal step. 6. WHEN TO USE Use engagebay_upsert_contact when EngageBay is the CRM and you want enriched rows written back into it. 7. WHEN NOT TO USE The CRM is HubSpot -> action-detail/hubspot_upsert_object.txt Need the created record's ID downstream -> action-detail/hubspot_create_object.txt Last updated: 2026-08-03.