知識庫

建立計算屬性

作者:HubSpot Support | Nov 21, 2022 12:33:53 PM

您可以建立根據其他屬性的計算來填入資料的屬性。透過計算屬性,您可以根據其他屬性設定自訂方程式。透過總計屬性,您可以自動計算關聯記錄上屬性的最小值、最大值、計數、總和或平均值。

例如,您可以建立:

  • 一種公司財產,根據自訂公式計算獲取新客戶的成本。
  • 用於計算聯絡人關聯交易的平均金額的聯絡人屬性。

請注意:根據您的 HubSpot 訂閱,您可以建立的計算屬性的數量有限制

建立計算屬性

可以根據不同的條件設定計算屬性,包括關聯記錄的屬性值、兩個屬性值之間的時間或您自己的自訂方程式。若要建立計算或匯總屬性:

  • 在左側邊欄選單中,導覽至「屬性」

  • 一下選擇物件下拉式選單,然後選擇[物件] 屬性為該物件建立屬性。

  • 輸入您的財產的基本詳細信息,然後單擊“字段類型”選項
  • 若要建立自訂方程或時間間隔方程,請選擇「計算」作為欄位類型。點擊計算屬性類型下拉式選單並選擇要建立的公式類型:
    • 時間間隔:根據同一物件內兩個日期選擇器屬性之間的時間計算值。了解有關建立此類計算屬性的更多資訊。
  • 若要建立計算最小值、最大值、計數、總和或平均值的屬性,請選擇Rollup 。點擊匯總類型下拉式選單並選擇要建立的公式類型。了解有關建立這些類型的屬性的更多資訊。

根據關聯記錄的屬性計算值

您可以為物件建立屬性,這些屬性將根據該物件關聯記錄的某些屬性值進行計算。您可以根據該物件的所有關聯記錄或特定關聯標籤(包括相同物件關聯)進行計算。

例如,您可以建立交易屬性,用於計算為具有決策者標籤的交易關聯聯絡人記錄的銷售活動總數。

  • 點擊匯總類型下拉式選單並選擇以下類型之一:
    • 最小值:顯示所選物件的關聯記錄上所選數字屬性的最小值。
    • 最大值:顯示所選物件的所有關聯記錄上所選數字屬性的最大值。
    • 計數:計算所選物件的具有所選數字屬性值的關聯記錄總數。
    • 求和:對所有在選取物件的關聯記錄上選取數字屬性的值進行求和。
    • 平均值:計算所選物件的所有關聯記錄上所選數字屬性值的平均值。
  • 若要選擇如何設定屬性值的格式,請按一下數字格式下拉式選單,然後從下列格式中進行選擇:格式化數字未格式化數字貨幣百分比持續時間
  • 如果您選擇貨幣作為交易資源的格式,則該資源將預設使用您帳戶的公司貨幣。若要使用每個交易記錄的貨幣,請選取使用記錄貨幣而不是公司貨幣複選框。使用記錄貨幣只會影響價值的顯示方式,不會自動套用匯率。

  • 選擇關聯物件關聯記錄屬性以計算屬性。
  • 若要僅根據具有特定標籤的記錄進行計算,請按一下選擇關聯標籤,然後選擇要包含的標籤
  • 若要新增附加條件,請按一下建立條件。當設定附加條件時,必須滿足該條件才能計算屬性(例如,當最近交易金額> 1000 時計算屬性)。
    • 在第一個下拉式選單中,選擇一個屬性
    • 在第二個下拉式選單中,選擇一個運算符,將第一個屬性的值與數字或另一個屬性的值進行比較。
    • 在第三個下拉式選單中,選擇一個屬性或輸入將與第一個屬性進行比較的數字
  • 單擊創建。建立後,屬性的顯示欄位類型將為匯總。

請注意:原始持續時間值以毫秒為單位儲存。如果您在其他 HubSpot 工具(例如篩選器、計算屬性公式)中使用持續時間計算屬性,則可能需要使用毫秒值

根據兩個屬性之間的時間計算值

您可以建立計算同一物件中兩個選定日期選擇器屬性之間的時間的屬性。例如,您可以計算分配票證所有者與關閉票證之間的時間。了解有關如何顯示時間間隔計算屬性值的詳細資訊。

