在 Snowflake 中查询 HubSpot 数据
上次更新时间: 2025年12月31日
将Snowflake连接至您的HubSpot账户后,即可通过Snowflake的数据共享功能,直接从Snowflake账户查询HubSpot数据。
数据延迟与您的Snowflake账户区域
您将可访问每15分钟更新一次的V2_LIVE模式,以及每日更新一次的V2_DAILY模式。
请注意:V2_LIVE模式中的以下视图仅每日更新:association_definitions、owners、pipelines和pipeline_stages。
配置Snowflake环境
要在 Snowflake 中查询 HubSpot 数据,您需要选择要查询的数据仓库、数据库和模式。您可以在工作表级别设置这些选项,使其自动包含在查询中,也可以手动添加。
在工作表层级选择仓库、数据库和模式:
- 在工作表顶部行中,点击工作表操作栏。
- 在弹出窗口中:
环境配置完成后,您无需在查询中手动添加数据库或模式类型即可查询 HubSpot 数据。
若需手动在查询中添加数据库和模式类型,请在FROM字段开头添加数据库名称后跟模式名称。例如:
SELECT objectTypeId, property_createddateFROM hubspot_share_name.V2_LIVE.objects_deals
LIMIT 1
数据概览
查询通过SQL构建,可用于检索HubSpot数据,例如:
- 对象:标准 和自定义对象,例如联系人、公司、产品。
- 记录:单个 记录,例如单个联系人或公司。
- 关联:所有可用关联类型及当前关联记录。
- 事件:包含标准HubSpot事件(如邮件打开)和自定义行为事件的数据。
- 细分:HubSpot联系人细分和公司细分。
- 所有者:您HubSpot账户中的用户,与他们被设为所有者的记录相关联。
- 销售管道:交易和工单管道,包含管道阶段。
- 属性:CRM记录中的属性及其值,包含属性历史记录。
了解更多 HubSpot的CRM数据模型。
请注意: 随着数据共享功能的持续优化,我们将引入变更(部分为破坏性变更)。强烈建议订阅HubSpot 开发者变更日志。所有变更将在更新前提前发布至变更日志。
限制和排序返回数据
构建查询时,可通过添加LIMIT 和ORDER BY子句控制返回数据量及排序方式。例如查询所有联系人及其属性,但仅返回三个结果并按联系人ID排序,可构建如下查询:
SELECT objectTypeId, updatedAt, ingestedAtFROM 交易对象ORDER BY objectIdLIMIT 10;
列数据类型
在 Snowflake 中查询数据时,返回的列取决于查询对象。您可通过 左侧边栏选择视图 ,查看特定表或视图的可用列 。
请注意:本文档后续内容中,当上下文同时涉及表和视图时,将统一使用"数据库对象"这一术语。
要返回特定列,请在查询的SELECT字段中包含该列。例如,以下查询将仅返回OBJECTID和UpdatedAt列:
SELECTobjectId, updatedAtFROM objects_contacts
以下是查询可能返回的列的一般定义。其他未包含的定义请参阅上文中的各个视图定义。
- OBJECTTYPEID:表示对象类型的VARCHAR值。例如,0-1代表联系人对象,0-2代表公司对象,2-1232可能代表您账户中的自定义对象。在细分中,此字段指代细分类型(如联系人或公司)。 可通过object_and_event_type_definitions视图查询账户中所有对象和事件ID。
- OBJECTID:一个BIGINT数值,代表 HubSpot 账户中某对象类型的单条记录。要识别记录,需同时使用对象类型 ID 和对象 ID。
- INGESTEDAT:数据行添加至Snowflake的时间戳,以TIMESTAMP_NTZ值表示。此时间戳与HubSpot中创建或更新操作的逻辑时间戳无关。
- 由于 HubSpot 内部处理机制,即使行中其他列未变更,其摄入时间戳仍可能被更新。
- 构建复制最新变更数据的ETL流程时,建议以摄入时间戳作为查询基准。此外,若流程采用每日数据复制,建议同步前两日数据以应对延迟情况。
- CREATEDAT 和 UPDATEDAT:数据在 HubSpot 中创建或更新时的逻辑时间戳,以TIMESTAMP_NTZ 值 表示。这些时间戳将与 HubSpot 中的时间戳一致。 例如:HubSpot中记录创建时间显示的时间将与Snowflake中CREATEDAT列的时间戳完全一致。这些时间戳与摄取时间戳并无直接关联,不建议将ETL流程基于这些属性进行构建。
- COMBINEDASSOCIATIONTYPE:用于唯一标识关联定义的VARCHAR值。
数据类型转换
有时查询返回的VARCHAR列数据需要转换为其他类型。此类情况下建议使用Snowflake函数将VARCHAR数据类型转换为目标类型。例如:对象记录的属性在大多数数据库对象中以VARCHAR类型存储,但有时包含数字和日期时间值。可使用以下函数:
try_to_number、 try_to_timestamp_ntz可分别将 VARCHAR 数据转换为NUMBER和DATETIME类型:
SELECT objectid, value AS amount_str, try_to_number(value) AS amountFROM object_properties
WHERE objecttypeid='0-3' AND name='amount'
LIMIT 1
对象查询
下面将介绍如何查询特定 HubSpot 对象和记录中的数据,以及返回的数据内容。
不同类型的对象数据通过两种方式组织和提供:
- 个体视图:每种对象类型都存储在独立的视图中,且仅包含同类对象记录(例如 objects_contacts 仅包含联系人记录)。这消除了查询时指定 objecttypeid 的需求。由于无需了解对象类型ID,此类视图更易于查询。它们还以更易用的格式返回数据——每行对应一个对象及其当前版本的属性。 只要查询速度正常,建议使用这些视图检索对象数据。更多详情请参阅下文的Objects_X视图。
- 合并模式:所有 对象类型的记录合并为单一数据库对象。因此查询时需添加过滤条件如“WHERE objectTypeId='0-1'”。例如可使用以下对象类型ID进行查询:
| 对象名称 | 对象类型ID |
| 联系人 | 0-1 |
| 公司 | 0-2 |
| 明细行 | 0-8 |
自定义对象在创建时会被分配一个ID,格式为2-唯一ID(例如2-12345)。更多详情请参阅object_and_event_type_definitions。
若需比 objects_x 视图更优的查询性能,通常建议使用此类数据库对象。更多细节请参阅下文的 object_with_object_properties、object_properties、objects 及 object_properties_history。
objects_x 视图
在此数据库对象中,每个可用对象类型(包括自定义对象)均拥有专属视图,每个视图仅包含该特定对象类型的记录。 这些视图的命名格式为 OBJECTS_<对象类型名称>,其中 <对象类型名称> 是对象类型的复数形式标签(请注意,如果对象类型没有复数形式,则 <对象类型名称> 将直接采用对象类型的单数形式标签后附加“S”)。
查询此视图时,每个对象记录将返回一行数据,对象的每个属性均作为独立列呈现。
下文列出了HubSpot(即非自定义)对象类型的完整清单,并简要说明了它们所代表的数据及其对应的视图:
| HubSpot 对象类型 |
对象类型ID |
描述 |
| 0-1 |
与您的业务互动的个人相关信息 |
|
| 0-2 |
关于个体企业或组织的信息 |
|
| 0-3 |
与联系人或公司相关的收入机会详情 |
|
| 0-4 |
存储来自CRM操作的数据,包括备注、任务、邮件、会议和通话 |
|
| 0-5 |
代表客户请求帮助或支持 |
|
| 0-14 |
用于向潜在买家提供报价信息 |
|
| 0-15 |
HubSpot表单中单个提交项的详细信息 |
|
| 0-8 |
代表交易中销售的产品子集。当产品关联到交易时,即成为明细项 |
|
| 0-11 |
来自多个渠道的收到的消息详情。 |
|
| 0-25 |
着陆页详情 |
|
| 0-27 |
存储待办事项列表信息 |
|
| 0-28 |
用于收集访客和联系人的潜在客户信息 |
|
| 0-29 |
来自营销中心的邮件详情 |
|
| AD_ACCOUNT |
0-30 |
存储您在领英、脸书和谷歌上的广告账户信息 |
| 0-31 |
广告活动详情。一个广告活动可包含一个或多个广告 |
|
| AD_GROUP |
0-32 |
广告系列内广告的逻辑分组 |
| AD |
0-33 |
单个广告的详细信息 |
| 0-35 |
有关相关营销资产和内容的信息,以便您轻松衡量整体营销活动的成效 |
|
| SITE_PAGE |
0-38 |
网站中各个页面的数据 |
| 0-39 |
关于博客文章的数据 |
|
| 0-45 |
基于对象记录属性或活动进行分组的信息 |
|
| 0-48 |
由其他CRM记录(如联系人)发起的调用 |
|
| 发票 |
0-53 |
管理并同步发票与外部会计系统 |
| 0-57 |
导入到Hubspot的媒体资产信息 |
|
| 0-58 |
序列是一系列定向、定时的电子邮件模板,用于长期培育联系人 |
|
| 0-62 |
可重复使用的保存邮件内容,用于发送邮件 |
|
| 0-72 |
交易分成用于在多个用户间分配交易佣金 |
|
| 0-83 |
销售文档构建内容库,供整个团队上传文档并与联系人共享 |
|
| 0-19 |
存储提交至反馈调查的信息 |
|
| 0-69 |
订阅包含定期付款的详细信息 |
|
| 0-101 |
包含从客户处收取资金的相关数据 |
每个数据库对象将返回以下列:
| 列名称 |
类型 |
描述 |
| OBJECTTYPEID |
Varchar |
对象类型的ID(例如,联系人类型ID为0-1)。 |
| 对象ID |
数字 |
记录的ID(例如,ID为123752的联系人记录)。 |
| 更新日期 |
时间戳 |
该对象在HubSpot中最后更新的日期和时间。 |
| INGESTEDAT |
INGESTEDAT |
数据被Snowflake最后摄入的日期和时间。 |
| PROPERTY_* |
Varchar |
包含对象属性最新版本的独立列。对于每个具有日期或数字类型的对象属性(由property_definitions指定),将包含两列:
|
示例 1
检索所有联系人的名字、姓氏及生命周期阶段。
查询语句:
SELECT objectId, property_firstname AS firstname, property_lastname AS lastname, property_lifecyclestage AS lifecyclestageFROM objects_contact
返回:
| OBJECTID |
FIRSTNAME |
姓氏 |
生命周期阶段 |
| 54325098 |
霍布斯 |
霍布斯 |
铅 |
| 96805401 |
米洛 |
金 |
铅 |
| 6922028 |
亨利 |
赖利 |
铅 |
示例 2
检索最多三个交易的名称和阶段。
查询:
SELECT 对象ID, 房产交易名称, 房产交易阶段,
property_amount AS 交易金额FROM 交易对象表
LIMIT 3
返回结果:
| OBJECTID |
房产交易名称 |
房产交易阶段 |
房产交易金额 |
| 38960439 |
交易名称 1 |
成交成功 |
34199 |
| 321740651 |
测试交易 123 |
14845019 |
8383663 |
| 98392101 |
弹出式顶篷 |
closedwon |
9309007 |
示例 3
检索金额排名前三的交易的交易名称和阶段。
查询:
由于交易金额数据以数字数据类型存储,可直接用于排序,无需进行转换或强制类型转换。
SELECT objectId, property_dealName, property_dealStage,
property_amount AS 交易金额FROM 交易对象表
ORDER BY 房产金额 DESC
LIMIT 3
返回:
| OBJECTID |
PROPERTY_DEALNAME |
房产交易阶段 |
房产交易金额 |
| 98392101 |
弹出式顶篷 |
成交 |
9309007 |
| 321740651 |
测试交易 123 |
14845019 |
8383663 |
| 38960439 |
交易名称 1 |
已成交 |
34199 |
object_with_object_properties
此数据库对象包含来自您的 HubSpot 记录的数据。对该数据库对象的查询将返回对象类型内每条记录的一行(例如,联系人对象类型中的所有联系人记录)。所有属性都存储在Properties列中,该列是Snowflake 变体/JSON列。
此视图可返回以下列:
| 列名称 | 类型 | 描述 |
对象类型ID |
Varchar | 对象类型的ID(例如,联系人类型ID为0-1)。 |
对象标识符 |
编号 | 记录的ID(例如,ID为123752的联系人记录)。 |
属性 |
变体 | 记录的属性值。 |
更新日期 |
时间戳 | 该记录在HubSpot中最后更新的日期和时间。了解更多关于列数据类型的信息。 |
INGESTEDAT |
Timestamp | 数据被Snowflake最后摄入的日期和时间。 |
请注意: 2022年1月25日起,object_with_object_properties表及视图中的timestamp列(表示对象记录在HubSpot的最后更新时间)将更名为updatedat。此变更旨在与 数据共享的其余部分的日期时间数据表示方式。
鉴于此为破坏性变更,新列 updatedat已添加至表和视图中。未来90天内,这两个新列将与拟替代的原列 timestamp 共存,以便您逐步切换至新列使用。
90天后(即2022年1月25日),timestamp列将从表和视图中移除。此日期之后,任何尝试使用timestamp列查询object_with_object_properties表或视图的操作都将失败。
示例 1
检索所有联系人及其属性。
查询:
SELECT objectTypeId, objectId, propertiesFROM object_with_object_propertiesWHERE objectTypeId = '0-1'
返回:
| OBJECTTYPEID | OBJECTID | 属性 |
| 0-1 | 38960439 | {"创建日期": "1504656970152"...} |
| 0-1 | 321740651 | { "创建日期": "1590183081949"...} |
| 0-1 | 98392101 | { "创建日期": "1533566477279"...} |
| ... | ... | ... |
示例 2
检索最多三个交易的交易名称和阶段。
查询:
SELECTobjectId,properties:dealname::string AS 交易名称,属性:交易阶段::字符串 AS 交易阶段, 属性:金额::数字 AS 交易金额FROM 具有对象属性的对象WHERE objectTypeId = '0-3'LIMIT 3;
返回:
| 对象ID | 交易名称 | 交易阶段 | 交易金额 |
| 38960439 | 交易名称 1 | 已关闭/已失效 | 7488939 |
| 321740651 | 交易名称 1 | 成交成功 | 9292029 |
| 98392101 | 交易名称 1 | 已关闭失败 | 62626528 |
对象
此数据库对象是 object_with_object_properties 数据库对象数据的子集。每行返回每个记录的对象 ID。此数据库对象仅返回现有记录。当记录在 HubSpot 中被删除时,将从该数据库对象中移除。此数据库对象是 object_with_object_properties 表数据的子集。 每行返回记录对应的对象ID。该视图仅返回现有记录。当记录在HubSpot中被删除时,将从该视图中移除。
当账户数据量庞大导致 object_with_object_properties 和 objects_x 视图运行缓慢时,此数据库对象可发挥作用。结合 object_properties 数据库对象使用时,既能复制 object_with_object_properties 中的数据,又能控制返回的属性范围。
该数据库对象可返回以下列:
| 列名称 | 类型 | 描述 |
对象类型ID |
Varchar | 对象类型的ID(例如,联系人类型ID为0-1)。 |
对象ID |
数字 | 记录的ID(例如,ID为123752的联系人记录)。 |
INGESTEDAT |
Timestamp | 数据被Snowflake最后摄入的日期和时间。了解更多关于列数据类型的信息。 |
示例 1
检索所有联系人记录。
查询:
SELECT 对象类型ID, 对象IDFROM 对象表WHERE objectTypeId = '0-1'
返回结果:
| OBJECTTYPEID | OBJECTID |
| 0-1 | 36721864 |
| 0-1 | 103580363 |
| 0-1 | 56047670 |
| ... | ... |
object_properties
此数据库对象是object_with_object_properties数据库对象的子集。每行包含特定记录当前设置的属性值。例如,联系人将为其名字属性生成一行,为姓氏属性生成一行。若记录未设置某属性值,则该行将显示为空字符串或完全不显示。
该数据库对象可返回以下列:
| 列名 | 类型 | 描述 |
对象类型ID |
Varchar | 对象类型的ID(例如,联系人类型ID为0-1)。 |
对象ID |
数字 | 记录的ID(例如,ID为123752的联系人记录)。 |
NAME |
Varchar | 属性的名称。 |
VALUE |
Timestamp | 属性的值。 |
UPDATEDAT |
时间戳 | 该记录在HubSpot中最后更新的日期和时间。了解更多关于列数据类型的信息。 |
INGESTEDAT |
时间戳 | 数据被Snowflake最后摄入的日期和时间。 |
示例 1
检索所有联系人的名字、姓氏和城市属性。
查询语句:
SELECT 对象类型ID, 对象ID, 名称, 值FROM 对象属性WHERE objectTypeId = '0-1'AND 名称 IN ('名字', '姓氏', '城市')按 objectId 排序;
返回结果:
| OBJECTTYPEID | OBJECTID | 名称 | 值 |
| 0-1 | 10401 | 名字 | Brian |
| 0-1 | 10401 | 城市 | 都柏林 |
| 0-1 | 10401 | 姓氏 | 加拉格尔 |
| 0-1 | 23451 | 名字 | 费尔南多 |
| 0-1 | 23451 | 姓氏 | 菲耶罗 |
| 0-1 | 25751 | 名字 | Charles |
| ... | ... | ... | ... |
示例 2
检索所有联系人的名字、姓氏和生命周期阶段,并将它们合并为每个联系人一行。此示例使用SQL PIVOT 语法。
查询:
SELECT 对象ID, 名字, 姓氏, 生命周期阶段 FROM(SELECT objectId, name, valueFROM object_propertiesWHERE objectTypeId = '0-1'AND name IN ('firstname', 'lastname', 'lifecyclestage'))PIVOT(MAX(value) FOR name IN ('firstname', 'lastname', 'lifecyclestage')) AS p(objectId, firstname, lastname, lifecyclestage);
返回结果:
| 对象类型ID | 对象ID | 名字 | 姓氏 | 生命周期阶段 |
| 0-1 | 54325098 | 霍布斯 | Baron | 铅 |
| 0-1 | 96805401 | 米洛 | 金 | 领先 |
| 0-1 | 6922028 | 亨利 | 赖利 | 铅 |
| ... | ... | ... | ... | ... |
object_properties_history
该数据库对象包含属性历史值。对于联系人,包含最近45个值;对于其他对象,包含最近20个值。每行对应一个历史属性值。属性的当前值由其历史记录中 最新的UPDATEDAT时间戳决定。
该数据库对象可返回以下列:
| 列名 | 类型 | 描述 |
对象类型ID |
Varchar | 对象类型的ID(例如,联系人对象类型ID为0-1)。 |
对象ID |
数字 | 记录的ID(例如,ID为123752的联系人记录)。 |
NAME |
Varchar | 属性的名称。 |
VALUE |
Timestamp | 属性的值。 |
更新日期 |
时间戳 | 数据在HubSpot中最后更新的日期和时间。了解有关列数据类型的更多信息。 |
INGESTEDAT |
INGESTEDAT | 数据被Snowflake最后摄入的日期和时间。 |
示例 1
检索单个联系人的单个属性历史记录。
查询语句:
SELECT objectId, name, value, updatedAtFROM object_properties_historyWHERE objectTypeId = '0-1'AND objectId = 136493192AND name = 'hs_predictivescoringtier'按更新时间降序排序;
返回结果:
| OBJECTID | 名称 | VALUE | 更新日期 |
| 136493192 |
hs_预测评分层级 |
tier_1 |
2022-06-22 22:45:05.931 |
| 136493192 |
hs_预测评分层级 |
tier_2 |
2021-09-18 08:20:56.622 |
| 136493192 |
hs_预测评分层级 |
tier_3 |
2019-11-31 18:20:22.851 |
| ... |
... |
... |
... |
示例 2
检索所有曾处于订阅者生命周期阶段的联系人的当前名称。
查询:
SELECTobjectId,属性:名字::字符串 AS 名字,属性:姓氏::字符串 AS 姓氏FROM 带对象属性的对象WHERE 具有对象属性的对象.objectTypeId = '0-1'AND objectId IN (SELECT objectIdFROM 对象属性历史WHEREobject_properties_history.objectTypeId = '0-1'AND object_properties_history.name = 'lifecyclestage'AND object_properties_history.value = '订阅者');
返回:
| 对象ID | 名字 | 姓氏 |
| 54325098 | 霍布斯 | Baron |
| 96805401 | 米洛 | 戈尔德 |
| 6922028 | 亨利 | 莱利 |
| ... | ... | ... |
关联查询
与对象数据类似,关联数据通过两种方式组织:
- 个体视图:每种关联类型都存储在独立的视图中,仅包含该类型的记录。例如,associations_contacts_to_deals 视图仅包含联系人对象与交易对象之间的关联记录。这消除了查询时指定关联类型ID的必要性。这些视图查询起来相当简单,因为使用它们无需熟悉CRM数据模型。 它们还会返回两个对象间关联记录的增强描述,可轻松用于与objects_x视图的连接操作。只要查询速度正常,建议使用这些视图检索关联数据。更多详情请参见下文associations_x_to_y视图说明。
- 组合型:所有关联类型的记录合并为单一数据库对象。因此查询时需添加过滤条件如“WHERE combinedassociationtypeid='0-32'”。详见下文关联视图与关联定义视图说明。
关联_x_to_y视图
每种关联类型都有专属视图,命名为 associations_<关联类型名称>(例如 associations_contacts_to_deals)。每个视图是 associations 数据库对象数据的子集,仅包含特定 combinedassociationtypeid 的记录。
每个数据库对象将返回以下列:
| 列名 |
类型 |
描述 |
| 组合关联类型ID |
Varchar |
关联定义的唯一标识符。 |
| 关联类别 |
Varchar |
关联类型的来源。取值范围:HUBSPOT_DEFINED、USER_DEFINED、INTEGRATOR_DEFINED |
| 关联类型ID |
Varchar |
特定关联类别内关联定义的唯一标识符,即同一关联类别中两个定义不会拥有相同的关联类型ID。 |
| FROMOBJECTTYPEID |
Varchar |
关联定义的源对象类型标识符。 |
| FROMOBJECTTYPE |
Varchar |
关联定义的源对象类型的名称。 |
| 目标对象类型ID |
Varchar |
关联定义的目标对象类型标识符。 |
| TOOBJECTTYPE |
TOOBJECTTYPE |
关联定义目标对象类型的名称。 |
| NAME |
Varchar |
关联定义的名称。 |
| LABEL |
Varchar |
关联定义的描述。 |
| ISMAINASSOCIATIONDEFINITION |
布尔 |
关联定义是否为主类型。当为真时,该定义即为HubSpot在关联记录中显示的类型 |
| [FROMOBJECTTYPE_OBJECTID] 例如对于 ASSOCIATIONS_CONTACTS_TO_DEALS 视图,此处应为 CONTACT_OBJECTID |
数字 |
源对象的对象ID。 |
| [目标对象类型对象ID] 例如在ASSOCIATIONS_CONTACTS_TO_DEALS视图中,此处为DEAL_OBJECTID |
数字 |
目标对象的对象ID。 |
| INGESTEDAT |
时间戳 |
数据被Snowflake最后摄入的日期和时间。 |
示例 1
检索与特定联系人关联的所有交易。
查询语句:
SELECT
联系对象ID, 交易对象ID
FROM 联系对象到交易关联表
WHERE contactId = 6626541373
返回:
| CONTACT_OBJECTID |
交易对象ID |
| 6626541373 |
233620335 |
| 6626541373 |
90253678 |
示例 2
检索所有位于波哥大时区的联系人及其交易记录。
SELECT 联系人.房产名 联系人名,
contacts.property_lastname 联系人姓氏,
contacts.property_email 联系人邮箱,
deals.房产交易类型 deal_type,deals.房产金额 deal_amount
FROM 对象联系人 联系人
连接 关联联系人至交易 assoc 表
assoc.联系对象ID=联系人.对象ID
连接 交易对象表 deals 至 关联表 assoc,条件为assoc.交易对象id=assoc.交易对象id
where contacts.property_hs_timezone='america_slash_bogota'
| 联系人的名字 |
联系姓氏 |
联系邮箱 |
交易类型 |
交易金额 |
| David |
Magalhães |
dmagalhaes@example.com |
新业务 |
74848 |
| 费尔南达 |
Rodrigues |
fmoreira@example.com |
新业务 |
253530 |
示例 3
检索所有联系人及其各自已成交交易的总金额。
SELECT SUM(交易.房产成交金额) AS
成交总额, 联系人.房产邮箱 联系人邮箱
FROM objects_contacts contacts
连接 关联联系人至交易 assoc 表
assoc.联系对象ID=contacts.对象ID
连接 交易对象表 deals 至 关联表 assoc 条件为assoc.交易对象id=assoc.交易对象id
GROUP BY 联系人邮箱
按 total_closed_amount 降序排序
返回:
| TOTAL_CLOSED_AMOUNT |
联系电子邮件 |
| 98474793 |
johndoe@riverview.com |
| 849488 |
sallymae@longford.com |
关联定义
此数据库对象包含HubSpot对象间所有可用关联类型的信息,每种关联类型占一行。可将此数据库对象与关联数据库对象进行关联查询,以获取记录特定的关联信息。
同一对象间可能存在多种关联类型。当记录关联时,HubSpot中显示的主关联类型采用ISMAINASSOCIATIONDEFINITION 为true的关联类型。
该数据库对象可返回以下列:
| 列名 | 类型 | 描述 |
组合关联类型ID |
Varchar | 关联定义的唯一标识符。 |
类别 |
Varchar | 关联类型的来源。取值范围:HUBSPOT_DEFINED、USER_DEFINED、INTEGRATOR_DEFINED |
ID |
数字 | 关联定义在其类别中的标识符。 |
FROMOBJECTTYPEID |
Varchar | 关联定义源对象的标识符。 |
目标对象类型ID |
Varchar | 关联定义目标对象的ID。 |
NAME |
Varchar | 关联定义的名称。 |
LABEL |
Varchar | 关联定义的标签。 |
ISMAINASSOCIATIONDEFINITION |
布尔 | 关联定义是否为主类型。当为真时,该定义即为HubSpot在关联记录中显示的类型。 |
INGESTEDAT |
时间戳 | Snowflake最后摄取数据的日期和时间。了解有关列数据类型的更多信息。 |
示例 1
检索账户中可用的关联类型。
查询语句:
SELECT 组合关联类型ID, 源对象类型ID, 目标对象类型ID, 名称FROM 关联定义表按类别、id排序
返回结果:
| 组合关联类型 | FROMOBJECTTYPEID | 目标对象类型ID | 名称 |
| 0-1 | 0-1 | 0-2 | 联系到公司 |
| 0-2 | 0-2 | 0-1 | 联系公司 |
| 0-3 | 0-3 | 0-1 | 联系交易 |
| 0-4 | 0-1 | 0-3 | 联系到交易 |
| 0-5 | 0-3 | 0-2 | 交易到公司 |
| ... | ... | ... | ... |
示例 2
检索交易与公司之间可用的关联类型。
查询:
SELECT组合关联类型ID, 源对象类型ID, 目标对象类型ID, 名称FROM 关联定义表WHERE 源对象类型ID = '0-3' AND 目标对象类型ID = '0-2'
AND isMainAssociationDefinition = true按类别、ID排序
返回:
| 组合关联类型 | FROMOBJECTTYPEID | 目标对象类型ID | 名称 |
| 0-5 | 0-3 | 0-2 | 交易对象公司 |
| 0-271 | 0-3 | 0-2 | 交易至主要公司 |
| 0-341 | 0-3 | 0-2 | 交易至公司_未标记 |
关联
此数据库对象包含特定记录间关联关系的信息。每行代表一个对象与另一个对象的关联。即使被引用的记录已被删除,该数据库对象中仍可能存在关联行。可通过与对象表进行关联查询来验证记录是否存在。
当账户数据量庞大导致 associations_x_to_y 视图运行缓慢时,此数据库对象可有效提升处理效率。
该数据库对象可返回以下列:
| 列名 | 类型 | 描述 |
组合关联类型ID |
Varchar | 关联定义的唯一标识符。 |
FROMOBJECTID |
数字 | 源对象的ID。 |
TOOBJECTID |
数字 | 目标对象的ID。 |
INGESTEDAT |
Timestamp | 数据被Snowflake最后摄入的日期和时间。了解更多关于列数据类型的信息。 |
示例 1
检索所有关联的交易和联系人。
查询语句:
SELECT 组合关联类型ID, 源对象ID, 目标对象IDFROM 关联表WHERE 组合关联类型ID = '0-5'
返回结果:
| 组合关联类型ID | FROMOBJECTID | 目标对象ID |
| 0-5 | 6626541373 | 233620335 |
| 0-5 | 6616436082 | 3866015468 |
| 0-5 | 6690805943 | 7132752747 |
| ... | ... | ... |
示例 2
检索与特定联系人(联系人ID:3005)关联的所有工单。
查询:
SELECT 组合关联类型ID, 源对象ID, 目标对象IDFROM 关联表WHERE 关联类别 = 'HUBSPOT_DEFINED'AND combinedAssociationTypeId = '0-15'AND fromObjectId = 3005;
返回结果:
| 组合关联类型 | FROMOBJECTID | 目标ID |
| 0-5 | 6626541373 | 233620335 |
示例 3
检索与特定联系人(联系人ID:4464)关联的所有交易。本示例通过关联表association_definitions进行关联查询,而非硬编码combinedAssociationTypeId。
查询:
SELECT 组合关联类型ID, 源对象ID 目标对象ID,FROM 关联表WHEREcombinedAssociationTypeId = (SELECT 组合关联类型ID FROM 关联定义 WHERE 源对象类型ID = '0-1' AND toObjectTypeId = '0-3' AND isMainAssociationDefinition)AND fromObjectId = 4464;
返回值:
| 组合关联类型ID | FROMOBJECTID | 目标对象ID |
| 0-5 | 6626541373 | 233620335 |
所有者查询
所有者查询
此数据库对象包含您HubSpot账户中用户的详细信息。用户可被设为记录所有者,根据具体情境将同时包含用户ID和所有者ID。两种ID均可用于识别同一用户。
该数据库对象可返回以下列:
| 列名 | 类型 | 描述 |
所有者ID |
编号 | 用户的拥有者ID。 |
用户ID |
数字 | 用户的用户ID。本列值为NULL的用户已被删除。 |
电子邮件 |
Varchar | 用户的电子邮件地址。 |
名字 |
Varchar | 用户的姓名。 |
LASTNAME |
Varchar | 用户的姓氏。 |
ARCHIVED |
布尔 | 用户是否已被删除。 |
CREATEDAT |
时间戳 | 用户在HubSpot创建的日期和时间。更多信息请参阅列数据类型。 |
UPDATEDAT |
时间戳 | 用户在HubSpot中最后更新的日期和时间。更多信息请参阅列数据类型。 |
INGESTEDAT |
时间戳 | 数据被Snowflake最后摄入的日期和时间。 |
示例 1
检索所有用户。WHERE archived = false过滤器将已删除用户从返回数据中移除。
查询:
SELECT 拥有者ID, 用户ID, 电子邮箱, 名字, 姓氏
FROM 拥有者表
WHERE archived = false
返回结果:
| OWNERID | USERID | 电子邮件 | 名字 | 姓氏 |
| 29584574 | 4621126 | 233620335 | 霍布斯 | Baron |
| 30532717 | 4874784 | 3866015468 | Pablo | Walters |
| 30580321 | 925511 | 7132752747 | 米洛 | 金 |
| ... | ... | ... | ... | ... |
示例 2
通过所有者ID检索特定所有者。
查询:
SELECT 拥有者ID, 用户ID, 电子邮箱, 名字, 姓氏FROM 业主表WHERE 业主ID = 29584574;
返回:
| OWNERID | 用户ID | 电子邮箱 | 名字 | 姓氏 |
| 29584574 | 4621126 | 233620335 | 霍布斯 | Baron |
示例 3
检索所有联系人及其所有者。此查询通过object_with_object_properties对象与联系人属性hubspot_owner_id 将记录关联至所有者。
SELECT
联系对象ID contactid,
联系人的属性名 contact_firstname,
contact.property_lastname contact_lastname,
contact.property_hubspot_owner_id contact_hubspot_owner_id,
owner.firstname 客户姓名,
owner.lastname 业主姓氏,
owner.email owner_email
FROM objects_contacts contact
连接 业主表 owner 表,条件为 联系人表的 property_hubspot_owner_id 字段等于 业主表的 ownerId 字段
返回:
| 联系ID | CONTACT_FIRSTNAME | CONTACT_LASTNAME | 联系_HubSpot_所有者ID | 所有者名 | 所有者姓氏 | 所有者电子邮件 |
| 113834202 | Richard | 格林菲尔德 | 29584574 | 霍布斯 | 巴伦 | hobbes.b@business.com |
| 53540801 | 福特 | Karl | 30241125 | 米洛 | 金 | milo.g@business.com |
| ... | ... | ... | ... | ... | ... | ... |
团队查询
团队
HubSpot 中的团队功能可将用户分组管理,用于组织架构和报告生成。您可创建主团队及辅助团队。
此数据库对象包含您HubSpot账户中团队的相关信息。
该数据库对象可返回以下列:
| 列名 | 类型 | 描述 |
| TEAMID | 数字 | 团队ID。 |
| TEAMNAME | Varchar | 团队名称。 |
| PARENTTEAMID | 数字 | 父团队的团队ID。 |
| CHILDTEAMIDS | 数组 | 子团队的团队ID。 |
| 主要所有者成员 | Varchar | 团队主要成员的所有者ID。 |
| 次要所有者成员 | 布尔 | 团队次要成员的所有者ID。 |
| INGESTEDAT | Timestamp | 数据被Snowflake最后摄入的日期和时间。 |
示例 1
检索所有团队。
查询:
SELECT 团队ID,团队名称, 主要所有者成员
FROM 团队表
返回:
| TEAMID | 团队名称 | 主要所有者成员 |
| 29584574 | 子团队 | [233620335, 1234553] |
| 30532717 | 超级团队 | [3866015468, 126221873] |
| 3058032 | A队 | [7132752747] |
owner_team
此数据库对象包含HubSpot账户中各所有者对应团队的信息。
该数据库对象可返回以下列:
| 列名 | 类型 | 描述 |
| TEAMID | 数字 | 团队ID。 |
| OWNERID | 数字 | 用户的拥有者ID。 |
| ISTEAMPRIMARY | 布尔值 | 该团队是否为该所有者的主团队。 |
| INGESTEDAT | 时间戳 | 数据被Snowflake最后摄入的日期和时间。 |
示例 1
检索指定团队的所有所有者。
查询:
SELECT 团队ID, 所有者ID, 是否团队主要负责人FROM teamsWHERE 团队ID = 29584574
返回
| TEAMID | TEAMNAME | 是否为团队主节点 |
| 29584574 | 233620335 | TRUE |
| 29584574 | 1234553 | TRUE |
管道查询
下面了解如何查询 交易和工单管道数据,例如账户中可用的销售漏斗及其阶段。
您可将此数据与对象数据关联,以全面查看销售管道。例如,通过将 objects_deals_view 或object_with_object_properties数据与销售管道数据关联,即可查询交易及其对应的销售管道。
pipelines
此数据库对象包含账户中交易和工单管道的相关信息。每行返回数据代表单个管道。
该表可返回以下列:
| 列名 | 类型 | 描述 |
PIPELINEID |
Varchar | 管道的标识符。 |
对象类型ID |
Varchar | 管道可包含的对象的ID(例如交易或工单)。 |
LABEL |
Varchar | 管道在HubSpot中的名称。 |
显示顺序 |
数字 | 该销售管道在HubSpot中的显示顺序。 |
已归档 |
布尔值 | 该销售管道是否已被删除。 |
创建日期 |
时间戳 | 管道创建时间。 |
UPDATEDAT |
时间戳 | 数据在HubSpot中最后更新的日期和时间。了解更多关于列数据类型的信息。 |
INGESTEDAT |
Timestamp | 数据被Snowflake最后摄入的日期和时间。 |
示例 1
检索所有可用交易管道,按其在HubSpot中的顺序排序。
查询语句:
SELECT 对象类型ID, 销售管道ID, 标签FROM pipelinesWHERE objectTypeId = '0-3' 且未归档按显示顺序排序;
返回结果:
| 对象类型ID | PIPELINEID | 标签 |
| 0-3 | 1bed503c-37f7-4f51-9d40-7598902673f4 | 销售渠道 |
| 0-3 | 12659678 | 许可证渠道 |
| 0-3 | 75e28846-ad0d-4be2-a027-5e1da6590b98 | 新业务 |
| ... | ... | ... |
示例 2
检索特定销售管道内的交易。连接object_with_object_properties和pipelines 对象。
查询:
SELECT
交易.对象ID 交易ID,
交易.房产交易名称 deal_name,
pipelines.label pipeline_name
FROM 交易对象表 deals
INNER JOIN 销售渠道
ON 交易.对象类型ID = 销售渠道.对象类型ID
AND 交易.房产销售渠道 = 销售渠道.销售渠道ID
WHERE pipelines.objectTypeId = '0-3';
返回:
| 交易ID | 交易名称 | 管道名称 |
| 605140072 | 喵咪全球注册 | 销售渠道 |
| 605457408 | 菲仕兰品牌重塑 | 销售渠道 |
| 604362473 | Fresh Step应用程序开发 | 销售渠道 |
示例 3
与上述示例 2 相同,检索特定销售管道内的交易。但需使用object_with_object_properties 替代 objects_deals 进行连接操作。
SELECT
交易.对象ID 交易ID,
交易.属性:交易名称::varchar 交易名称,
pipelines.label pipeline_name
FROM 带对象属性的对象 deals
INNER JOIN pipelines
ON 交易.对象类型ID = 销售管道.对象类型ID
AND 交易.属性:流程::字符串 = 流程.流程ID
WHERE 交易.对象类型ID = '0-3'
AND pipelines.objectTypeId = '0-3';
返回结果:
| 交易ID |
交易名称 |
PIPELINE_NAME |
| 605140072 |
喵咪全球注册 |
销售渠道 |
| 605457408 |
菲仕乐品牌重塑 |
销售渠道 |
| 604362473 |
Fresh Step应用程序开发 |
销售渠道 |
pipeline_stages
该视图包含管道内各阶段的详细信息。通过组合对象类型ID、管道ID和阶段ID来识别具体阶段。与管道对象关联时,需使用对象类型ID和管道ID进行连接。
该数据库对象可返回以下列:
| 列名称 | 类型 | 描述 |
PIPELINEID |
Varchar | 管道的标识符。 |
STAGEID |
Varchar | 阶段的ID。 |
LABEL |
Varchar | 该阶段在HubSpot中的名称。 |
显示顺序 |
数字 | 管道在HubSpot中的显示顺序。 |
元数据 |
变体 | 以JSON格式描述阶段状态,包括是否处于开放或关闭状态 |
归档 |
布尔值 | 管道阶段是否已被删除。 |
CREATEDAT |
时间戳 | 管道阶段创建的时间。 |
示例 1
检索名为"销售管道"的交易管道的阶段信息。
查询语句:
SELECT pipelineid, stageId, labelFROM pipeline_stagesWHERE 未归档AND pipelineid = (SELECT pipelineid FROM 管道 WHERE objectTypeId = '0-3' 且未归档 AND 标签 = '销售管道' LIMIT 1)按显示顺序排序;
返回结果:
| 管道ID | STAGEID | 标签 |
| 941650 | 941651 | 联系 |
| 941650 | 941652 | 预约安排 |
| 941650 | 941653 | 发票已发送 |
| ... | ... | ... |
示例 2
检索所有交易及其对应的销售阶段。
查询:
SELECT交易.对象ID 交易ID,交易.属性:交易名称::varchar 交易名称,pipelines.label pipeline_name,pipeline_stages.label pipeline_stage_nameFROM 带对象属性的对象 dealsINNER JOIN 销售管道ON 交易.对象类型ID = 销售管道.对象类型IDAND 交易.属性:管道::字符串 = 管道.管道IDINNER JOIN pipeline_stagesON 交易.对象类型ID = 管道阶段.管道IDAND 交易.属性:流程::字符串 = 流程阶段.流程IDAND 交易.属性:交易阶段::字符串 = 销售阶段.阶段IDWHERE 交易.对象类型ID = '0-3';
返回:
| 交易ID | 交易名称 | PIPELINE_NAME | 销售阶段名称 |
| 605140072 | 喵咪全球注册 | 销售渠道 | 合同已发送 |
| 605457408 | 飞仕猫品牌重塑 | 销售渠道 | 预约安排 |
| 604362473 | Fresh Step应用程序开发 | 销售渠道 | 合同签署 |
| ... | ... | ... | ... |
属性查询
property_definitions
此数据库对象包含您HubSpot账户中对象属性与事件属性的信息。事件属性涵盖标准事件(如邮件打开率和点击率)及自定义行为事件属性。这些信息有助于定义 object_properties和events数据 中的值。
通过组合对象类型ID与名称可识别特定属性。您可使用properties API检索类似信息。
此数据库对象可返回以下列:
| 列名 | 类型 | 描述 |
对象类型ID |
Varchar | 事件所关联对象的标识符。 |
名称 |
Varchar | 属性的内部名称。 |
LABEL |
Varchar | 属性的标签。 |
DESCRIPTION |
Varchar | 该属性的描述。 |
类型 |
Varchar | 属性的类型(例如字符串、数字、日期时间)。 |
FIELDTYPE |
Varchar | 属性的字段类型。定义属性在 HubSpot 和表单中的显示方式(例如复选框、下拉菜单)。 |
显示顺序 |
数字 | 属性的显示顺序。 |
GROUPNAME |
Varchar | 该属性的组名称。 |
OPTIONS |
变体 | 对于枚举属性,该属性选项的数组,包含每个选项的属性(例如显示顺序、标签)。 |
CREATEDUSERID |
数字 | 创建该属性的用户的ID。 |
REFERENCEDOBJECTTYPE |
Varchar | 属性所引用的对象类型。所有者属性将返回值OWNER。 |
计算 |
布尔 | 该属性是否为计算属性。 |
外部选项 |
布尔 | 该属性的选项是否在外部系统中定义。 |
具有唯一值 |
布尔 | 属性值是否唯一。仅在通过API创建属性时可设置。 |
隐藏 |
布尔值 | 该属性在HubSpot中是否隐藏。 |
SHOWCURRENCYSYMBOL |
布尔值 | 数字属性值是否以货币格式显示。 |
FORMFIELD |
布尔 | 该属性是否可在表单中使用。 |
READONLYDEFINITION |
布尔值 | 该属性是否可在HubSpot中编辑。 |
只读值 |
布尔值 | 该属性值是否可在HubSpot中编辑。 |
HUBSPOTDEFINED |
布尔值 | 该属性是由HubSpot创建还是由用户创建。 |
归档 |
布尔值 | 该属性是否已被删除。 |
CREATEDAT |
Timestamp | 该属性在HubSpot中创建的日期和时间。 |
UPDATEDAT |
时间戳 | 数据在HubSpot中最后更新的日期和时间。了解更多关于列数据类型的信息。 |
INGESTEDAT |
时间戳 | 数据被Snowflake最后摄入的日期和时间。 |
示例 1
检索所有联系人属性的名称和描述。
查询:
SELECT 名称, 标签, 描述FROM 属性定义表WHERE objectTypeId = '0-1'
返回:
| 名称 | LABEL | 描述 |
| 进入SQL阶段 | 进入SQL阶段 | 开始统计SQL阶段天数。 |
|
首次转化事件名称
|
首次转化 | 该联系人提交的首份表单。 |
| 地址 | 街道地址 | 联系人的地址。 |
事件查询
事件包含标准HubSpot事件和自定义行为事件。每个事件都有自己的数据库对象,命名为events_eventname。
| 名称 | |
| 广告互动事件 | 广告详情及与之互动的联系人(通过点击广告或在互动后提交表单)。 |
| EVENTS_AD_METRICS_IMPORTED_V0 |
广告详情及其效果指标。 |
| EVENTS_CALL_MENTIONED_KEYWORD | 通话中任何参与者提及的关键词详情。 |
| EVENTS_CLICKED_LINK_IN_EMAIL_V2 |
联系人点击营销邮件中的链接情况。 |
| EVENTS_点击追踪收件箱邮件中的链接_V8 | 联系人点击对话收件箱邮件中的链接。 |
| EVENTS_COOKIE_BANNER_CLICKED | 点击过Cookie横幅的联系人。 |
| EVENTS_COOKIE_BANNER_VIEWED | 查看过Cookie的联系人。 |
| EVENTS_DOCUMENT_SHARED_V2 | 通过外部链接与联系人共享的销售文档。 |
| EVENTS_DOCUMENT_VIEWED_V2 | 通过外部链接打开销售文档并查看的联系人。 |
| EVENTS_DOCUMENT_COMPLETED_V2 | 已关闭的销售文档及其对应联系人。 |
| EVENTS_HS_SCHEDULED_EMAIL_V2 | 已提交至HubSpot邮件服务器待发送的邮件。 |
| EVENTS_MTA_DELIVERED_EMAIL_V2 | 由HubSpot邮件服务器成功投递至收件人的邮件。 |
| EVENTS_MTA_BOUNCED_EMAIL_V2 | 被收件人邮件服务器拒绝的邮件投递尝试。 |
| EVENTS_OPENED_EMAIL_V2 | 联系人打开邮件的情况。 |
| EVENTS_REPORTED_SPAM_EMAIL_V2 | 被收件人标记为垃圾邮件的邮件。 |
| 活动更新邮件订阅状态(V2) | 收件人对电子邮件订阅的更改。 |
| 事件:已打开的追踪收件箱邮件(V8版) | 联系人打开的对话收件箱邮件。 |
| EVENTS_MB_MEDIA_PLAYED | 联系人视频播放活动。 |
| EVENTS_V2_CONTACT_BOOKED_MEETING_THROUGH_SEQUENCE | 联系人通过序列预约会议。 |
| EVENTS_V2_联系人已加入序列 | 联系人从序列中注册。 |
| 联系人完成序列 | 序列已完成。 |
| 联系人回复了序列邮件 | 联系人回复了通过序列发送的邮件(或退订序列的来信)。 |
| 联系人从序列退订 | 联系人从序列中退订。 |
| EVENTS_V2_CONTACT_UNENROLLED_MANUALLY_FROM_SEQUENCE | 用户手动取消订阅该联系人。 |
| EVENTS_V2_CONTACT_UNSUBSCRIBED_SEQUENCE_EMAIL | 联系人取消订阅,退出序列。 |
| EVENTS_V2_SEQUENCE_EMAIL_BOUNCED | 序列邮件退回。 |
| EVENTS_V2_SEQUENCE_ERRORED | 序列出错导致取消订阅。 |
| EVENTS_V2_SEQUENCE_STEP_EXECUTED | 序列步骤已执行。 |
| EVENTS_VISITED_PAGE | 联系人访问的网站页面。 |
| EVENTS_<集成事件名称>_<唯一标识符> | 集成事件(时间线V3 API) |
可通过组合事件类型ID与ID来识别事件。返回的列取决于事件类型,每个事件属性对应一列。所有事件均返回以下列:
请注意: HubSpot已在所有事件表和视图中新增两列:
发生于发生于日期int
这些列将于2022 年 11 月 24 日取代occuredat和occuredatdateint列。届时旧列将不可用,使用这些列查询包含事件的数据库对象或视图将失败。了解有关 Snowflake 数据共享重大变更的更多信息。
| 列名称 | 类型 | 描述 |
事件类型ID |
Varchar | 事件类型的ID,类似于OBJECTTYPEID 您可以使用object_and_event_type_definitions视图查询账户中的所有事件类型 ID。 |
ID |
Varchar | 该ID在每个事件类型中唯一。在给定事件类型内,不存在两个记录具有相同ID的情况。 |
OBJECTTYPEID |
Varchar | 完成事件的对象类型。例如,点击邮件链接时本列将显示0-1,代表联系人对象。 |
OBJECTID |
数字 | 完成事件的记录ID。 |
发生日期 |
Timestamp | 事件发生的时间。 |
|
|
数字 | 表示事件发生时间的数字。包含与OCCURREDAT列相同的数据,但以数字格式呈现,并作为表的聚簇键组成部分。多数情况下可直接使用OCCURREDAT时间戳替代此数字。 |
|
|
数字 | 表示事件发生时间的数字。包含与 请注意:该列将于 2022 年 11 月 24 日废弃,并由 |
OCCUREDAT |
时间戳 | 事件发生的时间。 请注意:该列将于2022年11月24日废弃,并由 |
INGESTEDAT |
Timestamp | 数据被Snowflake最后摄入的日期和时间。了解更多关于列数据类型的信息。 |
PROPERTY_* |
Varchar | 包含事件属性的独立列。 |
示例 1
检索最近50条邮件点击事件。
查询:
SELECT eventTypeId, objectTypeId, objectId, occuredAt, property_hs_click_raw_url AS hs_click_raw_urlFROM events_clicked_link_in_email_V2
ORDER BY 发生时间
LIMIT 50;
返回结果:
| 事件类型ID | 对象类型ID | 对象ID | 发生日期 | HS_点击原始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 |
| ... | ... | ... | ... | ... |
示例 2
检索所有点击过邮件的联系人对应的点击事件。此查询通过与object_with_object_properties对象关联获取联系人数据。
查询:
SELECT
click.发生时间 点击时间戳,
点击.属性_hs_点击原始网址 点击网址,
contact.properties:firstname::varchar contact_firstname,
contact.properties:lastname::varchar contact_lastname
FROM 邮件点击链接事件V2 点击
LEFT JOIN 对象及其属性 联系人
ON click.objectTypeId = contact.objectTypeId
AND 点击.对象ID = 联系人.对象ID
LIMIT 3;
返回:
| 点击时间戳 | 点击URL | 联系姓名 | 联系人姓氏 |
| 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 | 霍布斯 | Baron |
| 2018-11-08 09:37:41.400 | https://www.website.net/webinar-case-study?utm_source=hs_automation&utm_medium=email&utm_content=55200164 | 米洛 | Gold |
| 2018-11-08 09:37:41.426 | https://www.website.net/contact?utm_source=hs_automation&utm_medium=email&utm_content=55200164 | Harlow | 维拉里 |
| ... | ... | ... | ... |
对象与事件类型查询
object_and_event_type_definitions
此数据库对象包含您HubSpot账户中所有可用对象和事件的定义。
该数据库对象可返回以下列:
| 列名 | 类型 | 描述 |
对象类型ID |
Varchar | 管道可包含的对象的ID(例如交易或工单)。 |
完全限定名称 |
Varchar | 对象或事件的名称。 |
INGESTEDAT |
Timestamp | 数据被Snowflake最后摄入的日期和时间。了解更多关于列数据类型的信息。 |
示例 1
检索您HubSpot账户中可用的所有对象和事件。
查询:
SELECT 对象类型ID, 完全限定名称FROM 对象与事件类型定义表;
返回结果:
| OBJECTTYPEID | 完全限定名称 |
| 0-1 | CONTACT |
| 0-8 | 行项目 |
| 0-11 | 对话 |
| ... | ... |
细分查询
下面,了解如何查询您的细分群体,例如可用的联系人细分群体和公司细分群体,以及这些细分群体中包含的记录。
细分
此数据库对象包含有关 HubSpot 联系人细分和公司细分的数据。每个细分返回一行数据,列包含细分详情(如细分名称、规模及其包含记录的对象类型)。不包含各细分内单条记录的信息(请参阅segment_membership)。
该数据库对象可返回以下列:
| 列名 | 类型 | 描述 |
对象类型ID |
Varchar | 该分段中记录的类型(例如联系人或公司)。 |
SEGMENTID |
数字 | 分段的标识符。与分段成员表中的SEGMENTID列建立关联。 |
经典分段ID |
数字 | 专用于联系人分段的ID,与HubSpot中该分段URL中的ID匹配。 |
名称 |
Varchar | 细分名称。 |
SIZE |
数字 | 该分段中的记录数。 |
CREATEDBYUSERID |
数字 | 创建该分段的用户ID。 |
创建日期 |
时间戳 | 该细分在HubSpot中创建的时间。 |
UPDATEDBYUSERID |
数字 | 最近更新该细分段的用户ID。 |
更新日期 |
时间戳 | 该数据在HubSpot中最后更新的日期和时间。了解更多关于列数据类型的信息。 |
INGESTEDAT |
时间戳 | 数据被Snowflake最后摄入的日期和时间。 |
示例 1
检索所有联系人细分。
查询:
SELECT 细分ID, 名称, 规模FROM 细分WHERE objectTypeId = '0-1';
返回结果:
| SEGMENTSID | 名称 | SIZE |
| 118131 | 每周外联 | 103 |
| 66156 | 博客订阅者 | 455 |
| 771852 | 2021年顶级订阅者 | 37 |
| ... | ... | ... |
示例 2
检索名为“2021年顶级订阅者”的特定联系人分段。
查询:
SELECT 分段ID, 名称, 大小 FROM 段WHERE objectTypeId = '0-1'
ANDsegmentName = '2021年顶级订阅者';
返回:
| SEGMENTID | 名称 | 大小 |
| 771852 | 2021年顶级订阅者 | 37 |
segment_membership
此数据库对象包含记录所属分段的信息,每个分段记录对应一行。例如,若"博客订阅者"分段包含500个联系人,则该数据库对象将返回500行。
仅包含分段ID和对象ID。如需更多信息,请与分段数据库对象进行关联查询。
该数据库对象可返回以下列:
| 列名称 | 类型 | 描述 |
SEGMENTID |
Varchar | 段的标识符。与段表中的HS_SEGMENT_ID列关联。 |
OBJECTID |
Varchar | 该分段中记录的ID。 |
更新日期 |
Timestamp | 数据在HubSpot中最后更新的日期和时间。了解更多关于列数据类型的信息。 |
INGESTEDAT |
INGESTEDAT | 数据被Snowflake最后摄入的日期和时间。 |
示例 1
检索"2021年顶级订阅者"细分中所有联系人的ID。
查询语句:
SELECT 对象IDFROM 细分市场会员资格INNER JOIN 细分组ON 细分成员关系表.细分ID = 细分表.细分IDWHERE 细分市场.对象类型ID = '0-1'AND 细分市场.名称 = '2021年顶级订阅用户';
返回结果:
| OBJECTID |
| 54325098 |
| 96805401 |
| 6922028 |
| ... |
示例 2
检索2021年顶级订阅者分段中联系人的姓名详情。
查询:
SELECT
contact.objectId AS objectid,
contact.property_firstname AS firstname,
contact.property_lastname AS lastname
FROM objects_contacts contact
INNER JOIN 细分会员表 ON 联系人.对象ID = 细分会员表.对象ID
INNER JOIN 细分组 ON 细分组成员关系.细分组ID = 细分组.细分组ID
WHERE 细分.对象类型ID = '0-1'
AND 细分市场.名称 = '2021年顶级订阅用户'
返回结果:
| OBJECTID |
名字 |
姓氏 |
| 54325098 |
霍布斯 |
Baron |
| 96805401 |
米洛 |
戈尔德 |
| 6922028 |
亨利 |
莱利 |
| ... |
... |
... |
常见问题
如何生成类似Hubspot应用报告的数据?
通常需参考目标报告的列结构。若报告非表格形式,可将其转换为表格以查看列信息。这些列通常对应对象类型或事件类型的属性。下一步需确定列对应的对象类型属性,可通过查询property_definitions实现:
SELECT * FROM 属性定义
WHERE 标签 = [列名]
由于某些属性名称在应用中会被解析为更具描述性的名称,因此未必能找到完全匹配项。此时可通过在property_definitions表的label(甚至description)列使用LIKE运算符进行模糊搜索。
确定列所属对象类型后,查询操作便变得简单:直接搜索对应该类型的object_x视图即可。
如何将此数据类型与另一类型关联?例如如何获取活动对应的表单?
若需关联两个或多个不同记录,请参考关联关系。关联关系体现了 HubSpot CRM 中对象间的关联。所有类型间的关联类型均列于 association_definitions 表中。以上例而言,查询活动关联的所有表单需查询 ASSOCIATIONS_CAMPAIGNS_TO_FORMS:
SELECT 活动.属性_hs_名称 活动名称,
表单.属性HS表单ID form_id
FROM 对象活动表 activities
连接 关联活动与表单 assoc ON
assoc.campaign_objectid=campaigns.objectid
连接表单对象表单表 ON 表单.对象ID=关联表.表单对象ID
GROUP BY 活动名称
如何查看HubSpot-Snowflake集成状态?
要获取HubSpot-Snowflake集成故障和问题的实时状态更新,请查询data_share_status视图:
SELECT * FROM hubspot.public.data_share_status
LIMIT 1
查询结果将显示为:
| 状态 | 消息 | 更新日期 |
| 正常 | 目前无已知事件 | 2023-04-10 09:21:20.123 |
该视图按时间倒序提供集成状态更新。将查询结果集成到仪表板中,可帮助您跟踪集成性能并检测任何停机或故障。