---
title: "WhatsApp Business Integration"
description: "Send WhatsApp messages and templates"
---
The WhatsApp Business integration provides access to send WhatsApp messages and templates through the Integrate MCP server.

## Installation

The WhatsApp Business integration is included with the SDK:

```typescript
import { whatsappIntegration } from "integrate-sdk/server";
```

## Setup

### 1. Create a WhatsApp Business OAuth App

1. Go to [Meta for Developers](https://developers.facebook.com)
2. Create a new OAuth application
3. Configure your redirect URI
4. Note your Client ID and Client Secret

### 2. Configure the Integration on Your Server

Add the WhatsApp Business integration to your server configuration. The integration automatically reads `WHATSAPP_CLIENT_ID` and `WHATSAPP_CLIENT_SECRET` from your environment variables:

```typescript
import { createMCPServer, whatsappIntegration } from "integrate-sdk/server";

export const { client: serverClient } = createMCPServer({
  apiKey: process.env.INTEGRATE_API_KEY,
  integrations: [
    whatsappIntegration({
    }),
  ],
});
```

You can override the environment variables by passing explicit values:

```typescript
whatsappIntegration({
  clientId: process.env.CUSTOM_WHATSAPP_ID,
  clientSecret: process.env.CUSTOM_WHATSAPP_SECRET,
});
```

### 3. Client-Side Usage

The default client automatically includes all integrations. You can use it directly:

```typescript
import { client } from "integrate-sdk";

await client.authorize("whatsapp");
const result = await client.whatsapp.sendMessage({
  phone_number_id: "value",
});

console.log(result);
```

If you're using a custom client, add the integration to the integrations array:

```typescript
import { createMCPClient, whatsappIntegration } from "integrate-sdk";

const customClient = createMCPClient({
  integrations: [whatsappIntegration()],
});
```

## Configuration Options

<AutoTypeTable
  path="../src/integrations/whatsapp.ts"
  name="WhatsAppIntegrationConfig"
/>


## Tools

### `whatsapp_send_message`

Send a plain text message

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappSendMessageParams"
/>

### `whatsapp_reply_message`

Reply to a specific message (quoted reply)

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappReplyMessageParams"
/>

### `whatsapp_send_template`

Send a pre-approved template message

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappSendTemplateParams"
/>

### `whatsapp_send_media`

Send an image, video, document, or audio file by URL

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappSendMediaParams"
/>

### `whatsapp_send_reaction`

React to a message with an emoji

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappSendReactionParams"
/>

### `whatsapp_send_location`

Send a location pin

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappSendLocationParams"
/>

### `whatsapp_send_contact`

Send one or more vCard-style contact cards

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappSendContactParams"
/>

### `whatsapp_send_interactive_buttons`

Send a message with up to 3 quick-reply buttons

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappSendInteractiveButtonsParams"
/>

### `whatsapp_send_interactive_list`

Send a message with a scrollable list of options

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappSendInteractiveListParams"
/>

### `whatsapp_mark_read`

Mark a received message as read (shows blue ticks to sender)

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappMarkReadParams"
/>

### `whatsapp_get_media_url`

Get the download URL and metadata for a received media object

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappGetMediaUrlParams"
/>

### `whatsapp_delete_media`

Delete an uploaded media object from Meta's servers

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappDeleteMediaParams"
/>

### `whatsapp_list_templates`

List all message templates for a WhatsApp Business Account

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappListTemplatesParams"
/>

### `whatsapp_get_template`

Get a specific template by name

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappGetTemplateParams"
/>

### `whatsapp_create_template`

Create a new message template (submitted for Meta review)

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappCreateTemplateParams"
/>

### `whatsapp_delete_template`

Delete a template by name (all language variants)

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappDeleteTemplateParams"
/>

### `whatsapp_get_phone_numbers`

List all phone numbers registered to a WABA

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappGetPhoneNumbersParams"
/>

### `whatsapp_get_phone_number`

Get full details for a specific phone number

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappGetPhoneNumberParams"
/>

### `whatsapp_get_profile`

Get the public business profile for a phone number

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappGetProfileParams"
/>

### `whatsapp_update_profile`

Update the business profile (pass only the fields you want to change)

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappUpdateProfileParams"
/>

### `whatsapp_get_message_status`

Get status of a sent message by message ID

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappGetMessageStatusParams"
/>

### `whatsapp_create_qr_code`

Create a QR code that opens a chat with a prefilled message

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappCreateQrCodeParams"
/>

### `whatsapp_update_qr_code`

Update qr code

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappUpdateQrCodeParams"
/>

### `whatsapp_list_qr_codes`

List all QR codes for a phone number

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappListQrCodesParams"
/>

### `whatsapp_get_qr_code`

Get qr code

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappGetQrCodeParams"
/>

### `whatsapp_delete_qr_code`

Delete qr code

<AutoTypeTable
  path="generated/tool-params/whatsapp.ts"
  name="WhatsappDeleteQrCodeParams"
/>

## Notes

- Category: Communication
- Authentication mode: OAuth
