Standard and Custom Objects
Introduction
Standard Objects and Custom Objects (known as Objects) have a 1-1 relationship between your application and Provider objects. For example, a Contact in Salesforce is a salesforce_Contact in your application, and a Hubspot company is a hubspot_company in your application.


Standard objects
Supaglue Standard Objects are pre-defined objects in third-party providers, e.g. Contacts, Accounts, and Leads are pre-defined objects in Salesforce and are Standard Objects in Supaglue.
Standard Objects have a 1-1 relationship between your application and Provider objects. For example, a Contact in Salesforce is a salesforce_Contact in your application, and a HubSpot company is a hubspot_company in your application.
You can use access Standard Objects as part of Managed Syncs, which can then be queried directly or accessed via the unified API.
Configuration
Use the Syncs --> Sync Configs page in the Management Portal to specify the Standard Objects you wish to sync to your Destination.

The screenshot above shows a HubSpot Sync Config that specifies product, contact, contact, deal, and email Standard Objects. Supaglue will sync these Standard Objects.
Object names
Since Standard Objects vary by Provider, you need to configure the Standard Objects separately for each Provider. The casing of the Standard Objects is also provider-specific, e.g. Standard Objects for Salesforce are "PascalCase".
Table names
Tables are case-sensitive and named ${Provider}_${Object name}, e.g. salesforce_Account.
Table schema
Supaglue will land the data in your Destination with the following schema:
postgres=> \d "salesforce_Contract"
Table "public.salesforce_Contract"
Column | Type | Collation | Nullable | Default
--------------------------+--------------------------------+-----------+----------+---------
_supaglue_application_id | text | | not null |
_supaglue_provider_name | text | | not null |
_supaglue_customer_id | text | | not null |
_supaglue_emitted_at | timestamp(3) without time zone | | not null |
_supaglue_is_deleted | boolean | | not null |
_supaglue_raw_data | jsonb | | not null |
id | text | | not null |
Indexes:
"salesforce_Contract_pkey" PRIMARY KEY, btree (_supaglue_application_id, _supaglue_provider_name, _supaglue_customer_id, id)
Please note that Supaglue metadata fields differ slightly between Common Objects and Objects.
Custom objects
Custom Objects are objects that are not pre-defined by third-party Providers. They are usually entities specific to an organization, and can be managed by you or your customer.
For example, ContactDailyMetric and ContactMonthlyMetric are the only contact metric Standard Objects in Salesforce, but your customer may have defined a third Custom Object, ContactBiannualMetric.
Configuration
Use the Syncs --> Sync Configs page in the Management Portal to specify the Custom Objects you wish to sync to your Destination.

The screenshot above shows a Sync Config that specifies ContactBiannualMetric and BattleCard Custom Objects. Supaglue will sync these Custom Objects.
Object names
The casing of Custom Objects is provider-specific.
Table names
Tables are case-sensitive and named ${Provider}_${slugify(Object name)}, e.g. salesforce_BattleCard__c becomes salesforce_BattleCardC.
We use slugify to normalize names for Supaglue Destinations such as Postgres.
Table schema
Supaglue will land the data in your Destination with the following schema:
postgres=> \d "salesforce_BattleCard"
Table "public.salesforce_BattleCard"
Column | Type | Collation | Nullable | Default
--------------------------+--------------------------------+-----------+----------+---------
_supaglue_application_id | text | | not null |
_supaglue_provider_name | text | | not null |
_supaglue_customer_id | text | | not null |
_supaglue_emitted_at | timestamp(3) without time zone | | not null |
_supaglue_is_deleted | boolean | | not null |
_supaglue_raw_data | jsonb | | not null |
id | text | | not null |
Indexes:
"salesforce_BattleCard_pkey" PRIMARY KEY, btree (_supaglue_application_id, _supaglue_provider_name, _supaglue_customer_id, id)
Please note that Supaglue metadata fields differ slightly between Common Objects and Objects.
:::