Skip to content

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:

https://app.pablo.social/webhooks/notion?api_key=YOUR_KEY&field_map=URL_ENCODED_JSON

The field_map JSON structure:

{
  "Your Property Name": "pablo_field_name",
  "Another Custom Name": "another_pablo_field"
}

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_2ad_headline_5 Headline option(s)
ad_body, ad_body_2ad_body_5 Body text option(s)
ad_description, ad_description_2ad_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:

{
  "Ad Name": "ad_name",
  "Title": "ad_headline",
  "Description": "ad_body",
  "URL": "ad_link"
}

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.