We’re scaling our Click-to-Messenger campaigns on Facebook and need to build a unified performance report that joins two data sets:
Facebook Ads spend - keyed by ad_id, adset_id, campaign_id (we’re going to collect those via the Page webhook (with messaging_referrals): for each referral we can get sender.id = PSID and referral.ad_id, etc.).
Contacts inside ManyChat - phone number and custom fields, accessible only via contact_id using the public API.
Problem:
- ManyChat’s API doesn’t accept a PSID (sender.id) as subscriber_id; both getInfo and setCustomFieldByName require the internal contact_id.
- The API also never returns the PSID when querying a contact.
- Manual Bulk Export PSIDs works, but we need a fully automated (or at least daily) way to join spend
leads reliably.
Questions to the community:
- Is there any documented or undocumented method to retrieve the PSID for a contact via API, or to resolve a contact_id from a known PSID?
- Have you implemented a workflow (e.g., via Zapier, Make, or custom Graph API bot) that reliably maps ad_id to ManyChat contacts without using manual exports?
- If no such method exists, are there any roadmap plans to expose PSID via API, or best practices ManyChat recommends for performance attribution in Click-to-Messenger funnels?
Any practical insight, workaround, or confirmation that this is currently not possible is deeply appreciated. Thanks!