Facebook Organic collects non-paid (organic) data from your Facebook Pages. This includes metrics on posts, videos, and audience engagement.
Facebook Organic replaces Facebook Leads, Facebook Post, Facebook Videos, and partially Facebook Graph.
Refer to our website for the list of metrics and attributes available in Dataddo.
Refer to Facebook's official documentation to see all available endpoints from the Facebook Graph API.
Do you have more than one Facebook account? You can pull the same data from all of them. Use multi-account extraction to do this. Contact our Solutions team to turn on this feature.
Authentication Methods
Facebook Organic supports more than one way to connect. Pick one when you create the authorizer in Dataddo:
- Facebook - sign in with Facebook Organic and approve access (best choice).
- Facebook Custom - use your own app credentials (for advanced setups).
- Facebook Page Access Token
- Meta Admin Center
Authorize Connection to Facebook Organic
To authorize this service, use OAuth 2.0 to share specific data with Dataddo while keeping usernames, passwords, and other information private.
- On the Authorizers page, click on Authorize New Service and select your service.
- Follow the on-screen prompts to grant Dataddo the necessary permissions to access and retrieve your data.
- [Optional] Once your authorizer is created, click on it to change the label for easier identification.
Ensure that the account you're granting access to holds at least admin-level permissions. If necessary, assign a team member with the required permissions with the authorizer role to authenticate the service for you.
It is best to create a dedicated Admin System User in Facebook Business Manager. See the official Facebook documentation for details.
For more information, see our article on authorizers.
Data Coverage
Facebook Organic gives you the datasets below. Each dataset maps to a table you can extract. The example fields are just a sample. Each dataset returns more columns.
| Dataset | Description | Example fields | Date range |
|---|---|---|---|
| Leads | Data for the leads | Lead Company Id, Id, Ad Id, Campaign Id, Campaign Name, Created Time (+5 more) | Yes |
| Leads by Forms | Get Leads by Forms | Id, Ad Id, Campaign Id, Campaign Name, Created Time, Field Data Name (+3 more) | Yes |
| Leads Transposed | One row per lead submission with form field data pivoted into named columns such as email, first name, and phone number. | Id, Ad Id, Campaign Id, Campaign Name, Company Name, Created Time (+14 more) | Yes |
| Page Metadata | Metadata about Facebook page | ID, About, Category List ID, Category List Name, Check-Ins, Company Overview (+35 more) | No |
| Page Daily Fans by City | Daily fan count broken down by city. | Page ID, Date, City, Fan count, Page Name, Username | Yes |
| Page Daily Fans by Country | Daily fan count broken down by country. | Page ID, Date, Country, Fans Count, Page name, Username | Yes |
| Page Daily Fans by Locale | Daily fan count broken down by page locale. | Page ID, Date, Locale, Fans count, Page name, Username | Yes |
| Page Daily Insights Transposed | Daily insights metrics in transposed form with metrics and values organized in rows. | Page ID, Name, Period, Date, Title, Metric Value | Yes |
| Page Monthly Insights Transposed | 28-day insights metrics in transposed form with metrics and values organized in rows. | Page ID, Name, Period, Date, Title, Metric Value | Yes |
| Page Logo | Gets the logo picture of selected pages | Page ID, Height, URL, Width | No |
| Page Messages Lifetime Insights | Lifetime metrics related to page messages. | Page ID, Displayed message response time, Page name, Unread message count, Unseen message count, Username | No |
| Posts Metadata | Metadata about individual posts. | ID, Page ID, Can comments, Comments Total Count, Created Time, From Id (+11 more) | No |
| Page Reviews | Reviews received on the Facebook page. | Page ID, Reviewer ID, Created time, Recommendation type, Review text, Reviewer name | No |
| Post Comments | All comments on posts within the page. | Comment Id, Can Comment, Can Hide, Can Like, Can Remove, Comment Count (+14 more) | No |
| Posts Daily Insights Transposed | Daily post metrics in transposed form with metrics and values organized in rows. | Post ID, Name, Period, End Time, Page ID, Title (+1 more) | Yes |
| Posts Lifetime Insights Transposed | Lifetime post metrics in transposed form with metrics and values organized in rows. | Post ID, Name, Period, End Time, Page ID, Title (+1 more) | No |
| Posts Lifetime Insights by Activity Type | Lifetime Insights into post activities categorized by type. | Post ID, Name, Period, Action Type, Page ID, Title (+1 more) | No |
| Page Video Reels Lifetime Insights | Lifetime statistics for Facebook Reels. | Id, Page ID, Description, Name, Period, Reactions (+2 more) | No |
| Videos Metadata | Metadata about individual posts. | Id, Ad Breaks, Backdated Time, Backdated Time Granularity, Boost Eligibility Info, Content Category (+32 more) | No |
How Data Extraction Works
What each extraction pulls depends only on whether a dataset supports a date range (see the Date range column above):
- Date range supported (Yes): the source reads a relative window (for example "last 7 days"), and that window slides forward with the current date. Every run re-reads the window, so a range of "1 day ago" always pulls the previous day (D-1). Each run replaces the window's data rather than adding older history. To load records from before the window, run a full data re-sync with a wider range. See Data Backfilling.
- No date range (No): every run pulls all currently available data.
Set the relative date range when you create the source.
Metadata Columns
When you create a source, you can add these Dataddo metadata columns to the extracted data:
- dataddo_hash - a fingerprint built from each record's key fields. It works as a natural key, so it is ideal for upserts (updating existing rows in your destination instead of creating duplicates).
- dataddo_extraction_timestamp - the date and time the row was extracted. Use it to track how records change over time, for example to build slowly changing dimensions.
Hash Sensitive Fields
Some datasets include columns with personal data, such as names, email addresses, or phone numbers. When you create a source, you can turn on Hash Sensitive Fields and use the Select Columns for Sensitive Computation picker to choose which of these columns to protect. Dataddo replaces the selected values with a hash before the data leaves Dataddo, so the raw personal data is never written to your destination.
How to Create a Facebook Organic Data Source
Creating a data source takes you through six steps, shown in the progress bar at the top of the wizard. Each step is explained below.
1. Pick the connector
On the Sources page, click Create Source, then select the connector from the catalog. Use the search bar or the category tabs if you do not see it right away. You can rename the source at any time using the pencil icon next to its name.
2. Select the dataset
A dataset defines the shape of your data: which fields you get and how they relate. Select the dataset you want; you can still fine-tune the exact fields later.
- Each dataset has a short description of what it contains. Use the search box to find a dataset, attribute, or metric by name.
- The panel on the right previews the selected dataset's fields. For each field you can see its data type, whether it holds sensitive data (personal fields such as name or email are flagged), and which other datasets it links to, so you can see how the datasets relate.
3. Choose the account
This step selects what Dataddo reads from.
- Authorizer: Select an account you have already authorized from the drop-down. If you have none yet, choose Add new account and follow the prompts. If no authorizer is selected, Dataddo asks you to authorize before you continue.
- What to extract from: Select the exact entity you want to pull data from. Depending on the service this may be labelled an account, property, profile, workspace, or similar, sometimes with a sub-level to choose as well.
- Multiple accounts: To pull the same data from every entity you can access, turn on Automatically collect data from all .... This is multi-account extraction. Leave it off to choose them by hand.
4. Refine the attributes and metrics
The dataset already sets the structure. Here you fine-tune it: tick or untick the specific attributes and metrics you want to keep, and use the search box to find a field quickly. Click Test on Sample Data at any point to preview the result before you continue.
5. Add metadata columns (optional)
Two optional columns help your destination handle the data.
- Dataddo Hash (Include Row Hash): a fingerprint built from the columns you pick. It works as a natural key, so your destination can deduplicate rows and run upserts instead of creating duplicates. Turn it on, then select the columns that uniquely identify a row.
- Dataddo Extraction Timestamp: the time each row was extracted. Use it to watermark the data, for example to build slowly changing dimensions or to track when a value last changed.
6. Set the schedule
Decide how often Dataddo runs the extraction.
- Frequency: how often the pipeline runs, for example daily. Click Show advanced settings to also set the exact hour and minute (UTC).
- Date range: the relative window each run extracts, for example "Yesterday". The window moves forward on every run.
- Historical data: a new source starts from the current window. To load older data, run a full data re-sync after the source is created.
- Allow Empty Data Extractions: when on, a run that returns no data records zero rows instead of failing. Turn it on if the source can legitimately have periods with no data.
Click Save. Your data source is ready.
Limitations
Historical Data
The Facebook API lets you pull data from up to 2 years back.
Troubleshooting
Data Preview Unavailable
No data preview when you click on Test Data might be caused by an issue with your source configuration. The most common causes are:
- Date range: Try a smaller date range. You can load the rest of your data afterward via manual data load.
- Insufficient permissions: Please make sure your authorized account has at least admin-level permissions.
Authorization Error
Broken Facebook sources that return the following error messages when testing the extraction (broken source > three dots > Test Extraction) must be reauthorized:
"response_status": "401 Unauthorized"
"Www-Authenticate": "OAuth \"Facebook Platform\" \"invalid_token\" \"You cannot access the app till you log in to www.facebook.com and follow the instructions given.\""
"response_body": "{\"error\":{\"message\":\"You cannot access the app till you log in to www.facebook.com and follow the instructions given.\",\"type\":\"OAuthException\",\"code\":190,\"error_data\":\"{\\\"checkpoint_url\\\":\\\"https:\\\\\\/\\\\\\/www.facebook.com\\\"}\",\"error_subcode\":459,\"fbtrace_id\":\"AUWZQsg7Opr7SEpp_lk9wUa\"}}"
Once reauthorized, make sure to load the missing data.
You can also click the Debug & Restart icon next to the broken source and Dataddo will show you step-by-step how to reauthorize your account and execute a manual data load.
Unable to Find Facebook Sub-Accounts
If your access rights have changed or you gained access to a new Facebook account, it's possible that your other accounts will not be immediately listed in Dataddo. To fix this, try the following steps:
Fully Reauthorize the Service
- Go to the Authorizers tab in Dataddo and delete the Facebook authorizer.Deleting an Authorizer
Please keep in mind that you will first need to delete all sources created with the authorizer. This will also affect your flows.
You can also temporarily switch the source using the authorizer to a different account before deletion.
- Go to your Facebook settings and navigate to the Business integrations tab.
- Find Dataddo and click on Remove.
- Now, go back to the Authorizers tab in Dataddo and authorize your Facebook account again.
Check Your Account Permissions
If the method above doesn't work, please check your Facebook account's permissions. To access insights, make sure the permissions are at least on the analyst/admin level.
Related Articles
Now that you have successfully created a data source, see how you can connect your data to a dashboarding app or a data storage.
Sending Data to Dashboarding Apps
Sending Data to Data Storages
Other Resources