Interrogare i dati di HubSpot in Snowflake
Ultimo aggiornamento: maggio 31, 2024
Disponibile con uno qualsiasi dei seguenti abbonamenti, tranne dove indicato:
Operations Hub Enterprise |
Dopo aver collegato Snowflake al vostro account HubSpot, potete usare il Data Share di Snowflake per interrogare i dati di HubSpot dal vostro account Snowflake.
Ritardo nei dati e regione del vostro account Snowflake
Si avrà accesso allo schema V2_LIVE, aggiornato ogni 15 minuti, e allo schema V2_DAILY, aggiornato ogni giorno.
Nota bene: le seguenti viste dello schema V2_LIVE vengono aggiornate solo giornalmente: association_definitions, owners, pipeline e pipeline_stages.
Configurare l'ambiente Snowflake
Per interrogare i dati di HubSpot in Snowflake, è necessario selezionare il magazzino, il database e lo schema da cui si desidera eseguire la query. È possibile impostarli a livello di foglio di lavoro per includerli automaticamente nelle query, oppure aggiungerli manualmente.
Per selezionare il magazzino, il database e lo schema a livello di foglio di lavoro:
- Nella riga superiore del foglio di lavoro, fate clic sulla barra delle azioni del foglio di lavoro.
- Nella finestra a comparsa:
- Fare clic sul menu a discesa Magazzino e selezionare il magazzino.
- Fare clic sul menu a discesa Database e selezionare il database HubSpot.
- Fare clic sul menu a discesa Schema e selezionare lo schema che si desidera utilizzare:
- V2_DAILY: lo schema giornaliero per interrogare i dati in base alle tabelle. I dati in questo schema vengono aggiornati una volta al giorno. L'uso di questo schema consente di ottenere query più veloci ed è consigliato per le query direttamente in Snowflake.
- V2_LIVE: lo schema live basato su Secure Views dei dati di HubSpot. I dati in questo schema vengono aggiornati ogni 15 minuti. Se si sta interrogando un grande insieme di dati, le query potrebbero essere lente. In questo caso, si consiglia di copiare i dati nella propria tabella con un processo di ETL e di interrogare la tabella.
Una volta configurato l'ambiente, è possibile eseguire query sui dati di HubSpot senza dover aggiungere manualmente il tipo di database o di schema alle query.
Per aggiungere manualmente il database e il tipo di schema alle query, aggiungere il nome del database seguito dallo schema all'inizio del campo FROM
. Ad esempio:
SELECT objectTypeId, property_createddate
FROM hubspot_share_name.V2_LIVE.objects_deals
LIMIT 1
Panoramica dei dati
Le query sono costruite utilizzando SQL e possono essere utilizzate per recuperare dati di HubSpot quali:
- Oggetti: oggetti standard e personalizzati, come contatti, aziende, prodotti.
- Record: record individuali, come un singolo contatto o un'azienda.
- Associazioni: tutti i tipi di associazione disponibili e i record attualmente associati.
- Eventi: dati relativi agli eventi standard di HubSpot, come le aperture delle e-mail, e agli eventi comportamentali personalizzati.
- Elenchi: Elenchi di contatti e aziende di HubSpot.
- Proprietari: utenti del vostro account HubSpot, in relazione ai record di cui sono impostati come proprietari.
- Pipeline: pipeline di transazioni e ticket, comprese le fasi della pipeline.
- Proprietà: proprietà e relativi valori sui record del CRM, compresa la cronologia delle proprietà.
Per saperne di più sul modello di dati CRM di HubSpot.
Nota bene: con l'evolversi della condivisione dei dati, introdurremo modifiche, alcune delle quali di rottura. Si consiglia vivamente di iscriversi al change log degli sviluppatori di HubSpot. Queste modifiche saranno sempre pubblicate nel change log prima di qualsiasi aggiornamento.
Limitare e ordinare i dati restituiti
Quando si costruiscono le query, si può controllare la quantità di dati restituiti e l'ordine in cui vengono restituiti, includendo LIMIT
e ORDER BY
nella query. Per esempio, per interrogare tutti i contatti con le loro proprietà, ma restituendo solo tre risultati e ordinandoli per ID contatto, si può costruire la query come segue:
SELECT objectTypeId, updatedAt, ingestedAt
FROM objects_deals
ORDER BY objectId
LIMIT 10;
Tipi di dati delle colonne
Quando si interrogano i dati in Snowflake, le colonne che vengono restituite dipendono dai dati che si stanno interrogando. È possibile visualizzare le colonne disponibili per una determinata tabella o vista in Snowflake selezionando la vista nella barra laterale sinistra.
Nota:per il resto di questo documento, utilizzeremo il termine oggetto di database quando il contesto si applica sia alle tabelle che alle viste.
Per restituire una colonna specifica, includere tale colonna nel campo SELECT
della query. Ad esempio, la seguente query restituirà solo le colonne OBJECTID
e UpdatedAt
:
SELECTobjectId, updatedAt
FROM objects_contacts
Di seguito sono riportate le definizioni generali delle colonne che una query potrebbe restituire. Per altre definizioni non incluse di seguito, si vedano le definizioni delle singole viste nell'articolo precedente.
- OBJECTTYPEID: un valore VARCHAR che rappresenta il tipo di oggetto. Ad esempio, 0-1 rappresenta l'oggetto Contatti, 0-2 rappresenta l'oggetto Aziende e 2-1232 potrebbe rappresentare un oggetto personalizzato dell'account. Negli elenchi, questo valore si riferisce al tipo di elenco (ad esempio, contatti o aziende). È possibile interrogare tutti gli ID degli oggetti e degli eventi dell'account utilizzando la vista Definizioni_di_tipo_di_oggetto_e_di_evento.
- OBJECTID: un numero BIGINT che rappresenta un singolo record di un determinato tipo di oggetto nell'account HubSpot. Per identificare un record, è necessario utilizzare sia l'ID del tipo di oggetto che l'ID dell'oggetto.
- INGESTEDAT: il timestamp di quando una riga di dati è stata aggiunta a Snowflake, rappresentato da un valore TIMESTAMP_NTZ. Non è correlato al timestamp logico di un'operazione di creazione o aggiornamento in HubSpot.
- A causa dell'elaborazione interna di HubSpot, il timestamp di ingestione di una riga può essere aggiornato anche se nessun'altra colonna della riga è cambiata.
- Quando si creano processi ETL che copiano dati modificati di recente, si consiglia di basare le query sul timestamp di ingestione. Inoltre, se il flusso copia i dati quotidianamente, si consiglia di copiare i dati dei due giorni precedenti per tenere conto dei ritardi.
- CREATEDAT e UPDATEDAT: il timestamp logico di quando i dati sono stati creati o aggiornati in HubSpot, rappresentato da un valore TIMESTAMP_NTZ . Questi timestamp corrispondono ai timestamp di HubSpot. Ad esempio, l'ora visualizzata in HubSpot per la data di creazione di un record sarà la stessa del timestamp nella colonna CREATEDAT di Snowflake. Queste proprietà non sono direttamente collegate al timestamp di ingestione e non è consigliabile basare i processi ETL su di esse.
- COMBINEDASSOCIATIONTYPE: un valore VARCHAR che identifica in modo univoco una definizione di associazione.
Trasformazione dei tipi di dati
A volte, i dati vengono restituiti da una query con colonne VARCHAR quando sarebbe auspicabile che fossero di tipo diverso. In questi casi, si consiglia di convertire il tipo di dati VARCHAR nei tipi desiderati utilizzando le funzioni di Snowflake. Ad esempio, le proprietà di un record di un oggetto sono memorizzate come tipi di dati VARCHAR nella maggior parte degli oggetti del database, ma a volte contengono valori numerici e datetime. Funzioni come:
try_to_number, try_to_timestamp_ntz possono essere usate per convertire questi dati VARCHAR rispettivamente nei tipi NUMBER e DATETIME:
SELECT objectid, value AS amount_str, try_to_number(value) AS amountFROM object_properties
WHERE objecttypeid='0-3' AND name='amount'
LIMIT 1
Interrogazione degli oggetti
Di seguito, scoprirete come interrogare i dati di specifici oggetti e record di HubSpot, insieme ai dati che vengono restituiti.
I dati degli oggetti di diverso tipo sono organizzati e disponibili in due modi:
- Individuale: ogni tipo di oggetto è memorizzato nella propria vista e contiene solo record dello stesso tipo di oggetto, ad esempio oggetti_contatti contiene solo record di contatti. Questo elimina la necessità di specificare un objecttypeid durante l'interrogazione. Queste viste sono più facili da interrogare, poiché non è necessario conoscere gli ID degli oggetti. Inoltre, restituiscono i dati in un formato più fruibile, con ogni riga corrispondente a un oggetto e alla versione corrente delle sue proprietà. Se non si verificano query lente, è consigliabile utilizzare queste viste per recuperare i dati degli oggetti. Per saperne di più, vedere le viste Objects_X qui sotto.
- Combinato: Tutti i record di tutti i tipi di oggetto vengono combinati in un unico oggetto del database. Pertanto, quando si esegue una query, è necessario specificare un filtro come "WHERE objectTypeId='0-1'". Ad esempio, è possibile utilizzare i seguenti tipi di oggetto per l'interrogazione:
Nome dell'oggetto | OggettoTipoId |
Contatti | 0-1 |
Aziende | 0-2 |
Voci di linea | 0-8 |
Aglioggetti personalizzati viene assegnato un ID al momento della creazione, identificato come 2-unique_ID. Ad esempio, 2-12345. Per saperne di più sulle definizioni dei tipi di oggetto e di evento.
Questi oggetti di database sono generalmente adatti se si vogliono ottenere prestazioni di interrogazione migliori di quelle ottenibili con le viste objects_x. Vedere maggiori dettagli in object_with_object_properties, object_properties, objects e object_properties_history.
oggetti_x viste
In questo oggetto del database, ogni tipo di oggetto disponibile, compresi gli oggetti personalizzati, ha la sua vista specifica e ogni vista contiene solo i record degli oggetti di quel determinato tipo di oggetto. Queste viste sono denominate secondo il formato OBJECTS_<nome del tipo di oggetto>, dove <nome del tipo di oggetto> è l'etichetta della forma plurale del tipo di oggetto(si noti che se il tipo di oggetto non ha una forma plurale, allora <nome del tipo di oggetto> sarà semplicemente l'etichetta della forma singolare del nome del tipo di oggetto concatenata con "S").
Le interrogazioni a questa vista restituiscono una riga per ogni record di un oggetto, con ogni proprietà dell'oggetto disponibile come colonna separata.
Di seguito è riportato l'elenco completo dei tipi di oggetti HubSpot (cioè non personalizzati) disponibili, una breve descrizione dei dati che rappresentano e le viste corrispondenti:
HubSpot Tipo di oggetto |
OggettoTipoId |
Descrizione |
0-1 |
Informazioni sulle persone che interagiscono con la vostra azienda |
|
0-2 |
Informazioni su singole aziende o organizzazioni |
|
0-3 |
Dettagli sulle opportunità di guadagno con un contatto o un'azienda. |
|
0-4 |
Memorizza i dati delle azioni del CRM, tra cui note, attività, e-mail, riunioni e chiamate. |
|
0-5 |
Rappresentare le richieste di aiuto o di supporto dei clienti. |
|
0-14 |
Utilizzato per condividere le informazioni sui prezzi con i potenziali acquirenti. |
|
0-15 |
Dettagli per gli invii individuali di un modulo HubSpot. |
|
0-8 |
Rappresentano un sottoinsieme di prodotti venduti in un accordo. Quando un prodotto è collegato a un accordo, diventa una voce di linea. |
|
0-11 |
Dettagli dei messaggi in arrivo da più canali. |
|
0-25 |
Dettagli delle pagine di destinazione |
|
0-27 |
Memorizza le informazioni sugli elenchi di cose da fare |
|
0-28 |
Utilizzato per raccogliere informazioni sui vostri visitatori e contatti |
|
0-29 |
Dettagli sulle e-mail dell'hub di marketing |
|
AD_ACCOUNT |
0-30 |
Memorizza le informazioni sui vostri account pubblicitari su Linkedin, Facebook e Google. |
0-31 |
Dettagli sulle campagne pubblicitarie. Una campagna pubblicitaria può contenere uno o più annunci |
|
AD_GROUP |
0-32 |
Raggruppamento logico degli annunci all'interno di una campagna pubblicitaria |
AD |
0-33 |
Dettagli sui singoli annunci |
0-35 |
Informazioni sulle attività di marketing e sui contenuti correlati, in modo da poter misurare facilmente l'efficacia dei vostri sforzi di marketing collettivi. |
|
SITO_PAGINA |
0-38 |
Dati su singole pagine del vostro sito web |
0-39 |
Dati sui post del blog |
|
ELENCO OGGETTI |
0-45 |
Informazioni sui raggruppamenti di record di oggetti in base alle loro proprietà o attività. |
0-48 |
Chiamate effettuate da altri record CRM, ad esempio i contatti |
|
FATTURA |
0-53 |
Gestire e sincronizzare le fatture con i sistemi contabili esterni. |
0-57 |
Informazioni sulle risorse multimediali importate in Hubspot |
|
0-58 |
Una sequenza è una serie di modelli di e-mail mirate e temporizzate per coltivare i contatti nel tempo. |
|
0-72 |
Le suddivisioni delle transazioni sono utilizzate per condividere il credito delle transazioni tra più utenti. |
|
0-83 |
I documenti di vendita creano una libreria di contenuti per l'intero team che può caricare e condividere documenti con i propri contatti. |
|
0-19 |
Memorizza le informazioni inviate a un sondaggio di feedback. |
|
0-69 |
Le sottoscrizioni contengono i dettagli dei pagamenti ricorrenti |
|
0-101 |
Contiene dati sui fondi raccolti dai clienti |
Ogni oggetto del database restituisce le seguenti colonne:
Nome della colonna |
Tipo |
Descrizione |
TIPO DI OGGETTO |
Varchar |
L'ID del tipo di oggetto (ad esempio, contatti è 0-1). |
OGGETTO |
Numero |
L'ID del record (ad esempio, un record di contatto con ID 123752). |
AGGIORNATOAT |
Timestamp |
La data e l'ora dell'ultimo aggiornamento di questo oggetto in HubSpot. |
INGESTEDAT |
Timestamp |
La data e l'ora in cui i dati sono stati ingeriti per l'ultima volta da Snowflake. |
PROPRIETA'_* |
Varchar |
Per ogni proprietà dell'oggetto che ha un tipo di data o di numero (come specificato da property_definitions), ci saranno due colonne:
|
Esempio 1
Recupera il nome, il cognome e la fase del ciclo di vita di tutti i contatti.
Interrogazione:
SELECT objectId, property_firstname AS firstname, property_lastname AS lastname,property_lifecyclestage AS lifecyclestageFROM objects_contact
Restituzione:
OGGETTO |
NOME |
COGNOME |
STAGIONE DELLA VITA |
54325098 |
Hobbes |
Barone |
piombo |
96805401 |
Milo |
Oro |
piombo |
6922028 |
Enrico |
Riley |
piombo |
Esempio 2
Recuperare il nome dell'operazione e la fase di un massimo di tre operazioni.
Query:
SELECT objectId, property_dealName, property_dealStage,
property_amount AS dealAmountFROM objects_deals
LIMIT 3
Restituzione:
OGGETTO |
NOME_PROPRIETÀ |
PROPRIETÀ_FESTA |
IMPORTO_DELLA_PROPRIETÀ |
38960439 |
Nome dell'affare 1 |
chiuso vinto |
34199 |
321740651 |
Test Deal 123 |
14845019 |
8383663 |
98392101 |
Tettoia pop-up |
chiuso vinto |
9309007 |
Esempio 3
Recupera il nome dell'operazione e la fase delle prime tre operazioni per importo.
Interrogazione:
Poiché i dati relativi alla quantità di deal sono disponibili come tipo di dato numero, possono essere utilizzati per l'ordinamento senza dover effettuare conversioni o casting.
SELECT objectId, property_dealName, property_dealStage,
property_amount AS dealAmountFROM objects_deals
ORDER BY property_amount DESC
LIMIT 3
Restituzione:
OGGETTO |
NOME_PROPRIETÀ |
PROPRIETÀ_FESTA |
IMPORTO_DELLA_PROPRIETÀ |
98392101 |
Tettoia pop-up |
chiuso vinto |
9309007 |
321740651 |
Test Deal 123 |
14845019 |
8383663 |
38960439 |
Nome dell'affare 1 |
chiuso vinto |
34199 |
oggetto_con_proprietà_di_oggetto
Questo oggetto database contiene i dati dei record di HubSpot. Le interrogazioni a questo oggetto database restituiscono una riga per ogni record all'interno di un tipo di oggetto (ad esempio, tutti i record dei contatti nel tipo di oggetto Contatti). Tutte le proprietà sono memorizzate nella colonna Properties, che è una colonna Snowflake Variant / JSON.
Questa vista può restituire le seguenti colonne:
Nome della colonna | Tipo | Descrizione |
OBJECTTYPEID |
Varchar | L'ID del tipo di oggetto (ad esempio, contatti è 0-1 ). |
OBJECTID |
Numero | L'ID del record (ad esempio, un record di contatto con un ID di 123752 ). |
PROPERTIES |
Variante | I valori di proprietà del record. |
UPDATEDAT |
Timestamp | La data e l'ora dell'ultimo aggiornamento del record in HubSpot. Per saperne di più sui tipi di dati delle colonne. |
INGESTEDAT |
Timestamp | La data e l'ora in cui i dati sono stati ingeriti per l'ultima volta da Snowflake. |
Attenzione: il 25 gennaio 2022, la colonna timestamp nella tabella e nella vista object_with_object_properties, che rappresenta la data e l'ora dell'ultimo aggiornamento del record dell'oggetto in HubSpot, sarà updatedat. Questo per allinearsi al modo in cui i dati datetime sono rappresentati nel resto della condivisione dei dati.
Poiché si tratta di una modifica di rottura, la nuova colonna updatedat è stata aggiunta alla tabella e alla vista. Per i prossimi 90 giorni, queste due nuove colonne coesisteranno con timestamp, le colonne che intendono sostituire. In questo modo si ha la possibilità di passare all'uso delle nuove colonne.
Dopo 90 giorni, il 25 gennaio 2022, la colonna timestamp verrà rimossa dalla tabella e dalla vista. Dopo questa data, qualsiasi tentativo di interrogare la tabella o la vista object_with_object_properties utilizzando le colonne timestamp fallirà.
Esempio 1
Recupera tutti i contatti e le loro proprietà.
Interrogazione:
SELECT objectTypeId, objectId, properties
FROM object_with_object_properties
WHERE objectTypeId = '0-1'
Restituzione:
TIPO DI OGGETTO | OGGETTO | PROPRIETÀ |
0-1 | 38960439 | {"data di creazione": "1504656970152"...} |
0-1 | 321740651 | {"createdate": "1590183081949"...} |
0-1 | 98392101 | {"createdate": "1533566477279"...} |
... | ... | ... |
Esempio 2
Recupera il nome dell'operazione e la fase di un massimo di tre operazioni.
Interrogazione:
SELECTobjectId,
properties:dealname::string AS dealname,
properties:dealstage::string AS dealstage,
properties:amount::number AS dealamount
FROM object_with_object_properties
WHERE objectTypeId = '0-3'
LIMIT 3;
Restituzione:
OGGETTO | NOME DEALNAME | DEALSTAGE | DEALAMOUNT |
38960439 | Nome dell'affare 1 | chiuso | 7488939 |
321740651 | Nome dell'affare 1 | chiuso vinto | 9292029 |
98392101 | Nome dell'affare 1 | chiuso | 62626528 |
oggetti
Questo oggetto di database è un sottoinsieme dei dati dell'oggetto di database object_with_object_properties. Ogni riga restituita riporta l'ID dell'oggetto per ogni record. Questo oggetto database restituisce solo i record esistenti. Quando un record viene eliminato in HubSpot, viene rimosso da questo oggetto database. Questo oggetto database è un sottoinsieme dei dati della tabella object_with_object_properties. Ogni riga restituita riporta l'ID dell'oggetto per ogni record. Questa vista restituisce solo i record esistenti. Quando un record viene eliminato in HubSpot, viene rimosso da questa vista.
Questo oggetto di database può essere utile se l'account ha una grande quantità di dati, con conseguente rallentamento delle prestazioni delle viste object_with_object_properties e objects_x. L'uso di questo oggetto database con l'oggetto database object_properties consente di replicare i dati in object_with_object_properties, mantenendo il controllo su quali proprietà vengono restituite.
Questo oggetto di database può restituire le seguenti colonne:
Nome della colonna | Tipo | Descrizione |
OBJECTTYPEID |
Varchar | L'ID del tipo di oggetto (ad esempio, contatti è 0-1 ). |
OBJECTID |
Numero | L'ID del record (ad esempio, un record di contatto con un ID di 123752 ). |
INGESTEDAT |
Timestamp | La data e l'ora in cui i dati sono stati ingeriti per l'ultima volta da Snowflake. Per saperne di più sui tipi di dati delle colonne. |
Esempio 1
Recuperare tutti i record di contatto.
Interrogazione:
SELECT objectTypeId, objectId
FROM objects
WHERE objectTypeId = '0-1'
Restituzione:
TIPO DI OGGETTO | OGGETTO |
0-1 | 36721864 |
0-1 | 103580363 |
0-1 | 56047670 |
... | ... |
proprietà_oggetto
Questo oggetto di database è un sottoinsieme dell'oggetto di database object_with_object_properties. Ogni riga contiene il valore corrente della proprietà impostata su un determinato record. Ad esempio, un contatto avrà una riga per la proprietà Nome e una riga per la proprietà Cognome. Se un record non ha un valore per una proprietà, la riga apparirà con una stringa vuota o non apparirà affatto.
Questo oggetto di database può restituire le seguenti colonne:
Nome della colonna | Tipo | Descrizione |
OBJECTTYPEID |
Varchar | L'ID del tipo di oggetto (ad esempio, contatti è 0-1 ). |
OBJECTID |
Numero | L'ID del record (ad esempio, un record di contatto con un ID di 123752 ). |
NAME |
Varchar | Il nome della proprietà. |
VALUE |
Timestamp | Il valore dell'immobile. |
UPDATEDAT |
Timestamp | La data e l'ora dell'ultimo aggiornamento del record in HubSpot. Per saperne di più sui tipi di dati delle colonne. |
INGESTEDAT |
Timestamp | La data e l'ora in cui i dati sono stati ingeriti per l'ultima volta da Snowflake. |
Esempio 1
Recupera le proprietà di nome, cognome e città per tutti i contatti.
Interrogazione:
SELECT objectTypeId, objectId, name, value
FROM object_properties
WHERE objectTypeId = '0-1'
AND name IN ('firstname', 'lastname', 'city')
ORDER BY objectId;
Restituzione:
TIPO DI OGGETTO | OGGETTO | NOME | VALORE |
0-1 | 10401 | nome | Brian |
0-1 | 10401 | città | Dublino |
0-1 | 10401 | cognome | Gallagher |
0-1 | 23451 | nome | Fernando |
0-1 | 23451 | cognome | Fierro |
0-1 | 25751 | nome | Carlo |
... | ... | ... | ... |
Esempio 2
Recuperare il nome, il cognome e la fase del ciclo di vita di tutti i contatti e combinarli in una riga per ogni contatto. Questo esempio utilizza la sintassi SQL PIVOT.
Interrogazione:
SELECT objectId, firstname, lastname, lifecyclestage
FROM
(
SELECT objectId, name, value
FROM object_properties
WHERE objectTypeId = '0-1'
AND name IN ('firstname', 'lastname', 'lifecyclestage')
)
PIVOT(MAX(value) FOR name IN ('firstname', 'lastname', 'lifecyclestage')) AS p(objectId, firstname, lastname, lifecyclestage);
Restituzione:
TIPO DI OGGETTO | OGGETTO | NOME | COGNOME | STAGIONE DELLA VITA |
0-1 | 54325098 | Hobbes | Barone | piombo |
0-1 | 96805401 | Milo | Oro | piombo |
0-1 | 6922028 | Enrico | Riley | piombo |
... | ... | ... | ... | ... |
oggetto_proprietà_storia
Questo oggetto del database contiene i valori storici delle proprietà. Per i contatti, contiene i 45 valori più recenti. Per tutti gli altri oggetti, contiene i 20 valori più recenti. Visualizza una riga per ogni valore storico della proprietà. Il valore attuale di una proprietà è determinato dal timestamp UPDATEDAT più recente nella cronologia della proprietà.
Questo oggetto di database può restituire le seguenti colonne:
Nome della colonna | Tipo | Descrizione |
OBJECTTYPEID |
Varchar | L'ID del tipo di oggetto (ad esempio, contatti è 0-1 ). |
OBJECTID |
Numero | L'ID del record (ad esempio, un record di contatto con un ID di 123752 ). |
NAME |
Varchar | Il nome della proprietà. |
VALUE |
Timestamp | Il valore dell'immobile. |
UPDATEDAT |
Timestamp | La data e l'ora dell'ultimo aggiornamento dei dati in HubSpot. Per saperne di più sui tipi di dati delle colonne. |
INGESTEDAT |
Timestamp | La data e l'ora in cui i dati sono stati ingeriti per l'ultima volta da Snowflake. |
Esempio 1
Recupera la cronologia di una singola proprietà per un singolo contatto.
Interrogazione:
SELECT objectId, name, value, updatedAt
FROM object_properties_history
WHERE objectTypeId = '0-1'
AND objectId = 136493192
AND name = 'hs_predictivescoringtier'
ORDER BY UPDATEDAT DESC;
Restituzione:
OGGETTO | NOME | VALORE | AGGIORNATOAT |
136493192 |
hs_predictivescoringtier |
livello_1 |
2022-06-22 22:45:05.931 |
136493192 |
hs_predictivescoringtier |
livello_2 |
2021-09-18 08:20:56.622 |
136493192 |
hs_predictivescoringtier |
livello_3 |
2019-11-31 18:20:22.851 |
... |
... |
... |
... |
Esempio 2
Recupera il nome corrente di tutti i contatti che hanno avuto una fase del ciclo di vita di Abbonato.
Interrogazione:
SELECT
objectId,
properties:firstname::string AS firstname,
properties:lastname::string AS lastname
FROM object_with_object_properties
WHERE object_with_object_properties.objectTypeId = '0-1'
AND objectId IN (
SELECT objectId
FROM object_properties_history
WHERE
object_properties_history.objectTypeId = '0-1'
AND object_properties_history.name = 'lifecyclestage'
AND object_properties_history.value = 'subscriber'
);
Restituzione:
OGGETTO | NOME | COGNOME |
54325098 | Hobbes | Barone |
96805401 | Milo | Oro |
6922028 | Enrico | Riley |
... | ... | ... |
Domande di associazione
Come i dati degli oggetti, i dati delle associazioni sono organizzati in due modi:
- Individuale: Ogni tipo di associazione è memorizzato nella propria vista e contiene solo i record di quel tipo. Ad esempio, associazioni_contatti_a_affari contiene solo i record di associazione tra gli oggetti contatto e affare. Questo elimina la necessità di specificare un associationtypeid durante l'interrogazione. Queste viste sono abbastanza facili da interrogare, poiché non richiedono familiarità con il modello di dati del CRM per essere utilizzate. Inoltre, restituiscono una descrizione arricchita del record di associazione tra due oggetti, che può essere facilmente utilizzata nei join con le viste objects_x. Se non si verificano query lente, è consigliabile utilizzare queste viste per recuperare i dati delle associazioni. Per saperne di più, vedere le viste associations_x_to_y qui di seguito.
- Combinato: Tutti i record di tutti i tipi di associazione vengono combinati in un unico oggetto del database. Pertanto, quando si esegue una query, è necessario specificare un filtro come "WHERE combinedassociationtypeid='0-32' ". Per saperne di più, vedere le associazioni e le definizioni_di_associazione qui di seguito.
associazioni_x_a_y viste
Ogni tipo di associazione ha una propria vista, etichettata come associations_<nome del tipo di associazione>, ad esempio associations_contacts_to_deals. Ogni vista è un sottoinsieme dei dati dell'oggetto database delle associazioni e contiene solo i record di uno specifico tipo di associazione combinato.
Ogni oggetto del database restituisce le seguenti colonne:
Nome della colonna |
Tipo |
Descrizione |
TIPO DI ASSOCIAZIONE COMBINATA |
Varchar |
L'identificatore univoco della definizione di associazione. |
CATEGORIA DI ASSOCIAZIONE |
Varchar |
L'origine del tipo di associazione. Una delle seguenti opzioni: HUBSPOT_DEFINED, USER_DEFINED, INTEGRATOR_DEFINED |
ASSOCIAZIONE-TIPOID |
Varchar |
Identificatore univoco di una definizione di associazione all'interno di una specifica categoria di associazione, vale a dire che non esistono due definizioni in una categoria di associazione con lo stesso associationtypeid. |
FROMOBJECTTYPEID |
Varchar |
L'ID dell'oggetto che è l'origine della definizione di associazione. |
DAOGGETTITIPO |
Varchar |
Il nome del tipo di oggetto che è l'origine della definizione di associazione. |
ID TOOBJECTTYPEID |
Varchar |
Il tipo di oggetto che è la destinazione della definizione di associazione. |
TOOBJECTTYPE |
Varchar |
Il nome del tipo di oggetto che è la destinazione della definizione di associazione. |
NOME |
Varchar |
Il nome della definizione di associazione. |
ETICHETTA |
Varchar |
Descrizione della definizione dell'associazione. |
DEFINIZIONE DI ASSOCIAZIONE PRINCIPALE |
Booleano |
Se la definizione dell'associazione è il tipo principale. Se è vero, la definizione è quella che HubSpot visualizza sui record associati. |
[FROMOBJECTTYPE_OBJECTID] ad esempio per la vista ASSOCIATIONS_CONTACTS_TO_DEALS, sarà CONTACT_OBJECTID |
Numero |
L'ID oggetto dell'oggetto sorgente. |
[TOOBJECTTYPE_OBJECTID] ad esempio per la vista ASSOCIATIONS_CONTACTS_TO_DEALS, sarà DEAL_OBJECTID |
Numero |
L'ID oggetto dell'oggetto di destinazione. |
INGESTEDAT |
Timestamp |
La data e l'ora in cui i dati sono stati ingeriti per l'ultima volta da Snowflake. |
Esempio 1
Recupera tutte le offerte associate a un contatto specifico.
Interrogazione:
SELECT
contact_objectId, deal_objectId
FROM associazioni_contatti_a_deal
DOVE contactId = 6626541373
Restituzione:
OGGETTO_CONTATTO |
DEAL_OBJECTID |
6626541373 |
233620335 |
6626541373 |
90253678 |
Esempio 2
Recupera tutti i contatti con sede nel fuso orario di Bogotà e le loro offerte.
SELECT contacts.property_firstname contact_firstname,
contacts.property_lastname contact_lastname,
contacts.property_email contact_email,
deals.property_dealtype deal_type, deals.property_amount deal_amount
FROM objects_contacts contacts
JOIN associations_contacts_to_deals assoc on
assoc.contact_objectid=contacts.objectid
JOIN objects_deals deals on deals.objectid=assoc.deal_objectid
where contacts.property_hs_timezone='america_slash_bogota'
NOME_CONTATTO |
NOME_CONTATTO |
EMAIL DI CONTATTO |
TIPO_DIFFUSO |
IMPORTO_DEL_DETTAGLIO |
Davide |
Magalhães |
dmagalhaes@example.com |
newbusiness |
74848 |
Fernanda |
Rodrigues |
fmoreira@example.com |
newbusiness |
253530 |
Esempio 3
Recupera tutti i contatti e la somma totale delle transazioni chiuse per ogni contatto.
SELECT SUM(deals.property_hs_closed_amount) AS
total_closed_amount, contacts.property_email contact_email
FROM objects_contacts contacts
JOIN associations_contacts_to_deals assoc on
assoc.contact_objectid=contacts.objectid
JOIN objects_deals deals on deals.objectid=assoc.deal_objectid
GROUP BY contact_email
ORDER BY total_closed_amount DESC
Restituzione:
IMPORTO TOTALE CHIUSO |
EMAIL DI CONTATTO |
98474793 |
johndoe@riverview.com |
849488 |
sallymae@longford.com |
definizioni_di_associazione
Questo oggetto database contiene informazioni su tutti i tipi di associazione disponibili tra gli oggetti HubSpot, con una riga per tipo di associazione. È possibile unire questo oggetto database con l'oggetto database associazioni per ottenere informazioni sulle associazioni specifiche del record.
Possono esistere più tipi di associazioni tra gli stessi oggetti. Il tipo di associazione principale, che è quello visualizzato in HubSpot quando i record sono associati, utilizza l'associazione in cui ISMAINASSOCIATIONDEFINITION
è true
.
Questo oggetto di database può restituire le seguenti colonne:
Nome della colonna | Tipo | Descrizione |
COMBINEDASSOCIATIONTYPEID |
Varchar | L'identificatore univoco della definizione di associazione. |
CATEGORY |
Varchar | L'origine del tipo di associazione. Una delle seguenti opzioni: HUBSPOT_DEFINED , USER_DEFINED , INTEGRATOR_DEFINED |
ID |
Numero | L'identificatore della definizione di associazione all'interno della sua categoria. |
FROMOBJECTTYPEID |
Varchar | L'ID dell'oggetto che è l'origine della definizione di associazione. |
TOOBJECTTYPEID |
Varchar | L'ID dell'oggetto che è la destinazione della definizione di associazione. |
NAME |
Varchar | Il nome della definizione di associazione. |
LABEL |
Varchar | L'etichetta della definizione di associazione. |
ISMAINASSOCIATIONDEFINITION |
Booleano | Se la definizione di associazione è il tipo principale. Se è vero, la definizione è quella che HubSpot visualizza sui record associati. |
INGESTEDAT |
Timestamp | La data e l'ora in cui i dati sono stati ingeriti per l'ultima volta da Snowflake. Per saperne di più sui tipi di dati delle colonne. |
Esempio 1
Recuperare i tipi di associazioni disponibili nel proprio account.
Interrogazione:
SELECT combinedAssociationTypeId, fromObjectTypeId, toObjectTypeId, name
FROM association_definitions
ORDER BY category, id
Restituzione:
TIPO DI ASSOCIAZIONE COMBINATA | FROMOBJECTTYPEID | ID TOOBJECTTYPEID | NOME |
0-1 | 0-1 | 0-2 | CONTATTO_A_AZIENDA |
0-2 | 0-2 | 0-1 | AZIENDA_DA_CONTATTARE |
0-3 | 0-3 | 0-1 | ACCORDO_A_CONTATTO |
0-4 | 0-1 | 0-3 | CONTATTO_PER_L'AFFARE |
0-5 | 0-3 | 0-2 | ACCORDO_A_AZIENDA |
... | ... | ... | ... |
Esempio 2
Recupera i tipi di associazione disponibili tra le transazioni e le aziende.
Interrogazione:
SELECT
combinedAssociationTypeId, fromObjectTypeId, toObjectTypeId, name
FROM association_definitions
WHERE fromObjectTypeId = '0-3' AND toObjectTypeId = '0-2'
AND isMainAssociationDefinition = trueORDER BY category, id
Restituzione:
TIPO DI ASSOCIAZIONE COMBINATA | FROMOBJECTTYPEID | ID TOOBJECTTYPEID | NOME |
0-5 | 0-3 | 0-2 | ACCORDO_A_AZIENDA |
0-271 | 0-3 | 0-2 | ACCORDO_A_A_AZIENDA_PRIMARIA |
0-341 | 0-3 | 0-2 | ACCORDO_A_COMAPNY_NON_ETICHETTATO |
associazioni
Questo oggetto del database contiene informazioni sulle associazioni tra record specifici. Ogni riga rappresenta un'associazione tra un oggetto e un altro oggetto. Le righe possono essere presenti in questo oggetto database anche se i record di riferimento sono stati cancellati. È possibile verificare l'esistenza di record mediante un'associazione con la tabella degli oggetti.
Questo oggetto di database può essere utile se l'account ha una grande quantità di dati, con conseguente lentezza delle viste associations_x_to_y.
Questo oggetto di database può restituire le seguenti colonne:
Nome della colonna | Tipo | Descrizione |
COMBINEDASSOCIATIONTYPEID |
Varchar | L'identificatore univoco della definizione di associazione. |
FROMOBJECTID |
Numero | L'ID dell'oggetto sorgente. |
TOOBJECTID |
Numero | L'ID dell'oggetto di destinazione. |
INGESTEDAT |
Timestamp | La data e l'ora in cui i dati sono stati ingeriti per l'ultima volta da Snowflake. Per saperne di più sui tipi di dati delle colonne. |
Esempio 1
Recupera tutte le offerte e i contatti associati.
Interrogazione:
SELECT combinedAssociationTypeId, fromObjectId, toObjectId
FROM associations
WHERE combinedAssociationTypeId = '0-5'
Restituzione:
TIPO DI ASSOCIAZIONE COMBINATA | FROMOBJECTID | TOOBJECTID |
0-5 | 6626541373 | 233620335 |
0-5 | 6616436082 | 3866015468 |
0-5 | 6690805943 | 7132752747 |
... | ... | ... |
Esempio 2
Recupera tutti i ticket associati a un contatto specifico (ID contatto: 3005).
Interrogazione:
SELECT combinedAssociationTypeId, fromObjectId, toObjectId
FROM associations
WHERE associationCategory = 'HUBSPOT_DEFINED'
AND combinedAssociationTypeId = '0-15'
AND fromObjectId = 3005;
Restituzione:
TIPO DI ASSOCIAZIONE COMBINATA | FROMOBJECTID | TOOBJECTID |
0-5 | 6626541373 | 233620335 |
Esempio 3
Recupera tutte le offerte associate a un contatto specifico (ID contatto: 4464). Invece di codificare in modo rigido combinedAssociationTypeId, questo esempio si unisce a association_definitions.
Interrogazione:
SELECT combinedAssociationTypeId, fromObjectId toObjectId,
FROM associations
WHERE
combinedAssociationTypeId = (
SELECT combinedAssociationTypeId
FROM association_definitions
WHERE fromObjectTypeId = '0-1'
AND toObjectTypeId = '0-3'
AND isMainAssociationDefinition)
AND fromObjectId = 4464;
Restituzione:
TIPO DI ASSOCIAZIONE COMBINATA | FROMOBJECTID | TOOBJECTID |
0-5 | 6626541373 | 233620335 |
Domande del proprietario
proprietari
Questo oggetto del database contiene informazioni sugli utenti dell'account HubSpot. Gli utenti possono essere impostati come proprietari di record e conterranno sia un ID utente che un ID proprietario, a seconda del contesto. Entrambi gli ID possono essere utilizzati per identificare lo stesso utente.
Questo oggetto di database può restituire le seguenti colonne:
Nome della colonna | Tipo | Descrizione |
OWNERID |
Numero | L'ID proprietario dell'utente. |
USERID |
Numero | ID utente dell'utente. Gli utenti con NULL in questa colonna sono stati eliminati. |
EMAIL |
Varchar | L'indirizzo e-mail dell'utente. |
FIRSTNAME |
Varchar | Nome dell'utente. |
LASTNAME |
Varchar | Il cognome dell'utente. |
ARCHIVED |
Booleano | Se l'utente è stato cancellato. |
CREATEDAT |
Timestamp | La data e l'ora di creazione dell'utente in HubSpot. Per ulteriori informazioni, vedere i tipi di dati delle colonne. |
UPDATEDAT |
Timestamp | La data e l'ora dell'ultimo aggiornamento dell'utente in HubSpot. Per ulteriori informazioni, vedere i tipi di dati delle colonne. |
INGESTEDAT |
Timestamp | La data e l'ora in cui i dati sono stati ingeriti per l'ultima volta da Snowflake. |
Esempio 1
Recupera tutti gli utenti. Il filtro WHERE archived = false
rimuove gli utenti eliminati dai dati restituiti.
Interrogazione:
SELECT ownerId, userId, email, firstname, lastname
FROM owners
WHERE archived = false
Restituzione:
PROPRIETÀ | ID UTENTE | MANDATO | NOME | COGNOME |
29584574 | 4621126 | 233620335 | Hobbes | Barone |
30532717 | 4874784 | 3866015468 | Pablo | Walters |
30580321 | 925511 | 7132752747 | Milo | Oro |
... | ... | ... | ... | ... |
Esempio 2
Recupera un proprietario specifico in base al suo ID.
Interrogazione:
SELECT ownerId, userId, email, firstname, lastname
FROM owners
WHERE ownerId = 29584574;
Restituzione:
PROPRIETÀ | ID UTENTE | MANDATO | NOME | COGNOME |
29584574 | 4621126 | 233620335 | Hobbes | Barone |
Esempio 3
Recupera tutti i contatti e i loro proprietari. Questa query unisce i record ai proprietari con object_with_object_properties e la proprietà del contatto hubspot_owner_id.
SELECT
contact.objectId contactid,
contact.property_firstname contact_firstname,
contact.property_lastname contact_lastname,
contact.property_hubspot_owner_id contact_hubspot_owner_id,
owner.firstname owner_firstname,
owner.lastname owner_lastname,
owner.email owner_email
FROM objects_contacts contact
JOIN owners owner ON contact.property_hubspot_owner_id = owner.ownerId
Restituzione:
CONTATTO | NOME_CONTATTO | NOME_CONTATTO | CONTATTO_HUBSPOT_PROPRIETARIO_ID | NOME_PROPRIETARIO | NOME_PROPRIETARIO | INDIRIZZO E-MAIL DEL PROPRIETARIO |
113834202 | Riccardo | Greenfield | 29584574 | Hobbes | Barone | hobbes.b@business.com |
53540801 | Ford | Karl | 30241125 | Milo | Oro | milo.g@business.com |
... | ... | ... | ... | ... | ... | ... |
Domande del team
squadre
I team di HubSpot consentono di organizzare gli utenti in gruppi per scopi organizzativi e di reporting. È possibile avere un team principale e altri team.
Questo oggetto del database contiene informazioni sui team dell'account HubSpot.
Questo oggetto di database può restituire le seguenti colonne:
Nome della colonna | Tipo | Descrizione |
TEAMID | Numero | L'ID della squadra. |
NOME SQUADRA | Varchar | Il nome della squadra. |
PARENTTEAMIDO | Numero | L'ID della squadra madre. |
BAMBINI-TEAMIDI | Array | Gli ID delle squadre figlio. |
SOCI PROPRIETARI PRIMARI | Varchar | Gli ID proprietario dei membri primari del team. |
MEMBRI SECONDARI | Booleano | Gli ID proprietari dei membri secondari del team. |
INGESTEDAT | Timestamp | La data e l'ora in cui i dati sono stati ingeriti per l'ultima volta da Snowflake. |
Esempio 1
Recuperare tutte le squadre.
Interrogazione:
SELECT teamId,teamName, primaryOwnerMembers
DAI team
Restituzione:
TEAMID | NOME SQUADRA | SOCI PROPRIETARI PRIMARI |
29584574 | Sottogruppo | [233620335, 1234553] |
30532717 | Super squadra | [3866015468, 126221873] |
3058032 | Una squadra | [7132752747] |
squadra_proprietario
Questo oggetto del database contiene informazioni su quali proprietari corrispondono a quali team nel vostro account HubSpot.
Questo oggetto di database può restituire le seguenti colonne:
Nome della colonna | Tipo | Descrizione |
TEAMID | Numero | L'ID della squadra. |
PROPRIETÀ | Numero | L'ID proprietario dell'utente. |
ISTEMPRIMARIO | Booleano | Se questa squadra è la squadra principale per questo proprietario. |
INGESTEDAT | Timestamp | La data e l'ora in cui i dati sono stati ingeriti per l'ultima volta da Snowflake. |
Esempio 1
Recupera tutti i proprietari di una determinata squadra.
Interrogazione:
SELECT teamId, ownerId, isTeamPrimary
FROM teams
WHERE teamId = 29584574
Restituzioni
TEAMID | NOME SQUADRA | ISTEMPRIMARIO |
29584574 | 233620335 | VERO |
29584574 | 1234553 | VERO |
Interrogazione della pipeline
Di seguito, scoprirete come interrogare idati della pipeline di transazioni e ticket, come le pipeline disponibili nel vostro account e le loro fasi.
È possibile unire questi dati con quelli degli oggetti per ottenere una visione completa delle pipeline. Ad esempio, è possibile interrogare le transazioni e le relative pipeline unendo i dati object_deals_view o object_with_object_properties con i dati delle pipeline.
condutture
Questo oggetto di database contiene informazioni sulle pipeline di trattative e di ticket presenti nell'account. Ogni riga restituita rappresenta una singola pipeline.
Questa tabella può restituire le seguenti colonne:
Nome della colonna | Tipo | Descrizione |
PIPELINEID |
Varchar | L'ID della condotta. |
OBJECTTYPEID |
Varchar | L'ID dell'oggetto che la pipeline può contenere (ad esempio, offerte o biglietti). |
LABEL |
Varchar | Il nome della pipeline in HubSpot. |
DISPLAYORDER |
Numero | L'ordine di visualizzazione della pipeline in HubSpot. |
ARCHIVED |
Booleano | Se la pipeline è stata cancellata. |
CREATEDAT |
Timestamp | Quando è stata creata la pipeline. |
UPDATEDAT |
Timestamp | La data e l'ora dell'ultimo aggiornamento dei dati in HubSpot. Per saperne di più sui tipi di dati delle colonne. |
INGESTEDAT |
Timestamp | La data e l'ora in cui i dati sono stati ingeriti per l'ultima volta da Snowflake. |
Esempio 1
Recupera tutte le deal pipeline disponibili, ordinate in base al loro ordine in HubSpot.
Interrogazione:
SELECT objectTypeId, pipelineId, label
FROM pipelines
WHERE objectTypeId = '0-3'
AND not archived
ORDER BY displayorder;
Restituzione:
TIPO DI OGGETTO | PIPELINEID | ETICHETTA |
0-3 | 1bed503c-37f7-4f51-9d40-7598902673f4 | Pipeline di vendita |
0-3 | 12659678 | Licenze Pipeline |
0-3 | 75e28846-ad0d-4be2-a027-5e1da6590b98 | Nuovi affari |
... | ... | ... |
Esempio 2
Recupera gli affari all'interno di una pipeline specifica. Unisce object_with_object_properties e pipeline.
Interrogazione:
SELECT
deals.objectId deal_id,
deals.property_dealname deal_name,
pipelines.label pipeline_name
FROM objects_deals deals
INNER JOIN pipelines
ON deals.objectTypeId = pipelines.objectTypeId
AND deals.property_pipeline = pipelines.pipelineid
WHERE pipelines.objectTypeId = '0-3';
Restituzione:
ID DEAL | NOME DEAL | NOME TUBO |
605140072 | Iscrizione globale a Meowmix | Pipeline di vendita |
605457408 | Marchio Friskies | Pipeline di vendita |
604362473 | Costruire un'app a passi freschi | Pipeline di vendita |
Esempio 3
Come nell'esempio 2, recuperare le offerte all'interno di una pipeline specifica. Ma, invece di usare objects_deals nei join, usare object_with_object_properties.
SELECT
deals.objectId deal_id,
deals.properties:dealname::varchar deal_name,
pipelines.label pipeline_name
FROM object_with_object_properties deals
INNER JOIN pipelines
ON deals.objectTypeId = pipelines.objectTypeId
AND deals.properties:pipeline::string = pipelines.pipelineid
WHERE deals.objecttypeId = '0-3'
AND pipelines.objectTypeId = '0-3';
Restituzione:
ID DEAL |
NOME DEAL |
NOME TUBO |
605140072 |
Iscrizione globale a Meowmix |
Pipeline di vendita |
605457408 |
Marchio Friskies |
Pipeline di vendita |
604362473 |
Costruire un'app a passo fresco |
Pipeline di vendita |
Stadi della pipeline
Questa vista contiene informazioni sulle singole fasi di una pipeline. Gli stadi si identificano combinando l'ID del tipo di oggetto, l'ID della pipeline e l'ID dello stadio. Quando ci si unisce alle pipeline, si usa l'ID del tipo di oggetto e l'ID della pipeline.
Questo oggetto di database può restituire le seguenti colonne:
Nome della colonna | Tipo | Descrizione |
PIPELINEID |
Varchar | L'ID della condotta. |
STAGEID |
Varchar | L'ID del palcoscenico. |
LABEL |
Varchar | Il nome dello stage in HubSpot. |
DISPLAYORDER |
Numero | L'ordine di visualizzazione della pipeline in HubSpot. |
METADATA |
Variante | Una descrizione formattata in JSON della tappa, che indica se è aperta o chiusa. |
ARCHIVED |
Booleano | Se la fase della pipeline è stata cancellata. |
CREATEDAT |
Timestamp | Quando è stata creata la fase della pipeline. |
Esempio 1
Recupera le fasi della pipeline per una pipeline di trattative denominata Pipeline di vendita.
Interrogazione:
SELECT pipelineid, stageId, label
FROM pipeline_stages
WHERE not archived
AND pipelineid = (
SELECT pipelineid
FROM pipelines
WHERE objectTypeId = '0-3'
AND not archived
AND label = 'Sales Pipeline' LIMIT 1)
ORDER BY displayorder;
Restituzione:
PIPELINEID | STAGEID | ETICHETTA |
941650 | 941651 | Contattato |
941650 | 941652 | Appuntamento fissato |
941650 | 941653 | Fattura inviata |
... | ... | ... |
Esempio 2
Recupera tutti gli accordi e le rispettive fasi della pipeline.
Interrogazione:
SELECTdeals.objectId deal_id,
deals.properties:dealname::varchar deal_name,
pipelines.label pipeline_name,
pipeline_stages.label pipeline_stage_name
FROM object_with_object_properties deals
INNER JOIN pipelines
ON deals.objectTypeId = pipelines.objectTypeId
AND deals.properties:pipeline::string = pipelines.pipelineid
INNER JOIN pipeline_stages
ON deals.objectTypeId = pipeline_stages.pipelineid
AND deals.properties:pipeline::string = pipeline_stages.pipelineid
AND deals.properties:dealstage::string = pipeline_stages.stageId
WHERE deals.objecttypeId = '0-3';
Restituzione:
ID DEAL | NOME DEAL | NOME TUBO | NOME_PIPELINE_STAGE |
605140072 | Iscrizione globale a Meowmix | Pipeline di vendita | Contratto inviato |
605457408 | Marchio Friskies | Pipeline di vendita | Appuntamento fissato |
604362473 | Costruire un'app a passo fresco | Pipeline di vendita | Contratto firmato |
... | ... | ... | ... |
Domande sulla proprietà
definizioni_di_proprietà
Questo oggetto del database contiene informazioni sulle proprietà degli oggetti e sugli eventi dell'account HubSpot. Le proprietà degli eventi includono eventi standard, come le aperture e i clic delle e-mail, e proprietà di eventi comportamentali personalizzati. Queste informazioni possono essere utili per definire i valori presenti nei dati object_properties ed events.
È possibile identificare proprietà specifiche combinando l'ID del tipo di oggetto e il nome. È possibile recuperare informazioni simili utilizzando l'API delle proprietà.
Questo oggetto di database può restituire le seguenti colonne:
Nome della colonna | Tipo | Descrizione |
OBJECTYPEID |
Varchar | L'ID dell'oggetto a cui si riferisce l'evento. |
NAME |
Varchar | Nome interno della proprietà. |
LABEL |
Varchar | L'etichetta della proprietà. |
DESCRIPTION |
Varchar | La descrizione della proprietà. |
TYPE |
Varchar | Il tipo di proprietà (ad esempio, stringa, numero, data). |
FIELDTYPE |
Varchar | Il tipo di campo della proprietà. Definisce la modalità di visualizzazione della proprietà in HubSpot e nei moduli (ad esempio, casella di controllo, selezione). |
DISPLAYORDER |
Numero | L'ordine di visualizzazione della proprietà. |
GROUPNAME |
Varchar | Il nome del gruppo della proprietà. |
OPTIONS |
Variante | Per le proprietà enumerative, una matrice delle opzioni della proprietà, compresi gli attributi di ciascuna opzione (ad esempio, ordine di visualizzazione, etichetta). |
CREATEDUSERID |
Numero | L'ID dell'utente che ha creato la proprietà. |
REFERENCEDOBJECTTYPE |
Varchar | Il tipo di oggetto a cui fa riferimento la proprietà. Le proprietà Owner restituiranno il valore OWNER. |
CALCULATED |
Booleano | Se la proprietà è una proprietà calcolata. |
EXTERNALOPTIONS |
Booleano | Se le opzioni della proprietà sono definite in un sistema esterno. |
HASUNIQUEVALUE |
Booleano | Se i valori della proprietà sono unici. Può essere impostato solo quando si crea una proprietà tramite l'API. |
HIDDEN |
Booleano | Se la proprietà è nascosta in HubSpot. |
SHOWCURRENCYSYMBOL |
Booleano | Se il valore di una proprietà numerica è formattato come valuta. |
FORMFIELD |
Booleano | Se questa proprietà può essere utilizzata nei moduli. |
READONLYDEFINITION |
Booleano | Se la proprietà può essere modificata in HubSpot. |
READONLYVALUE |
Booleano | Se il valore della proprietà può essere modificato in HubSpot. |
HUBSPOTDEFINED |
Booleano | Se la proprietà è stata creata da HubSpot o da un utente. |
ARCHIVED |
Booleano | Se la proprietà è stata eliminata. |
CREATEDAT |
Timestamp | La data e l'ora in cui la proprietà è stata creata in HubSpot. |
UPDATEDAT |
Timestamp | La data e l'ora dell'ultimo aggiornamento dei dati in HubSpot. Per saperne di più sui tipi di dati delle colonne. |
INGESTEDAT |
Timestamp | La data e l'ora in cui i dati sono stati ingeriti per l'ultima volta da Snowflake. |
Esempio 1
Recupera i nomi e le descrizioni di tutte le proprietà dei contatti.
Interrogazione:
SELECT name, label, description
FROM property_definitions
WHERE objectTypeId = '0-1'
Restituzione:
NOME | ETICHETTA | DESCRIZIONE |
inserito_sql_stage | Entrata nella fase SQL | Inizio conteggio giorni tappa SQL. |
nome_evento_di_conversione
|
Prima conversione | Il primo modulo inviato da questo contatto. |
indirizzo | Indirizzo stradale | L'indirizzo del contatto. |
Richieste di eventi
Gli eventi comprendono eventi standard di HubSpot ed eventi comportamentali personalizzati. Ogni evento ha un proprio oggetto di database, etichettato come events_eventname
.
Nome | |
EVENTI_AD_INTERAZIONE | Dettagli di un annuncio e contatti che hanno interagito con esso facendo clic sull'annuncio o inviando un modulo dopo averlo letto. |
EVENTI_AD_METRICHE_IMPORTATE_V0 |
Dettagli di un annuncio e delle sue metriche di performance. |
PAROLA_CHIAVE_CITATA_DEGLI_EVENTI | Dettagli sulle parole chiave citate da tutti i partecipanti alle chiamate. |
EVENTI_CLICCATI_COLLEGAMENTO_IN_EMAIL_V2 |
Link cliccati dai contatti nelle e-mail di marketing. |
EVENTI_CLICCATI_COLLEGAMENTO_IN_TRACCIA_INBOX_EMAIL_V8 | Link cliccati dai contatti nelle e-mail di Conversations Inbox. |
EVENTI_COOKIE_BANNER_CLICCATI | Contatti che hanno fatto clic sui cookie. |
EVENTI_COOKIE_BANNER_VISTI | Contatti che hanno visualizzato i cookie. |
EVENTI_DOCUMENTO_CONDIVISO_V2 | Documenti di vendita condivisi con i contatti tramite un link esterno. |
EVENTI_DOCUMENTO_VISTI_V2 | Documenti di vendita e contatti che hanno visualizzato aprendo il link esterno. |
EVENTI_DOCUMENTO_COMPLETATO_V2 | Documenti di vendita e contatti che li hanno chiusi. |
EVENTI_HS_SCHEDULED_EMAIL_V2 | Le e-mail inviate ai server di posta elettronica di HubSpot per essere spedite. |
EVENTI_MTA_CONSEGNATI_EMAIL_V2 | Email consegnate con successo ai destinatari dai server email di HubSpot. |
EVENTI_MTA_BOUNCED_EMAIL_V2 | Tentativi di consegna delle e-mail che sono stati rifiutati dal server e-mail del destinatario. |
EVENTI_APERTI_EMAIL_V2 | Apertura delle e-mail da parte dei contatti. |
EVENTI_RIPORTATI_SPAM_EMAIL_V2 | Email contrassegnate come spam dai destinatari. |
EVENTI_AGGIORNATI_EMAIL_STATO_DELL'ABBONAMENTO_V2 | Modifiche alle iscrizioni alle e-mail da parte dei destinatari. |
EVENTI_APERTI_TRACCIATI_INBOX_EMAIL_V8 | Apertura delle e-mail della casella di posta elettronica di Conservations Inbox da parte dei contatti. |
EVENTI_MB_MEDIA_GIOCATI | Attività di riproduzione video per contatti. |
EVENTI_V2_CONTATTO_PRENOTAZIONE_RIUNIONE_ATTRAVERSO_SEQUENZA | Il contatto ha prenotato un incontro attraverso la sequenza. |
EVENTI_V2_CONTATTI_ISCRITTI_IN_SEQUENZA | Contatto iscritto dalla sequenza. |
EVENTI_V2_CONTATTO_FINITO_SEQUENZA | Sequenza terminata. |
EVENTI_V2_CONTATTO_RISPOSTA_SEQUENZA_EMAIL | Il contatto ha risposto all'e-mail (o all'e-mail in arrivo che ha disiscritto la sequenza) inviata attraverso la sequenza. |
EVENTI_V2_CONTATTI_NON_ISCRITTI_DA_SEQUENZA | Contatto non iscritto alla sequenza. |
EVENTI_V2_CONTATTI_NON_ISCRITTI_MANUALMENTE_DA_SEQUENZA | L'utente ha disiscritto manualmente il contatto. |
EVENTI_V2_CONTATTO_NON_SOTTOSCRITTO_SEQUENZA_EMAIL | Il contatto ha annullato l'iscrizione, disiscrivendo la sequenza. |
EVENTI_V2_SEQUENZA_EMAIL_COMUNICATI | L'e-mail di sequenza è stata respinta. |
EVENTI_V2_SEQUENZA_ERRATA | Sequenza errata che causa la disiscrizione. |
EVENTI_V2_SEQUENZA_PASSO_ESEGUITO | Fase della sequenza eseguita. |
PAGINA_EVENTI_VISITATI | Visite alle pagine del sito web da parte dei contatti. |
EVENTI_<NOME_EVENTO_DI_INTEGRAZIONE>_<IDENTIFICATORE_UNICO> | Eventi di integrazione(API Timeline V3) |
È possibile identificare gli eventi combinando l'ID del tipo di evento e l'ID. Le colonne che vengono restituite dipendono dall'evento, con una colonna per ogni proprietà dell'evento. Tutti gli eventi restituiscono le seguenti colonne:
Nota bene: HubSpot ha aggiunto due nuove colonne a tutte le tabelle e le viste degli eventi:
occurredat
occurredatdateint
Queste colonne sostituiranno le colonne occuredat
e occuredatdateint
il 24 novembre 2022. In tale data, le vecchie colonne non saranno più disponibili e i tentativi di interrogare un oggetto o una vista del database contenente eventi che utilizzano tali colonne falliranno. Per saperne di più sui cambiamenti di rotta per le condivisioni di dati Snowflake.
Nome della colonna | Tipo | Descrizione |
EVENTTYPEID |
Varchar | L'ID del tipo di evento, simile a OBJECTTYPEID. È possibile interrogare tutti gli ID degli eventi nel proprio account utilizzando la vista object_and_event_type_definitions. |
ID |
Varchar | È unico per ogni tipo di evento. Non esistono due record con lo stesso ID all'interno di un determinato tipo di evento. |
OBJECTTYPEID |
Varchar | Il tipo di oggetto che ha completato l'evento. Ad esempio, un clic su un link di posta elettronica visualizzerà 0-1 in questa colonna, che rappresenta l'oggetto Contatti. |
OBJECTID |
Numero | L'ID del record che ha completato l'evento. |
OCCURREDAT |
Timestamp | Quando si è verificato l'evento. |
|
Numero | Un numero che rappresenta la data in cui si è verificato l'evento. Contiene gli stessi dati della colonna OCCURREDAT , ma formattati come numero e utilizzati come parte della chiave cluster della tabella. Nella maggior parte dei casi, è possibile utilizzare il timestamp OCCURREDAT al posto di questo numero. |
|
Numero | Un numero che rappresenta la data in cui si è verificato l'evento. Contiene gli stessi dati della colonna Attenzione: questa colonna sarà deprecata il 24 novembre 2022 e sostituita da |
OCCUREDAT |
Timestamp | Quando si è verificato l'evento. Attenzione: questa colonna sarà deprecata il 24 novembre 2022 e sostituita da |
INGESTEDAT |
Timestamp | La data e l'ora in cui i dati sono stati ingeriti per l'ultima volta da Snowflake. Per saperne di più sui tipi di dati delle colonne. |
PROPERTY_* |
Varchar | Singole colonne contenenti le proprietà dell'evento. |
Esempio 1
Recupera i 50 eventi di clic più recenti delle e-mail.
Interrogazione:
SELECT eventTypeId, objectTypeId, objectId, occuredAt, property_hs_click_raw_url AS hs_click_raw_url
FROM events_clicked_link_in_email_V2
ORDER BY occuredAt
LIMIT 50;
Restituzione:
EVENTTYPEID | TIPO DI OGGETTO | OGGETTO | OCCORRENTE | HS_CLICK_RAW_URL |
4-666288 | 0-1 | 45318579 | 2016-08-04 21:06:43.245 | http://website.com?utm_campaign=Launch&utm_source=hs_email&utm_medium=email&utm_content=32520579 |
4-666288 | 0-1 | 80701 | 2016-08-29 13:31:28.622 | https://cta-image-cms2.hubspot.com/ctas/v2/public/cs/ci/?pg=f0f6585a-08fc-4273-8422-49cfaddcf8d8&pid=1976760&ecid=ACsprvtkRbakerw4BiWlaDL7xFAqau1aW9m1_PAqSfQiWarY69X7Ds42zHGYTCfhHJLrXUP86Nxu |
4-666288 | 0-1 | 26146013 | 2017-11-30 14:27:11.528 | https://hubs.ly/H097a37a?utm_source=hs_email&utm_medium=email&utm_content=58251290 |
... | ... | ... | ... | ... |
Esempio 2
Recupera tutti gli eventi di clic delle e-mail in base ai contatti che hanno fatto clic. Questa query ottiene i dati dei contatti unendoli a object_with_object_properties.
Interrogazione:
SELECT
click.occuredat click_timestamp,
click.property_hs_click_raw_url click_url,
contact.properties:firstname::varchar contact_firstname,
contact.properties:lastname::varchar contact_lastname
FROM events_clicked_link_in_email_V2 click
LEFT JOIN object_with_object_properties contact
ON click.objectTypeId = contact.objectTypeId
AND click.objectId = contact.objectId
LIMIT 3;
Restituzione:
CLICK_TIMESTAMP | CLICCA_URL | NOME_CONTATTO | NOME_CONTATTO |
2019-01-04 22:35:41.264 | https://help.website.com/articles/tutorial/how-to-use-email-tool?utm_source=hs_automation&utm_medium=email&utm_content=68042217 | Hobbes | Barone |
2018-11-08 09:37:41.400 | https://www.website.net/webinar-case-study?utm_source=hs_automation&utm_medium=email&utm_content=55200164 | Milo | Oro |
2018-11-08 09:37:41.426 | https://www.website.net/contact?utm_source=hs_automation&utm_medium=email&utm_content=55200164 | Harlow | Villari |
... | ... | ... | ... |
Richieste_di_tipo_di_oggetto_e_di_evento
definizioni_di_tipo_di_oggetto_e_di_evento
Questo oggetto del database contiene le definizioni di tutti gli oggetti e gli eventi disponibili nell'account HubSpot.
Questo oggetto di database può restituire le seguenti colonne:
Nome della colonna | Tipo | Descrizione |
OBJECTTYPEID |
Varchar | L'ID dell'oggetto che la pipeline può contenere (ad esempio, offerte o biglietti). |
FULLYQUALIFIEDNAME |
Varchar | Il nome dell'oggetto o dell'evento. |
INGESTEDAT |
Timestamp | La data e l'ora in cui i dati sono stati ingeriti per l'ultima volta da Snowflake. Per saperne di più sui tipi di dati delle colonne. |
Esempio 1
Recupera tutti gli oggetti e gli eventi disponibili nel vostro account HubSpot.
Interrogazione:
SELECT objectTypeId, fullyQualifiedName
FROM object_and_event_type_definitions;
Restituzione:
TIPO DI OGGETTO | NOME COMPLETAMENTE QUALIFICATO |
0-1 | CONTATTO |
0-8 | LINE_ITEM |
0-11 | CONVERSAZIONE |
... | ... |
Elenchi di query
Di seguito, si spiega come interrogare gli elenchi, ad esempio gli elenchi di contatti e di aziende disponibili e i record inclusi in tali elenchi.
elenchi
Questo oggetto di database contiene informazioni sugli elenchi di contatti e aziende di HubSpot. Restituisce una riga per ogni elenco e le colonne includono i dettagli dell'elenco, come il nome dell'elenco, le dimensioni e il tipo di oggetto dei record che contiene. Non contiene informazioni sui singoli record di ciascun elenco (vedere list_membership).
Questo oggetto di database può restituire le seguenti colonne:
Nome della colonna | Tipo | Descrizione |
OBJECTTYPEID |
Varchar | Il tipo di record dell'elenco (ad esempio, contatto o azienda). |
LISTID |
Numero | L'ID dell'elenco. Si unisce alla colonna LISTID della tabella List-Memberships. |
CLASSICLISTID |
Numero | Un ID specifico per gli elenchi di contatti che corrisponde all'ID nell'URL dell'elenco in HubSpot. |
NAME |
Varchar | Il nome dell'elenco. |
SIZE |
Numero | Il numero di record nell'elenco. |
CREATEDBYUSERID |
Numero | L'ID dell'utente che ha creato l'elenco. |
CREATEDAT |
Timestamp | Quando l'elenco è stato creato in HubSpot. |
UPDATEDBYUSERID |
Numero | L'ID dell'utente che ha aggiornato l'elenco più di recente. |
UPDATEDAT |
Timestamp | La data e l'ora dell'ultimo aggiornamento in HubSpot. Per saperne di più sui tipi di dati delle colonne. |
INGESTEDAT |
Timestamp | La data e l'ora in cui i dati sono stati ingeriti per l'ultima volta da Snowflake. |
Esempio 1
Recupera tutti gli elenchi di contatti.
Interrogazione:
SELECT listId, name, size
FROM lists
WHERE objectTypeId = '0-1';
Restituzione:
LISTA | NOME | DIMENSIONE |
118131 | Attività di sensibilizzazione settimanale | 103 |
66156 | Iscritti al blog | 455 |
771852 | Primi abbonati 2021 | 37 |
... | ... | ... |
Esempio 2
Recuperare un elenco di contatti specifico denominato Top subscribers 2021.
Interrogazione:
SELECT listId, name, size
FROM lists
WHERE objectTypeId = '0-1'
ANDlistName = 'Top subscribers 2021';
Restituzione:
LISTA | NOME | DIMENSIONE |
771852 | Primi abbonati 2021 | 37 |
elenco_membri
Questo oggetto database contiene informazioni su quali record sono membri di quali elenchi, con una riga per ogni record dell'elenco. Ad esempio, se si dispone di un elenco di iscritti al blog con 500 contatti, l'oggetto database restituirà 500 righe.
Contiene solo gli ID degli elenchi e gli ID degli oggetti. Per ulteriori informazioni, unirsi all'oggetto del database Elenchi.
Questo oggetto di database può restituire le seguenti colonne:
Nome della colonna | Tipo | Descrizione |
LISTID |
Varchar | L'ID dell'elenco. Si unisce alla colonna HS_LIST_ID della tabella elenchi. |
OBJECTID |
Varchar | L'ID del record nell'elenco. |
UPDATEDAT |
Timestamp | La data e l'ora dell'ultimo aggiornamento dei dati in HubSpot. Per saperne di più sui tipi di dati delle colonne. |
INGESTEDAT |
Timestamp | La data e l'ora in cui i dati sono stati ingeriti per l'ultima volta da Snowflake. |
Esempio 1
Recupera gli ID di tutti i contatti nell'elenco Top subscribers 2021.
Interrogazione:
SELECT objectId
FROM list_memberships
INNER JOIN lists
ON list_memberships.listId = lists.listId
WHERE lists.objectTypeId = '0-1'
AND lists.name = 'Top Subscribers 2021';
Restituzione:
OGGETTO |
54325098 |
96805401 |
6922028 |
... |
Esempio 2
Recupera i nomi e i cognomi dei contatti presenti nell'elenco Top subscribers 2021.
Interrogazione:
SELECT
contact.objectId AS objectid,
contact.property_firstname AS firstname,
contact.property_lastname AS lastname
FROM objects_contacts contact
INNER JOIN list_memberships ON contact.objectId = list_memberships.objectId
INNER JOIN lists ON list_memberships.listId = lists.listId
WHERE lists.objectTypeId = '0-1'
AND lists.name = 'Top Subscribers 2021'
Restituzione:
OGGETTO |
NOME |
COGNOME |
54325098 |
Hobbes |
Barone |
96805401 |
Milo |
Oro |
6922028 |
Enrico |
Riley |
... |
... |
... |
Domande frequenti
Voglio generare dati simili a quelli di un report dall'app di Hubspot, come posso fare?
In generale, si desidera esaminare le colonne presenti nel report con cui si effettua il confronto. Se la visualizzazione del report non è tabellare, la conversione in tabella mostrerà le colonne contenute nel report. Queste colonne sono solitamente proprietà di un tipo di oggetto o di un tipo di evento. Il passo successivo è capire a quale proprietà del tipo di oggetto corrisponde una colonna. È possibile farlo interrogando property_definitions:
SELECT * FROM property_definitions
WHERE label = [column_name]
Potrebbe non esserci sempre una corrispondenza esatta, perché alcuni nomi di proprietà vengono solitamente risolti con un nome più descrittivo nell'applicazione. In casi come questo, può essere utile fare una ricerca confusa usando l'operatore LIKE sulla colonna label (o anche description) in property_definitions.
Dopo aver determinato a quale tipo di oggetto appartiene la colonna, è banale determinare cosa interrogare. Si può semplicemente cercare la vista object_x che corrisponde al tipo.
Come posso collegare questo tipo di dati a un altro, ad esempio come recuperare i moduli per una campagna?
Se avete bisogno di collegare due o più record diversi tra loro, date un'occhiata alle associazioni. Le associazioni rappresentano le relazioni tra gli oggetti in HubSpot CRM. Tutte le diverse associazioni possibili tra due tipi sono elencate in association_definitions. Nell'esempio precedente, per conoscere tutti i moduli a cui è collegata una campagna, è necessario interrogare ASSOCIATIONS_CAMPAIGNS_TO_FORMS:
SELECT campaigns.property_hs_name campaign_name,
forms.property_hs_form_id form_id
FROM objects_campaigns campaigns
JOIN associations_campaigns_to_forms assoc ON
assoc.campaign_objectid=campaigns.objectid
JOIN objects_forms forms ON forms.objectid=assoc.form_objectid
GROUP BY campaign_name
Come faccio a conoscere lo stato dell'integrazione HubSpot-Snowflake?
Per ricevere aggiornamenti in tempo reale sullo stato delle interruzioni e dei problemi dell'integrazione HubSpot-Snowflake, interrogare la vista data_share_status:
SELECT * FROM hubspot.public.data_share_status
LIMIT 1
I risultati saranno visualizzati come:
STATO | MESSAGGIO | AGGIORNATOAT |
OK | NESSUN INCIDENTE NOTO AL MOMENTO | 2023-04-10 09:21:20.123 |
Questa vista fornisce aggiornamenti sullo stato dell'integrazione in ordine cronologico inverso. L'integrazione dei risultati di questa query in un dashboard consente di monitorare le prestazioni dell'integrazione e di individuare eventuali tempi di inattività o interruzioni.