如果您嘗試根據今天的日期建立屬性,請詳細了解如何在屬性和篩選器中使用相對時間

  • 點擊計算屬性類型下拉式選單並選擇時間間隔
  • 點擊下拉式選單選擇“開始日期”“結束日期”屬性。

  • 若要新增附加條件,請按一下建立條件。當設定附加條件時,必須滿足該條件才能計算屬性(例如,當最近交易金額> 1000 時計算屬性)。
    • 在第一個下拉式選單中,選擇一個屬性
    • 在第二個下拉式選單中,選擇一個運算符,將第一個屬性的值與數字或另一個屬性的值進行比較。
    • 在第三個下拉式選單中,選擇一個屬性或輸入將與第一個屬性進行比較的數字
  • 單擊創建。建立後,屬性的顯示欄位類型將為計算。

顯示計算屬性之間的時間值時,預期會出現以下行為:

  • 不同的 HubSpot 工具中時間顯示會有所不同。
  • 對於沒有時間戳記的日期屬性,計算中使用的預設時間將為所選日期的 UTC 時間 12:00。
  • 在記錄(例如, 聯絡人記錄)上,顯示的值將以小時、天、月年為單位,並將根據特定閾值向上舍到下一個單位。例如,如果計算的時間為 1 個月零 20 天,則顯示的值為1 個月,但如果計算的時間為 1 個月零 27 天,則顯示的值為2 個月閾值是:
    • 45 秒或以上四捨五入為一分鐘
    • 45 分鐘或以上,最多 1 小時
    • 22 小時或更長四捨五入到一天
    • 26 天或以上四捨五入至 1 個月
    • 11 個月或以上四捨五入至一年
  • 在使用具有此欄位類型的屬性的自訂報表中,顯示的值將以天為單位。例如,如果計算的時間為一年零二十天,則顯示的值為385 天

請注意:在 HubSpot 中, Time BetweenAverage屬性類型的原始值以毫秒為單位儲存。如果包含這些值的方程式產生的值高於預期,請使用毫秒轉換器轉換為所需的時間單位。


根據自訂方程式計算值

您也可以建立根據您自己的標準計算值的屬性。只能為要為其建立新屬性的相同物件內的數字屬性設定自訂方程式。例如,您可以建立一個方程式來計算公司最近交易的金額(最近交易金額)與您的企業聯繫該公司的次數(聯絡次數)。

您可以使用算術運算子、比較運算子、邏輯運算子、條件語句和其他函數建立自訂方程式。這些方程式可以傳回數字、布林值、字串或日期值。了解有關可用運算符和函數以及如何設定公式格式的更多資訊。

要建立自訂方程式計算屬性:

  • 按一下計算屬性類型下拉式選單,然後選擇自訂方程式
  • 按一下輸出類型下拉列表,然後選擇計算將傳回的輸出類型。您可以選擇以下選項之一: NumberBooleanStringDate

請注意:所選的輸出類型必須與編輯器右上角顯示的輸出類型相符,否則您將無法建立屬性。對於傳回日期的屬性,您可以使用數字或日期輸出類型來決定值的顯示方式(即數字以毫秒為單位顯示日期,日期顯示格式化日期)。

  • 如果您選擇了數位輸出類型:
    • 按一下數字格式下拉式選單,然後選擇如何設定屬性值的格式。您可以選擇以下選項之一:格式化數字未格式化數字貨幣百分比持續時間
    • 如果您選擇貨幣作為交易媒體資源的數位格式,則該媒體資源將預設使用您帳戶的公司貨幣 。若要使用每個交易記錄的貨幣,請選取使用記錄貨幣而不是公司貨幣複選框。

請注意:使用記錄貨幣只會影響價值的顯示方式,不會自動套用匯率。若要新增匯率,您可以在方程式中包含exchange_ratedated_exchange_rate函數。


  • 在編輯器中,插入、鍵入或貼上函數和屬性以建立自訂方程式。了解有關自訂計算方程式語法的更多資訊。若要插入公式元素:
    • 點選插入下拉選單。
    • 若要將函數插入方程中,請選擇函數,然後選擇函數
    • 若要將屬性插入方程式中,請選擇「屬性」 然後選擇一個屬性。您只能使用要為其建立屬性的相同物件的屬性來建立自訂方程式。

  • 如果您的方程式有錯誤,請點選編輯器上方的[x] issues查看錯誤原因。如果您的方程式存在未解決的錯誤,您將無法建立該屬性。了解有關如何格式化方程式的更多資訊。
  • 若要預覽公式的輸出,請按一下測試公式

請注意:如果自訂方程式中的任何數字屬性沒有值或為空值,則計算將不會運行,並且計算屬性值為空。即使等式中包含常數,該值也將為空。在這種情況下,可以使用ifis_known函數將值設為 0


  • 單擊創建。建立後,屬性的顯示欄位類型將為Calculation

