---
title: "create_update_linkedin_message_ad. Metadata MCP tool reference"
url: https://metadata.io/developers/tools/create_update_linkedin_message_ad
description: "Create a new or update an existing LinkedIn Message Ad on the Metadata platform. Destructive tool on the Metadata MCP server, with its full JSON Schema."
source: metadata.io
---

# create_update_linkedin_message_ad

Create a new or update an existing LinkedIn Message Ad on the Metadata platform.

Destructive [creative](https://metadata.io/developers/tools/#cat-creative)

## What it does

## Arguments

| Argument | Type |   | Notes |
|---|---|---|---|
| `id` | integer |   | Existing Message Ad ID — include to UPDATE; omit to CREATE. |
| `name` | string | required | Ad name in the platform library (max 50 characters). |
| `senderId` | string | required | LinkedIn sender ID. MUST come from get_linkedin_senders. Do not invent. |
| `senderName` | string | required | Display name matching senderId, also from get_linkedin_senders. |
| `headlineText` | string | required | Message subject line shown in the recipient's inbox (max 60 characters). |
| `messageText` | string | required | Message body (max 2000 characters). Supports LinkedIn personalization macros — ONLY %FIRSTNAME%, %LASTNAME%, %COMPANYNAME%, %JOBTITLE%, %INDUSTRY%. Any other %...% token is rejected by the platform validator. |
| `actionText` | string | required | Call-to-action button label (max 20 characters). |
| `bannerCreativeLibraryId` | integer |   | Optional: imageLibraryId of the banner image shown above the message. Upload the image first via upload_image_creative and pass the returned ID. Omit to skip the banner. |
| `completionStatus` | string |   | Defaults to DRAFT. Use COMPLETED only when every required field is final.one of: `DRAFT`, `COMPLETED` |

## Request

**Request template, not a complete runnable example.** Replace placeholders, empty objects, arrays, and zero values with valid account-specific inputs. Read required fields and nested constraints in the full schema. Confirm the account, connected channels, and referenced assets before calling a write tool.

## Response

## Related

Other creative tools:

- [archive_ad](https://metadata.io/developers/tools/archive_ad) Destructive
- [create_update_carousel_ad](https://metadata.io/developers/tools/create_update_carousel_ad) Destructive
- [create_update_convo_ad](https://metadata.io/developers/tools/create_update_convo_ad) Destructive
- [create_update_document_ad](https://metadata.io/developers/tools/create_update_document_ad) Destructive
- [create_update_google_ads_ad](https://metadata.io/developers/tools/create_update_google_ads_ad) Destructive
- [create_update_image_ad](https://metadata.io/developers/tools/create_update_image_ad) Destructive
- [create_update_microsoft_ads_ad](https://metadata.io/developers/tools/create_update_microsoft_ads_ad) Destructive
- [create_update_video_ad](https://metadata.io/developers/tools/create_update_video_ad) Destructive

[Browse the tool catalog](https://metadata.io/developers/tools/) · [machine-readable index](https://metadata.io/developers/tools.json)
