Field Mapping¶
Field mapping allows you to use custom property names in Notion while still connecting to Pablo. Instead of renaming all your properties to match Pablo's expected field names, you provide a mapping configuration that tells Pablo which of your properties correspond to which Pablo fields.
How It Works¶
When setting up your webhook URL, you add a field_map parameter containing a URL-encoded JSON object that maps your custom property names to Pablo's internal field names.
Format:
The field_map JSON structure:
Mapping works for file/attachment properties too — you can map a custom-named files property to an asset field.
Valid mapping targets¶
The target names are the Notion-side field names Pablo reads. Note that a few differ from the API field names — most importantly the link and asset fields:
| Target name | Purpose |
|---|---|
ad_name |
Ad name |
ad_headline, ad_headline_2 … ad_headline_5 |
Headline option(s) |
ad_body, ad_body_2 … ad_body_5 |
Body text option(s) |
ad_description, ad_description_2 … ad_description_5 |
Description option(s) |
ad_link |
Destination URL (not ad_link_url — that's the API name) |
ad_cta_label |
CTA button label |
ad_media_type |
static / video / carousel |
ad_asset |
Main (square) asset — files property |
ad_asset_mid |
Mid (4:5) asset — files property |
ad_asset_vertical |
Vertical (9:16) asset — files property |
destination_ad_account_id |
Meta ad account ID |
destination_adset_id |
Target adset ID |
destination_adset_name |
Adset name to find-or-create |
destination_template_adset_id |
Template adset to clone (alias: template_adset_id) |
destination_template_ad_id |
Template ad for settings |
ad_initial_status |
ACTIVE / PAUSED |
ad_id |
Existing ad to overwrite |
lead_form_id |
Lead form ID |
partner_instagram_username |
Partner/creator IG username |
A mapping to any other target name simply never matches — the property is ignored without an error — so double-check spellings against this table.
Example¶
If your Notion database uses these property names:
- "Ad Name" instead of ad_name
- "Title" instead of ad_headline
- "Description" instead of ad_body
- "URL" instead of ad_link
Create this mapping:
URL-encode it:
You must URL-encode the JSON before adding it to the webhook URL. Use any URL encoder like urlencoder.org.
%7B%22Ad%20Name%22%3A%22ad_name%22%2C%22Title%22%3A%22ad_headline%22%2C%22Description%22%3A%22ad_body%22%2C%22URL%22%3A%22ad_link%22%7D
Final webhook URL:
https://app.pablo.social/webhooks/notion?api_key=YOUR_KEY&field_map=%7B%22Ad%20Name%22%3A%22ad_name%22%2C%22Title%22%3A%22ad_headline%22%2C%22Description%22%3A%22ad_body%22%2C%22URL%22%3A%22ad_link%22%7D
Testing a mapping¶
Add dry_run=true to the webhook URL to validate the payload and mapping without building an ad — useful when first wiring up a database.