自訂方程式語法

在公式編輯器中,您可以使用文字資料、來自其他屬性、運算子和函數的資料來建立自己的自訂方程式。下面,了解編寫自訂計算方程式的語法並查看常用公式的範例

文字文法

使用文字數據,您可以將文字字串、數字以及真值或假值加到方程式中。您可以透過以下方式格式化字串、數字、布林值和日期常數:

  • 字串文字:用引號括起來的文字。這些可以用單引號 ( 'constant' ) 或雙引號 ( "constant" ) 表示。

  • 數字字面量:不含引號的數字。常數可以是任何實數,並且可以包括點符號。例如, 10051.5589都是有效的常數。

  • 布林文字:常數布林值可以是truefalse

  • 日期文字:以毫秒為單位的日期。例如, 1698508800000

屬性語法

您可以在自訂方程式中包含同一物件的其他屬性。如果將屬性插入編輯器,它會自動格式化並作為方程式的一部分進行驗證。

如果您選擇手動鍵入或貼上屬性到編輯器中,則其格式應為[properties.{propertyInternalName}] 。例如,若要新增屬性Test Score(內部值為Test_score ) ,您可以在編輯器中將其輸入為[properties.Test_score]

在方程式中使用枚舉屬性時(例如,下拉選擇、單選選擇):

  • 值被視為字串,因此必須用雙引號引起來。例如, "subscriber"
  • 您必須使用屬性選項的內部名稱。例如, "appointmentscheduled"

營運商

您可以在方程式中使用運算子來更新、評估或比較常數和屬性值。當使用多個運算子時,它們遵循 PEMDAS 的運算順序。根據您使用的資料類型,您可以在自訂方程式中包含以下運算子。

操作員描述
+添加數字或字串。傳回一個數字。
-減去數字。傳回一個數字。
*乘以數字。傳回一個數字。
/除數。傳回一個數字。
<檢查一個值是否小於另一個值。由數字屬性或常數支援。傳回一個布林值。
>檢查一個值是否大於另一個值。由數字屬性或常數支援。傳回一個布林值。
<=檢查一個值是否小於或等於另一個值。由數字屬性或常數支援。傳回一個布林值。
>=檢查一個值是否大於或等於另一個值。由數字屬性或常數支援。傳回一個布林值。
!檢查是否沒有一個值為 true。傳回一個布林值。
===檢查一個值是否等於另一個值。由數字和字串支援。傳回一個布林值。
!=檢查一個值是否不等於另一個值。由數字和字串支援。傳回一個布林值。
or||檢查兩個值中的任何一個是否為 true。傳回一個布林值。
and&&檢查兩個值是否都為真。傳回一個布林值。

功能

您可以使用自訂公式中的函數來計算值並使用資料完成操作。根據您使用的資料類型,您可以在自訂方程中包含以下函數。

功能論點範例

abs

取得數字的絕對值。傳回一個數字。

abs(number)

number :要取得其絕對值的數字。

abs(-100) = 100

concatenate

將最多 100 個字串合併為一個值。傳回一個字串。

concatenate("arg 1", "arg 2")

arg1 :將附加 arg 2 的字串。

arg2 :附加到 arg 1 的字串。

concatenate("Example", " Test") = "範例測試"

contains

確定一個字串是否包含另一個字串(區分大小寫)。傳回一個布林值。

contains(text, substring)

text :用於檢查子字串的字串或文字屬性。

substring :文字應包含的字串。

contains([properties.name], "Spot")

contains("HubSpot", "Spot")

currency_decimal_places

取得貨幣的小數位數。傳回一個數字。

currency_decimal_places(currency)

貨幣:要計算其小數位數的貨幣字串。

currency_decimal_places("USD")

dated_exchange_rate

取得給定時間的匯率值。傳回一個數字。

dated_exchange_rate(currency, date)

currency :您要計算特定日期匯率的貨幣字串(例如, "USD" )。

date :要計算匯率的日期時間屬性。

dated_exchange_rate("USD", [properties.closedate])

exchange_rate

取得最新的匯率。傳回一個數字。

exchange_rate(currency)

貨幣:您要計算其匯率的貨幣字串。

exchange_rate("USD")

if

設定條件表達式。

if(condition, arg2)if(condition, arg2, arg3)

condition :決定計算值的布林語句。

arg2 :布林值、數字或字串,如果滿足條件,則將作為計算值。

arg3 (可選):不符合條件時的計算值。如果包含,它必須與arg2具有相同的類型。如果不使用,則在不滿足條件時該值為null

