Skip to main content

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.
info

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:

  1. Validates all required inputs
  2. Parses the contact data (supports single contact or array)
  3. Constructs contact objects with name, phones, emails, addresses, etc.
  4. Builds the vCard message payload
  5. Sends a POST request to the WhatsApp API
  6. 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 phone
  • MAIN - Main phone number
  • IPHONE - iPhone specific
  • HOME - Home phone
  • WORK - Work phone

Email Types

Supported email types:

  • WORK - Work email
  • HOME - Home email
  • INTERNET - Generic internet email

Address Types

Supported address types:

  • WORK - Work address
  • HOME - Home address

URL Types

Supported URL types:

  • WORK - Work website
  • HOME - 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: 14155551234 not +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