Send Contact Message
Sends contact information as a vCard via the WhatsApp Business Cloud API. Recipients can save the contact directly to their phone.
Common Properties
- Name - The custom name of the node.
- Color - The custom color of the node.
- Delay Before (sec) - Waits in seconds before executing the node.
- Delay After (sec) - Waits in seconds after executing node.
- Continue On Error - Automation will continue regardless of any error. The default value is false.
If the ContinueOnError property is true, no error is caught when the project is executed, even if a Catch node is used.
Inputs
- Phone Number ID - WhatsApp Business Phone Number ID from Meta Developer Portal.
- To Phone Number - Recipient's phone number with country code (without + sign). Example:
1234567890. - Contacts - Array of contact objects or single contact object to send as vCard.
Options
- API Version - Meta Graph API version. Default is
21.0. - Access Token - WhatsApp Cloud API Access Token credential (required).
Output
- Response - The complete API response object containing message details and status.
How It Works
The Send Contact Message node sends contact information in vCard format. When executed, the node:
- Validates all required inputs
- Parses the contact data (supports single contact or array)
- Constructs contact objects with name, phones, emails, addresses, etc.
- Builds the vCard message payload
- Sends a POST request to the WhatsApp API
- Returns the API response
Requirements
- A WhatsApp Business Account in Meta Developer Portal
- Access Token with appropriate permissions
- Valid contact object(s) with at least a formatted name
- Properly structured contact data
Contact Object Structure
A contact object can include the following fields:
{
"name": {
"formatted_name": "John Doe",
"first_name": "John",
"last_name": "Doe",
"middle_name": "Michael",
"suffix": "Jr.",
"prefix": "Mr."
},
"phones": [
{
"phone": "14155551234",
"type": "WORK",
"wa_id": "14155551234"
}
],
"emails": [
{
"email": "john@example.com",
"type": "WORK"
}
],
"addresses": [
{
"street": "123 Main St",
"city": "San Francisco",
"state": "CA",
"zip": "94103",
"country": "United States",
"country_code": "US",
"type": "WORK"
}
],
"org": {
"company": "Acme Corp",
"department": "Sales",
"title": "Sales Manager"
},
"urls": [
{
"url": "https://www.example.com",
"type": "WORK"
}
],
"birthday": "1990-05-15"
}
Minimum Contact Structure
At minimum, a contact must have a formatted name:
{
"name": {
"formatted_name": "John Doe"
}
}
Or simplified:
{
"formatted_name": "John Doe"
}
Error Handling
The node will return specific errors in the following cases:
- Empty or invalid Phone Number ID
- Empty or invalid recipient phone number
- Empty contacts data
- Missing formatted name in contact
- Malformed contact object
- Invalid access token
- Network connectivity issues
Example: Simple Contact
Inputs:
- Phone Number ID:
123456789012345 - To Phone Number:
14155551234 - Contacts:
{
"name": {
"formatted_name": "John Doe"
},
"phones": [
{
"phone": "14155556789",
"type": "CELL"
}
]
}
Example: Business Contact
Inputs:
- Phone Number ID:
123456789012345 - To Phone Number:
14155551234 - Contacts:
{
"name": {
"formatted_name": "Jane Smith",
"first_name": "Jane",
"last_name": "Smith",
"prefix": "Dr."
},
"phones": [
{
"phone": "14155551111",
"type": "WORK"
},
{
"phone": "14155552222",
"type": "CELL"
}
],
"emails": [
{
"email": "jane.smith@company.com",
"type": "WORK"
}
],
"org": {
"company": "Tech Solutions Inc",
"department": "Engineering",
"title": "Chief Technology Officer"
},
"urls": [
{
"url": "https://techsolutions.com",
"type": "WORK"
}
]
}
Example: Multiple Contacts
Inputs:
- Phone Number ID:
123456789012345 - To Phone Number:
14155551234 - Contacts:
[
{
"name": {
"formatted_name": "Sales Department"
},
"phones": [
{
"phone": "14155551000",
"type": "WORK"
}
],
"emails": [
{
"email": "sales@company.com",
"type": "WORK"
}
]
},
{
"name": {
"formatted_name": "Support Department"
},
"phones": [
{
"phone": "14155552000",
"type": "WORK"
}
],
"emails": [
{
"email": "support@company.com",
"type": "WORK"
}
]
}
]
Phone Types
Supported phone types:
CELL- Mobile/cellular phoneMAIN- Main phone numberIPHONE- iPhone specificHOME- Home phoneWORK- Work phone
Email Types
Supported email types:
WORK- Work emailHOME- Home emailINTERNET- Generic internet email
Address Types
Supported address types:
WORK- Work addressHOME- Home address
URL Types
Supported URL types:
WORK- Work websiteHOME- Personal website
Usage Notes
- Recipients can save contacts directly to their phone
- Contact appears as a vCard that can be tapped to save
- Multiple contacts can be sent in a single message
- Formatted name is required, all other fields are optional
- Phone numbers should include country code
- Birthday format: YYYY-MM-DD
- Organization information helps identify business contacts
Tips for RPA Developers
- Build contact objects from your CRM/database
- Include all available contact information for completeness
- Use consistent phone number formats (international format)
- Validate email addresses before including
- Test contact saving on different devices
- Include company information for business contacts
- Use meaningful formatted names
- Store contact templates for frequent use
Common Use Cases
Customer Support Contact:
{
"name": {
"formatted_name": "Customer Support - Acme Corp"
},
"phones": [
{"phone": "18005551234", "type": "WORK"}
],
"emails": [
{"email": "support@acmecorp.com", "type": "WORK"}
],
"urls": [
{"url": "https://acmecorp.com/support", "type": "WORK"}
]
}
Sales Representative:
{
"name": {
"formatted_name": "Bob Johnson",
"first_name": "Bob",
"last_name": "Johnson"
},
"phones": [
{"phone": "14155551234", "type": "CELL"}
],
"emails": [
{"email": "bob.johnson@company.com", "type": "WORK"}
],
"org": {
"company": "Acme Corp",
"title": "Senior Sales Representative"
}
}
Emergency Contact:
{
"name": {
"formatted_name": "Emergency Services"
},
"phones": [
{"phone": "911", "type": "MAIN"}
]
}
Common Errors and Solutions
Error: Missing formatted name
- Every contact must have a formatted_name
- Minimum:
{"name": {"formatted_name": "Name"}} - Or simplified:
{"formatted_name": "Name"}
Error: Invalid contact structure
- Follow the exact JSON structure shown
- Use correct field names (case-sensitive)
- Ensure arrays are used for phones, emails, addresses
Error: Invalid phone format
- Include country code
- Use numbers only (no special characters)
- Format:
14155551234not+1-415-555-1234
Best Practices
- Include as much information as available
- Use international phone number format
- Provide both work and mobile numbers when possible
- Include email for business contacts
- Add company information for business contacts
- Use descriptive formatted names
- Validate contact data before sending
- Test vCard compatibility on different devices
- Follow data privacy regulations (GDPR, etc.)
- Only share contacts with user consent