if([properties.amount] > 1000, "large", "small")

is_known

確定令牌的值是否已知。傳回一個布林值。

is_known(property)

property :您要檢查值的屬性。

is_known([properties.name]) = true

last_updated

取得令牌上次更新的日期。以字串形式傳回時間戳(以毫秒為單位)。

last_updated(property)

property :您要檢查最近更新日期的屬性。

last_updated([properties.amount]) = "1672531200000"

lowercase

將所有字元更改為小寫。傳回一個字串。

lowercase(text)

text :包含要變更為小寫的值的字串或文字屬性。

lowercase("heLLo") =“你好”


lowercase([properties.test])

max

取得兩個數字中的最大值。傳回一個數字。

max(arg1, arg2)

arg1 :第一個數字或數字屬性。

arg2 :第二個數字或數字屬性。

max(500,[properties.amount]) = 500(如果金額值小於 500)。

min

求兩個數中的最小值。傳回一個數字。

min(arg1, arg2)

arg1 :第一個數字或數字屬性。

arg2 :第二個數字或數字屬性。

min(500, 250) = 250

month

取得給定日期的數字月份。傳回一個數字。

month(date)

date :要計算月份的日期時間屬性。

month([properties.closedate])

number_to_string

將數字轉換為字串。傳回一個字串。

number_to_string(number_to_convert)

number_to_convert :要變更為字串的數字或數字屬性。

number_to_string(1000) =“1000”

pipeline_probability

獲取管道階段的機率。傳回一個數字。

pipeline_probability(pipeline)

pipeline :要計算機率的管道的名稱。

pipeline_probability("newdeal")

power

將一個數字的值提高到另一個數字的值。傳回一個數字。

power(base, exponent)

基數:基數。

指數:將底數提高到的數值。

power(5, 2) = 25

round_down

將數字向下舍入到指定的精度。傳回一個數字。

round_down(number_to_round, precision)

number_to_round :要向下捨入的數字或數字屬性。

precision :向下捨入到的小數位數。

round_down(4.353, 1) = 4.3

round_nearest

將數字舍入到指定的精度。傳回一個數字。

round_nearest(number_to_round, precision)

number_to_round :要捨入其值的數字或數字屬性。

precision :要捨入的小數位數。

round_nearest(4.32, 1) = 4.3

round_up

將數字向上舍入到指定的精度。傳回一個數字。

round_up(number_to_round, precision)

number_to_round :要向上捨入其值的數字或數字屬性。

precision :向上捨入的小數位數。

round_up(4.353, 1) = 4.4

sqrt

求一個數的平方根。傳回一個數字。

sqrt(number)

number :要計算其平方根的數字。

sqrt(144) = 12

starts_with

確定一個字串是否以另一個字串開頭(區分大小寫)。傳回一個布林值。

starts_with(text, substring)

text :要檢查子字串的字串或文字屬性。

substring :文字應開頭的字串。

starts_with([properties.name], "Hub")

starts_with("HubSpot", "Hub")

string_to_number

將字串轉換為數字。傳回一個數字。

string_to_number(string_to_convert)

string_to_convert :要將其值轉換為數字的字串或文字屬性。

string_to_number("1000") = 1000

time_between

取得兩個日期之間的時間差。傳回一個數字

time_between(date1, date2)

date1 :起始日期時間屬性。

date2 :結束日期時間屬性。

time_between([properties.createdate],[properties.closedate])

uppercase

將所有字元更改為大寫。傳回一個字串。

uppercase(text)

text :要變更為大寫的字串或文字屬性。

uppercase("hello") =“你好”

year

取得給定日期的數字年份。傳回一個數字。

year(date)

date :要計算年份的日期時間屬性。

year([properties.closedate])

範例

以下是基於常見用例的範例公式。

  • 您可以設定 if else 語句,包括具有多個條件和在函數內的語句:
    • if([properties.number] < 4, "less than four", "more than four")
    • if([properties.number] < 4, if([properties.other_number] < 2, "both true", "one true"), "not true")
    • concatenate(if([properties.number] < 4, "less", "more"), " than four")
  • 在自訂公式中使用數字屬性時,您可以包含ifis_known函數,以便在數字屬性為空時將值設為 0。例如, if(is_known([properties.number]), [properties.number], 0)
  • 在公式中使用記錄貨幣時,若要新增匯率,您可以在方程式中包含exchange_ratedated_exchange_rate函數。例如, [properties.amount] * exchange_rate('CAD')