创建计算和卷积属性
上次更新时间: 2025年9月8日
你可以创建根据其他属性的计算结果填充数据的属性。通过滚动属性,你可以自动计算相关记录上属性的最小值、最大值、计数、总和或平均值。使用计算属性,可以根据属性值之间、直到或自属性值以来的时间设置等式,或根据对象的属性创建自定义等式。
请注意:您的账户可能会为每个对象使用个性化名称(如账户而不是公司)。本文档使用 HubSpot 的默认名称来称呼对象。
例如,你可以创建
- 公司属性,根据自定义公式计算获取新客户的成本。
- 联系人属性,用于计算联系人相关交易的平均金额。
- 交易属性,用于计算交易开启后的时间。
根据你的 HubSpot 订阅,你可以创建的计算属性数量是有限制的。
根据关联记录的属性创建卷积属性
你可以根据对象关联记录的某些属性值为对象创建计算属性。你可以根据该对象的所有关联记录或特定关联标签(包括同一对象关联)进行计算。
例如,您可以创建一个交易属性,计算带有决策者 标签的交易关联联系人记录的销售活动总数。
- 在 HubSpot 帐户中,单击顶部导航栏中的 settings“设置”图标。
-
在左侧边栏菜单中,导航至属性。
-
单击 选择对象 下拉菜单,然后选择[对象] 属性 ,为该对象创建属性。
- 输入属性的基本详细信息,然后单击字段类型选项卡。
- 选择 "滚动 "。
- 单击 "滚动类型"下拉菜单,然后选择以下类型之一:
- 最小值:显示选定对象相关记录中选定数字属性的最小值。
- 最大:显示选定对象所有关联记录中选定数字属性的最大值。
- 计数:计算选定对象中具有所选数字属性值的关联记录总数。
- 求和:对所选对象所有关联记录中的所选数字属性值进行求和。
- 平均值:计算选定对象所有关联记录中选定数字属性值的平均值。
- 要选择如何格式化属性值,请单击数字格式下拉菜单,然后从以下格式中进行选择:格式化 数字、非格式化数字、货币、百分比或持续时间。
- 如果选择"货币 "作为交易属性的格式,该属性将默认使用账户的公司 货币。要使用每个交易记录的货币,请选择 使用记录货币而不是公司货币复选框。使用记录货币只会影响值的显示方式,不会自动应用汇率。
- 选择要计算属性的关联对象和关联记录属性。
- 要只根据具有特定标签的记录进行计算,请单击选择关联标签,然后选择要包含的标签。
- 要添加附加条件,请单击添加条件。设置附加条件后,必须满足这些条件才能计算属性(例如,当最近交易金额> 1000 且交易概率>=80 时计算属性)。每个滚动属性最多可配置 50 个条件。
- 在第一个下拉菜单中,选择一个属性。
- 在第二个下拉菜单中,选择将第一个属性值与一个数字或另一个属性值进行比较的运算符。
- 在第三个下拉菜单中,选择一个属性或输入一个与第一个属性进行比较的数字 。
- 单击保存。
- 单击创建。创建后,属性显示的字段类型将是Rollup。
请注意:原始持续时间值以毫秒为单位存储。如果在其他 HubSpot 工具(如过滤器、计算属性公式)中使用持续时间计算属性,则可能需要使用毫秒值。
创建间隔时间、自时间或直至时间计算属性
你可以创建计算两个日期之间时间的属性,或跟踪由日期或日期和时间选择器属性的值决定的自某个日期起或直至某个日期的时间量的属性。时间间隔属性仅支持同一对象的属性。
例如
- 创建 "时间间隔"属性,以计算从分配票单所有者到关闭票单之间的时间。
- 创建 "自打开以来的时间"属性,以跟踪交易已打开多长时间。
- 创建 "Time until close(直至关闭时间)"属性,以跟踪客户距离今天关闭的时间。
要创建一个属性,其值根据今天的日期而不是属性值显示相对时间,请学习如何创建相对时间日期/日期和时间选择器属性。还可以使用自定义公式创建固定时间属性。
创建时间间隔、时间起始或时间截止计算属性:
- 在 HubSpot 帐户中,单击顶部导航栏中的 settings“设置”图标。
-
在左侧边栏菜单中,导航至属性。
-
单击 " 选择对象 "下拉菜单,然后选择[对象]属性 ,为该对象创建属性。
- 输入属性的基本详细信息,然后单击 字段类型 选项卡。
- 选择计算作为字段类型。
- 单击计算属性类型下拉菜单,然后选择类型并设置计算:
- 时间间隔:选择开始日期和结束日期 属性。
- 起始时间:选择日期/日期和时间选择器 属性,其值将作为起始日期。结束日期总是今天的日期。
- 截止时间:选择日期/日期和时间选择器 属性,其值将作为结束日期。开始日期始终为今天的日期。
- 仅对于时间间隔属性,要添加附加条件,请单击添加条件。设置附加条件后,必须满足这些条件才能计算属性(例如,当最近成交金额> 1000 且成交概率>=80 时计算属性)。
- 在第一个下拉菜单中,选择一个属性。
- 在第二个下拉菜单中,选择一个运算符,将第一个属性的值与一个数字或另一个属性的值进行比较。
- 在第三个下拉菜单中,选择一个属性或输入一个数字 ,与第一个属性进行比较。
- 单击保存。
- 单击创建。创建后,属性显示的字段类型将是计算。 接下来,就不能再编辑 "Time between(时间间隔)"、 "Time since( 开始时间)"或"Time until(结束时间)"了,但可以选择不同的开始或结束日期属性。
在显示持续时间值时,预计会出现以下行为:
- 对于没有时间戳的日期属性,计算中使用的默认时间将是所选日期的 12:00 am UTC。
- 根据特定阈值,显示的值将以秒、分、小时、天、月或年为单位。单位阈值为
- 2.5 年或更长时间将以年为单位显示。
- 3 个月或更长时间将以月为单位显示。
- 1 天或更长时间将以天显示。
- 2.5 小时或更长时间将以小时为单位显示。
- 2.5 分钟或更长时间将以分钟为单位显示。
- 2.5 分钟以下以秒为单位显示。
请注意:在 HubSpot 中,时间间隔 和平均值属性类型的原始值以毫秒为单位存储。如果使用这些值的等式得出的值高于预期,请使用毫秒转换器转换为所需的时间单位。
创建自定义等式计算属性
您还可以根据自己的标准创建计算值的属性。自定义等式只能为创建新属性的同一对象中的数字属性设置。例如,你可以创建一个等式,计算公司最近交易的金额(最近交易金额)与你的企业联系该公司的次数(联系次数)的比较。
您可以使用算术运算符、比较运算符、逻辑运算符、条件语句和其他函数建立自定义等式。这些等式可以返回数字、布尔、字符串、日期或日期时间值。了解有关可用运算符、函数以及如何 格式化公式的更多信息。还可以查看常用公式的示例。
建立自定义公式计算属性:
- 在 HubSpot 帐户中,单击顶部导航栏中的 settings“设置”图标。
-
在左侧边栏菜单中,导航至属性。
-
单击 选择对象 下拉菜单,然后选择[对象] 属性 ,为该对象创建属性。
- 输入属性的基本详细信息,然后单击字段类型选项卡。
- 选择计算作为字段类型。
- 单击计算属性类型下拉菜单,然后选择自定义方程。
- 单击输出类型下拉菜单,然后选择计算将返回的输出类型。您可以选择以下其中一种:数字、布尔、字符串、日期或日期时间。
请注意:所选输出类型必须与编辑器右上角显示的输出类型一致,否则无法创建属性。对于返回日期的属性,可以使用数字或日期输出类型,这两种类型决定了数值的显示方式(例如,数字显示毫秒日期,日期显示格式化日期)。
- 如果您选择了 "数字"输出类型:
- 单击数字格式下拉菜单,然后选择属性值的格式。可以选择以下其中一种:格式化数字、非格式化数字、货币、百分比或持续时间。
- 如果选择 "货币 "作为交易属性的数字格式,该属性将默认使用账户的公司 货币 。要使用每个交易记录的货币,请选择 使用记录货币而不是公司货币复选框。
- 在编辑器中,插入、键入或粘贴函数和属性,建立自定义公式。了解有关自定义计算公式语法的 更多信息。 插入公式元素:
- 单击插入下拉菜单。
- 要在方程中插入函数,请选择函数,然后选择一个函数。
- 要在公式中插入属性,请选择属性, ,然后选择一个属性。只能使用创建属性的同一对象的属性创建自定义公式。
- 如果方程出现错误,请单击编辑器上方的[x] 问题查看错误原因。如果方程有未解决的错误,你将无法创建属性。进一步了解如何格式化方程。
- 要预览公式输出,请单击测试公式。
- 单击创建。创建后,属性显示的字段类型将是计算。
自定义等式语法
- 字面语法:使用字面数据,您可以在公式中添加文本字符串、数字和真假值。可以通过以下方式格式化字符串、数字、布尔值和日期常量:
-
字符串文字:用引号包围的文本。可以用单引号 (
'constant'
) 或双引号 ("constant"
) 表示。 -
数字字面:不带引号的数字。常数可以是任何实数,也可以包括点符号。例如,
1005
和1.5589
都是有效的常数。 -
布尔字面:布尔常量可以是
true
或false
。 - 日期字面:以毫秒为单位的日期。例如,
1698508800000
。
-
- 属性语法:您可以在自定义公式中包含同一对象的其他属性。
- 如果在编辑器中 插入 属性,它将自动格式化并作为等式的一部分进行验证。
- 如果您选择手动键入或粘贴属性到编辑器中,其格式应为
[properties.{propertyInternalName}]
。例如,要添加 内部 值为 Test_score 的 属性 Test score,可在编辑器中输入[properties.Test_score]
。 - 在公式中使用枚举属性 (如下拉选择、单选选择)时,其值被视为字符串,因此必须用双引号封装("如
"subscriber"
),还必须使用属性选项的内部名称(如"appointmentscheduled"
)。 - 在公式中使用日期属性时,值以毫秒为单位存储为 UTC 午夜。
- 在公式中使用日期时间属性时,值以毫秒为单位存储为 UTC 时间。该值根据您所在的时区显示。这意味着不同时区的用户会看到不同的值。
运算符
您可以在等式中使用运算符来更新、评估或比较常量和属性值。使用多个运算符时,它们遵循 PEMDAS 的操作顺序。根据您使用的数据类型,您可以在自定义公式中包含以下运算符。
操作符 | 说明 |
+ |
添加数字或字符串。返回一个数字。 |
- |
减数字。返回一个数字。 |
* |
数字乘法返回一个数字。 |
/ |
除数返回一个数字。 |
< |
检查一个值是否小于另一个值。由数字属性或常量支持。返回布尔值。 |
> |
检查数值是否大于另一个数值。由数字属性或常量支持。返回一个布尔值。 |
<= |
检查一个值是否小于或等于另一个值。由数字属性或常量支持。返回布尔值。 |
>= |
检查一个值是否大于或等于另一个值。由数字属性或常量支持。返回一个布尔值。 |
! |
检查是否所有值都不为真。返回一个布尔值。 |
= 或== |
检查一个值是否等于另一个值。支持数字和字符串。返回布尔值。 |
!= |
检查一个值是否不等于另一个值。支持数字和字符串。返回布尔值。 |
or 或|| |
检查两个值中是否有一个为真。返回布尔值。 |
and 或&& |
检查两个值是否都为真。返回布尔值。 |
函数
您可以在自定义公式中使用函数来计算数值和完成数据操作。根据使用的数据类型,您可以在自定义公式中包含以下函数。
函数 | 参数 | 示例 |
获取数字的绝对值。返回一个数字。 |
number:要获取绝对值的数字。 |
|
|
|
|
将最多 100 个字符串合并为一个值。返回一个字符串。 |
arg1:要追加 arg2 的字符串。 arg2:要追加到 arg 1 的字符串。 |
|
判断一个字符串是否包含另一个字符串(区分大小写)。返回布尔值。 |
text:要检查子串的字符串或文本属性。 substring:文本应包含的字符串。 |
contains("HubSpot", "Spot") |
获取货币的小数位数。返回一个数字。 |
currency:要计算小数位数的货币字符串。 |
|
获取给定时间的汇率值。返回一个数字。 |
currency:要计算特定日期汇率的货币字符串(如 date:要计算汇率的日期时间属性。 |
|
获取最新汇率。返回一个数字。 |
currency:要计算汇率的货币字符串。 |
|
|
|
|
设置条件表达式。 |
condition:布尔语句,用于确定计算值。 arg2:布尔、数字或字符串,在满足条件的情况下作为计算值。 arg3(可选):不满足条件时的计算值。如果包含,则必须与 |
|
确定标记是否有已知值。返回布尔值。 |
property:要检查值的属性。 |
|
获取令牌上次更新的日期。以毫秒为单位以字符串形式返回时间戳。 |
property:要检查最近更新日期的属性。 |
|
将所有字符改为小写。返回字符串。 |
text:要改为小写的字符串或文本属性值。 |
|
获取两个数字的最大值。返回一个数字。 |
arg1:第一个数字或数字属性。 arg2:第二个数字或数字属性。 |
|
获取两个数字的最小值。返回一个数字。 |
arg1:第一个数字或数字属性。 arg2:第二个数字或数字属性。 |
|
获取给定日期的数字月份。返回一个数字。 |
date:要计算月份的日期时间属性。 |
|
将数字转换为字符串。返回字符串。 |
number_to_convert:要转换为字符串的数字或数字属性。 |
|
获取管道阶段的概率。返回一个数字。 |
pipeline:要计算概率的管道名称。 |
|
将一个数字提升到另一个数字的值。返回一个数字。 |
base:基数。 指数:基数的指数值。 |
|
将一个数字向下舍入到指定精度。返回一个数字。 |
number_to_round:要向下舍入的数字或数字属性。 precision(精度):要向下舍入的小数位数。 |
|
将一个数字四舍五入到指定精度。返回一个数字。 |
number_to_round:要四舍五入的数字或数字属性。 precision:四舍五入的小数位数。 |
|
将一个数字向上舍入到指定精度。返回一个数字。 |
number_to_round:要四舍五入的数字或数字属性。 precision:四舍五入的小数位数。 |
|
获取一个数字的平方根。返回一个数字。 |
number:要获取平方根的数字。 |
|
判断一个字符串是否以另一个字符串开头(区分大小写)。返回布尔值。 |
text:要检查子串的字符串或文本属性。 substring:文本应以其开头的字符串。 |
|
|
|
|
将字符串转换为数字。返回一个数字。 |
string_to_convert:要将其值转换为数字的字符串或文本属性。 |
|
|
|
subtract_time(1699320015000, 1, "second") = 1699320014000 |
获取两个日期之间的时间差。返回一个数字。 |
date1:起始日期时间属性。 date2:结束日期时间属性。 |
|
将所有字符改为大写。返回字符串。 |
text:要改为大写的字符串或文本属性。 |
|
获取给定日期的数字年份。返回一个数字。 |
date:要计算年份的日期时间属性。 |
|
查看自定义公式示例
以下是基于常见用例的公式示例。
使用 if else 语句
您可以设置 if else 语句,包括包含多个条件的语句和函数内的语句。
例如,您可以创建一个计算来标记活动交易。只有当交易状态为活动且金额大于零时,以下公式才会返回True。
if([properties.amount] < 0 && [properties.dealstage] == "qualifiedtobuy", "True", "False")
运行空值计算
在自定义公式中使用数字属性时,可以包含if
和is_known
函数,以便在数字属性为空时将值设置为 0。这样,无论属性是否包含空值,您都可以运行计算。例如
if(is_known([properties.number]), [properties.number], 0)
.
将汇率附加到货币计算中
在公式中使用记录货币时,如果要添加汇率,可以在公式中加入exchange_rate
或dated_exchange_rate
函数。例如
[properties.amount] * exchange_rate('CAD')
.
创建固定时间计算
您可以设置一个计算来获取两个日期之间的固定时间。默认情况下,原始值以毫秒为单位返回。您可以使用除法和round_nearest
函数将时间格式化为小时、天等,并消除最终值中的小数。例如,下面将返回一个固定日期值:
round_nearest((((((([properties.closedate]-[properties.createdate]) / 1000) / 60) ) /60) /24), 0)
.
请注意:建议在输入属性名称和描述时要具体。这样用户就能知道计算的时间(如小时或天)。