Public Data Dictionary | Yext Hitchhikers Platform
The public
schema contains data that does not belong to a specific product domain area, such as metadata about your Yext account.
Businesses
public.businesses
This view contains general information about your Yext account. Yext accounts that belong to an account ‘tree’ can use the businesses view to query metadata across all accounts in the tree. This can be done by joining the product domain view containing metadata with the businesses view to obtain the parent Yext account’s business ID. You can then query for any account in the tree by specifying the parent ID in a where clause.
Of course, a business can also use this table to query basic metadata about their business or sub-accounts.
Column | Data Type | Description |
---|---|---|
business_id |
NUMBER |
The internal numeric identifier Yext assigns to an account. It can be used as a joining column with any other view included in Data Sharing. |
resource_name |
VARCHAR |
The external-facing identifier. This is not defined by Yext. For resellers, this is the reseller account ID. |
name |
VARCHAR |
The business name |
parent_business_id |
NUMBER |
The unique, internal-facing identifier Yext assigns to a business’s parent Yext account, if applicable |
created_timestamp |
TIMESTAMP_NTZ |
The timestamp of when the business’s Yext account was created |
country |
VARCHAR |
The country associated with the business |
Sample Queries
Fetch sub-account data by joining to the businesses
view. All views included in Data Sharing contain a business_id column that can be used as a joining column. This is a really common use case for resellers or businesses that are holding companies or otherwise control multiple Yext accounts.
select
business_id,
entity_id,
date,
sum(profile_views) as profile_views,
sum(serp_impressions) as serp_impressions
from legacy_listings.agg_location_daily -- Select data from any Data Sharing view
join public.businesses using (business_id) -- Join with the businesses view to fetch the parent_business_id.
where date between 'yyyy-mm-dd' and 'yyyy-mm-dd'
and parent_business_id = 1234567 -- This allows you to get the data belonging to any child account with a given parent_business_id
group by 1,2,3
Decode the business ID and get the business name for any query. The below example contains an example of any regular query one might run, but joining to the businesses
view to fetch the name of the business to return in the results and help decode the internal business UID.
select
sites.creation_timestamp,
site_name,
concat('https://yext.com/s/', businesses.business_id, '/yextsites/', site_id) as site_link,
businesses.business_id,
name as account_name, -- Select the business name
site_id,
sites.repo_uuid,
hostname,
published_deploy_id
from prod_pages.public.sites
join prod_platform.public.businesses using (business_id)
where creation_timestamp > dateadd(month, -6, current_date)
order by 1 desc;