Skip to main content

Creating Contact API — How to Find the ID

Written by Paul

User's ID

Go to Settings ➡️ Users ➡️ All Users ➡️ Click Specific User

(Optional) Leave the assignee blank for auto-assignment based on campaign round robin setting if any, or 'none' to unassign.

Campaign ID

Go to the Campaigns ➡️ Click one of the campaigns

Pipeline ID

Go to Settings ➡️ Pipeline ➡️ Click one of the pipelines

Stage ID

Go to Settings ➡️ Right-click the page and open "inspect" ➡️ Click the pipeline ➡️ Click Fetch/ XHR ➡️ Search Pipeline ➡️ Click the code under the "name" ➡️ Click "Response" ➡️ Find the stage Name ➡️ Check the ID


Custom Info ID

Go to Settings ➡️ Right-click the page and open "inspect" ➡️ Click the Custom Field ➡️ Click Fetch/ XHR ➡️ Search "custom" ➡️ Click the code under the "name" ➡️ Click "Response" ➡️ Find "idCustomField" ➡️ Check the ID

Tag ID

Go to Settings ➡️ Right-click the page and open "inspect" ➡️ Click the Tag ➡️ Click Fetch/ XHR ➡️ Search "tag - item" ➡️ Click the code under the "name" ➡️ Click "Response" ➡️ Find "tag_id" ➡️ Check the ID



Contact ID VS Identifier Number

Overview

In WooSender, the Contact ID is a unique identifier assigned to each contact in the system. However, depending on the API endpoint you use, this identifier may appear under different field names.

Understanding this difference is important when integrating or automating workflows.


1. Using the “Find Contact” API

When you use the Find Contact API, the response includes a field explicitly labeled:

  • contactId → This is the unique Contact ID

Example Response:

{

"contactId": "123456789",

"name": "John Doe",

"email": "john@example.com"

}

Key Point:

  • The field is clearly named contactId

  • This is the standard identifier you should store and reuse


2. Using the “Create Contact” API

When you create a new contact using the Create Contact API, the Contact ID is not labeled as contactId.

Instead, it appears as:

  • identifierNumber

Example Response:

{

"identifierNumber": "123456789",

"name": "John Doe",

"email": "john@example.com"

}

Key Point:

  • identifierNumber = Contact ID

  • It represents the same value as contactId, just under a different field name


3. Using the “Create Appointment” API

Similarly, when creating an appointment, the contact reference is returned as:

  • identifierNumber

Example:

{

"appointmentId": "987654321",

"identifierNumber": "123456789"

}

Key Point:

  • Again, identifierNumber is the Contact ID

  • This links the appointment to the contact


4. Summary Mapping

API Endpoint

Field Name

Meaning

Find Contact

contactId

Contact ID

Create Contact

identifierNumber

Contact ID

Create Appointment

identifierNumber

Contact ID


5. Best Practice

  • Always treat contactId and identifierNumber as the same value

  • When building integrations:

    • Normalize the field to a single internal name (e.g., contact_id)

    • Store it consistently regardless of the source endpoint


6. Recommended Approach in Automation (e.g., Zapier)

  1. If using Find Contact → map contactId

  2. If using Create Contact / Appointment → map identifierNumber

  3. Store the value in a single variable (e.g., contact_id)

  4. Use that variable in downstream steps

Did this answer your question?