> ## Documentation Index
> Fetch the complete documentation index at: https://docs.markifact.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Insert Promotion

> Inserts or replaces a promotion (sale, discount, or coupon) in a Merchant Center promotion data source

Inserts or replaces a promotion (sale, discount, or coupon) in a Merchant Center promotion data source. Re-inserting the same promotionId replaces the promotion.

| | |
| - | - |
| **App** | Google Merchant Center |
| **Operation ID** | `gmc_insert_promotion` |
| **Type** | Action |
| **Connection** | `gmc` (required) |
| **Credits per run** | 1 |
| **Agent / MCP tool** | Yes |
| **Requires approval** | Yes (write operation) |

## Inputs

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `account` | DynamicAccount | Yes | - | Select the Merchant Center account in which to insert the promotion. |
| `data_source_id` | string or SelectItem | Yes | - | Promotion API data source ID. Create one with gmc\_create\_data\_source using a promotionDataSource input. |
| `promotion` | object or string | Yes | - | Official Google Merchant API Promotion body as an object or JSON string, sent as-is. Use Google's REST camelCase field names exactly. Required fields per Google: promotionId, contentLanguage, targetCountry, redemptionChannel, and attributes with longTitle, offerType, couponValueType, productApplicability, genericRedemptionCode (for GENERIC\_CODE offers), and promotionEffectiveTimePeriod startTime/endTime. Inserting with an existing promotionId replaces the promotion. Example: \{"promotionId": "summer\_sale\_20", "contentLanguage": "en", "targetCountry": "US", "redemptionChannel": \["ONLINE"], "attributes": \{"longTitle": "20% off all shirts", "offerType": "GENERIC\_CODE", "genericRedemptionCode": "SUMMER20", "couponValueType": "PERCENT\_OFF", "percentOff": "20", "productApplicability": "ALL\_PRODUCTS", "promotionEffectiveTimePeriod": \{"startTime": "2026-08-01T00:00:00Z", "endTime": "2026-08-31T23:59:59Z"}}} |

### SelectItem

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `value` | string | Yes | - | The value of the selectable item. |
| `label` | string | Yes | - | The label of the selectable item, used for display purposes. If not provided, defaults to the value. |

## Output

**Type**: `Dict`

Returns the inserted promotion.

**Fields**: `promotion`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.