HubSpot Process Documentation
- Generated by: HubSpot Documentation Engine
- Total process candidates: 1
- Workflow assessment scope: name_contains via DOCS_WORKFLOW_PREFIXES: ELEVATE, Quality (86/500)
- List assessment scope: name_contains via DOCS_LIST_PREFIXES: ELEVATE (45/2191)
- Status: draft
Data_Quality_Custom code_company association & creation
METADATA
title: Data_Quality_Custom code_company association & creation
type: process
domain: Data Quality
objects: [Contact]
status: draft
User Story (optional)
Logic not derivable from system.
Why
- Why this process exists: Logic not derivable from system.
- What business problem it solves: Logic not derivable from system.
- What breaks if removed: HubSpot would stop executing the system behavior listed below; business impact is not derivable from system alone.
How It Works
Trigger
- Exact trigger from workflow: HubSpot enrollment criteria type: LIST_BASED
- Criteria type: LIST_BASED
- Filter-like criteria returned: 32
- Property references: Primary Associated Company ID (associatedcompanyid), Company (company), Create date (createdate), 4f_Contact update (f4adjustment_request)](/docs/properties/contacts.md), [Email Domain (hs_email_domain)](/docs/properties/contacts.md), [4f_Contact quality label (n4f_contact_quality_label)](/docs/properties/contacts.md), [4f_Region-Country (n4f_region_country)](/docs/properties/contacts.md), [4f_Person_Label_DO NOT USE (pd_person_label__cloned)
- List references: none detected
- Filter types: PROPERTY: 16
- Operators: ALL_PROPERTY: 5, DOES_NOT_CONTAIN: 2, ENUMERATION: 6, IS_BETWEEN: 3, IS_KNOWN: 3, IS_NONE_OF: 6, IS_UNKNOWN: 2, MULTISTRING: 2, TIME_RANGED: 3
- Trigger logic:
- Enrollment criteria type: LIST_BASED
- Enrollment branch 1:
- OR group
- AND group
- Primary Associated Company ID is unknown
- 4f_Region-Country is known
- Create date is between object with keys: indexReference, offset, timeType, timezoneSource, zoneId
- 4f_Person_Label_DO NOT USE is none of Please Delete
- Email Domain does not contain hotmail, googlemail, web.de, freemail, gmail, icloud, yahoo, outlook, neuf.fr, me.com, freenet, live.com, live.de, gmx, t-online, post, gg.com, terra.com.br, libero.it, online.de, protonmail
- 4f_Contact quality label is none of Contact no longer valid, No company to associate
- 4f_Contact update is none of Retired, Contact no longer valid, Duplicate, Fake contact
- AND group
- Primary Associated Company ID is unknown
- 4f_Region-Country is known
- Create date is between object with keys: indexReference, timeType, timezoneSource, zoneId
- 4f_Person_Label_DO NOT USE is none of Please Delete
- Email Domain does not contain hotmail, googlemail, web.de, freemail, gmail, icloud, yahoo, outlook, neuf.fr, me.com, freenet, live.com, live.de, gmx, t-online, post, gg.com, terra.com.br, libero.it, online.de
- 4f_Contact quality label is none of Contact no longer valid, No company to associate
- 4f_Contact update is none of Retired, Contact no longer valid, Fake contact
- Company is between object with keys: indexReference, offset, timeType, timezoneSource, zoneId
- Enrollment branch 2:
- AND group
- Primary Associated Company ID is unknown
- 4f_Region-Country is known
- Create date is between object with keys: indexReference, offset, timeType, timezoneSource, zoneId
- 4f_Person_Label_DO NOT USE is none of Please Delete
- Email Domain does not contain hotmail, googlemail, web.de, freemail, gmail, icloud, yahoo, outlook, neuf.fr, me.com, freenet, live.com, live.de, gmx, t-online, post, gg.com, terra.com.br, libero.it, online.de, protonmail
- 4f_Contact quality label is none of Contact no longer valid, No company to associate
- 4f_Contact update is none of Retired, Contact no longer valid, Duplicate, Fake contact
- Enrollment branch 3:
- AND group
- Primary Associated Company ID is unknown
- 4f_Region-Country is known
- Create date is between object with keys: indexReference, timeType, timezoneSource, zoneId
- 4f_Person_Label_DO NOT USE is none of Please Delete
- Email Domain does not contain hotmail, googlemail, web.de, freemail, gmail, icloud, yahoo, outlook, neuf.fr, me.com, freenet, live.com, live.de, gmx, t-online, post, gg.com, terra.com.br, libero.it, online.de
- 4f_Contact quality label is none of Contact no longer valid, No company to associate
- 4f_Contact update is none of Retired, Contact no longer valid, Fake contact
- Company is between object with keys: indexReference, offset, timeType, timezoneSource, zoneId
- Enrollment branch 4:
- AND group
- 4f_Region-Country is known
- Trigger property meaning:
Steps
Step 1 - Action 26
- What happens: Branches by A/B test split
- What triggers it: Workflow start action returned by HubSpot
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: none detected; lists: none detected
DATA MEANING:
- No property descriptions returned for the properties in this step.
ACTION EVIDENCE:
- Action category: ab_test_branch
- Detected intent: Branches by A/B test split
- Returned action type: AB_TEST_BRANCH
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
Step 2 - Action 1
- What happens: Runs custom code; 6 inputs; 0 outputs
- What triggers it: After action 26
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: SUCCESS, Primary Associated Company ID (associatedcompanyid), body, outputFields, update; lists: none detected
DATA MEANING:
ACTION EVIDENCE:
- Action category: custom_code
- Connection: object with keys: edgeType, nextActionId
- Detected intent: Runs custom code
- Returned action type: CUSTOM_CODE
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- Inputs used by code: companyID, domain, hs_email_domain, hs_object_id, n4f_region_country, n4f_region_county_company
- Conditions detected in code: Code condition: if (!Private_App_Token) { Code condition: if (!domain) return null; Code condition: if (!contactId) { Code condition: if (!emailDomainRaw) { Code condition: if (!emailDomain) { Code condition: if (!contactRegion) { Code condition: if (apiError.response && apiError.response.body) { Code condition: if (results.length > 0) { Code condition: if (normalizedPrimary === emailDomain) { Code condition: } else if ( Code condition: if (updateError.response && updateError.response.body) { Code condition: if (error.stack) {
- CRM/API operations detected: creates, removes, or checks associations, searches records, updates records or resources, writes properties: SUCCESS, associatedcompanyid, body, outputFields, update
- Concrete CRM operations: search: companies, contacts; update: companies, contacts
- Search/filter evidence: search/filter operator: CONTAINS_TOKEN; search/filter operator: EQ
- Data transformations: calculates or formats dates, combines multiple values, normalizes text to lowercase, removes surrounding whitespace, replaces or cleans text patterns, serializes data as JSON
- Outputs returned to workflow: outputFields
- HubSpot CRM objects affected or referenced: companies, contacts
- Associations handled: association logic referenced in custom code
- Workflow control: can exit without producing outputs, can fail the action explicitly, contains asynchronous execution, returns output fields to later workflow actions
- Safeguards/error handling: error or warning logging, explicit error throwing, guard clauses or missing-value checks, structured response handling, try/catch error handling, checks missing values, has catch block, logs errors, throws errors
- Imports: @hubspot/api-client
- External systems/hosts: none detected
- External call evidence: none detected
- HTTP methods in code: none detected
- Secrets configured: 2
- Code evidence: 217 lines returned; code body analyzed but omitted from docs
Step 3 - Action 4
- What happens: Runs a connected HubSpot workflow action
- What triggers it: After action 1
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: none detected; lists: none detected
DATA MEANING:
- No property descriptions returned for the properties in this step.
ACTION EVIDENCE:
- Action category: connected_action
- Connection: object with keys: edgeType, nextActionId
- Detected intent: Runs a connected HubSpot workflow action
- Returned action type: SINGLE_CONNECTION
- Returned field keys: delta, time_unit
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
Step 4 - Action 22
- What happens: Branches by A/B test split
- What triggers it: After action 4
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: none detected; lists: none detected
DATA MEANING:
- No property descriptions returned for the properties in this step.
ACTION EVIDENCE:
- Action category: ab_test_branch
- Detected intent: Branches by A/B test split
- Returned action type: AB_TEST_BRANCH
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
Step 5 - Action 3
- What happens: Branches based on HubSpot list membership; 2 branches
- What triggers it: After action 22
- System condition: 2 branch condition(s) returned by HubSpot.
- What data is used: properties: Primary Associated Company ID (associatedcompanyid); lists: none detected
DATA MEANING:
ACTION EVIDENCE:
- Action category: list_branch
- Detected intent: Branches based on HubSpot list membership
- Returned action type: LIST_BRANCH
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- Branch: associated
- Condition summary: associated
- Default branch: no
- Next action IDs: workflow exit or not returned
- Referenced properties: Primary Associated Company ID (associatedcompanyid)
- Referenced lists: none detected
- Filter-like criteria returned: 2
- Returned branch logic:
- OR group
- AND group
- Primary Associated Company ID is known
- Branch: not assoc
- Condition summary: not assoc
- Default branch: yes
- Next action IDs: 7
- Referenced properties: none detected
- Referenced lists: none detected
- Filter-like criteria returned: 0
- Returned branch logic:
- AND group
- Branch name: not assoc
- Next action: 7
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
Step 6 - Action 7
- What happens: Runs custom code; 8 inputs; 0 outputs
- What triggers it: After action 3
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: Primary Associated Company ID (associatedcompanyid); lists: none detected
DATA MEANING:
ACTION EVIDENCE:
- Action category: custom_code
- Connection: object with keys: edgeType, nextActionId
- Detected intent: Runs custom code
- Returned action type: CUSTOM_CODE
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- Inputs used by code: companyID, domain, hs_email_domain, hs_object_id, n4f_region_contact, n4f_region_country, n4f_region_county_company, n4flow_region
-
| Conditions detected in code: Code condition: if (!Private_App_Token) { Code condition: if (!domain) return null; Code condition: if (val === null |
|
val === undefined) return null; Code condition: if (!contactId) { Code condition: if (!emailDomainRaw) { Code condition: if (!emailDomain) { Code condition: if (!contactRegion) { Code condition: if (apiError.response && apiError.response.body) { Code condition: if (results.length > 0) { Code condition: if (apiError.response && apiError.response.body) { Code condition: if (results.length > 0) { Code condition: if (!contactRegionContact) { |
- CRM/API operations detected: creates, removes, or checks associations, searches records, updates records or resources, writes properties: associatedcompanyid
- Concrete CRM operations: search: companies, contacts; update: companies, contacts
- Search/filter evidence: search/filter operator: CONTAINS_TOKEN; search/filter operator: EQ
- Data transformations: calculates or formats dates, combines multiple values, normalizes text to lowercase, removes surrounding whitespace, replaces or cleans text patterns, serializes data as JSON
- Outputs returned to workflow: Stack, contact, outputFields
- HubSpot CRM objects affected or referenced: companies, contacts
- Associations handled: association logic referenced in custom code
- Workflow control: can exit without producing outputs, can fail the action explicitly, contains asynchronous execution, returns output fields to later workflow actions
- Safeguards/error handling: error or warning logging, explicit error throwing, guard clauses or missing-value checks, structured response handling, try/catch error handling, checks missing values, has catch block, logs errors, throws errors
- Imports: @hubspot/api-client
- External systems/hosts: none detected
- External call evidence: none detected
- HTTP methods in code: none detected
- Secrets configured: 2
- Code evidence: 328 lines returned; code body analyzed but omitted from docs
Step 7 - Action 10
- What happens: Runs a connected HubSpot workflow action
- What triggers it: After action 7
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: none detected; lists: none detected
DATA MEANING:
- No property descriptions returned for the properties in this step.
ACTION EVIDENCE:
- Action category: connected_action
- Connection: object with keys: edgeType, nextActionId
- Detected intent: Runs a connected HubSpot workflow action
- Returned action type: SINGLE_CONNECTION
- Returned field keys: delta, time_unit
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
Step 8 - Action 8
- What happens: Branches based on HubSpot list membership; 2 branches
- What triggers it: After action 10
- System condition: 2 branch condition(s) returned by HubSpot.
- What data is used: properties: Primary Associated Company ID (associatedcompanyid); lists: none detected
DATA MEANING:
ACTION EVIDENCE:
- Action category: list_branch
- Detected intent: Branches based on HubSpot list membership
- Returned action type: LIST_BRANCH
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- Branch: associated
- Condition summary: associated
- Default branch: no
- Next action IDs: 9
- Referenced properties: Primary Associated Company ID (associatedcompanyid)
- Referenced lists: none detected
- Filter-like criteria returned: 2
- Returned branch logic:
- OR group
- AND group
- Primary Associated Company ID is known
- Branch: not assoc
- Condition summary: not assoc
- Default branch: yes
- Next action IDs: 11
- Referenced properties: none detected
- Referenced lists: none detected
- Filter-like criteria returned: 0
- Returned branch logic:
- AND group
- Branch name: not assoc
- Next action: 11
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
Step 9 - Action 11
- What happens: Runs custom code; 7 inputs; 0 outputs
- What triggers it: After action 8
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: Primary Associated Company ID (associatedcompanyid); lists: none detected
DATA MEANING:
ACTION EVIDENCE:
- Action category: custom_code
- Connection: object with keys: edgeType, nextActionId
- Detected intent: Runs custom code
- Returned action type: CUSTOM_CODE
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- Inputs used by code: company, companyID, domain, hs_email_domain, hs_object_id, n4f_region_country, n4f_region_county_company
-
| Conditions detected in code: Code condition: if (!Private_App_Token) { Code condition: if (!domain) return null; Code condition: if (val === null |
|
val === undefined) return null; Code condition: if (!contactId) { Code condition: if (!emailDomainRaw) { Code condition: if (!emailDomain) { Code condition: if (!contactRegion) { Code condition: if (apiError.response && apiError.response.body) { Code condition: if (results.length > 0) { Code condition: // BUT: only proceed to associate if (contact-level) n4f_region_contact == n4flow_region Code condition: if (apiError.response && apiError.response.body) { Code condition: if (results.length > 0) { |
- CRM/API operations detected: creates, removes, or checks associations, searches records, updates records or resources, writes properties: associatedcompanyid
- Concrete CRM operations: search: companies, contacts; update: companies, contacts
- Search/filter evidence: search/filter operator: CONTAINS_TOKEN; search/filter operator: EQ
- Data transformations: calculates or formats dates, combines multiple values, normalizes text to lowercase, removes surrounding whitespace, replaces or cleans text patterns, serializes data as JSON
- Outputs returned to workflow: Stack, contact, outputFields
- HubSpot CRM objects affected or referenced: companies, contacts
- Associations handled: association logic referenced in custom code
- Workflow control: can exit without producing outputs, can fail the action explicitly, contains asynchronous execution, returns output fields to later workflow actions
- Safeguards/error handling: error or warning logging, explicit error throwing, guard clauses or missing-value checks, structured response handling, try/catch error handling, checks missing values, has catch block, logs errors, throws errors
- Imports: @hubspot/api-client
- External systems/hosts: none detected
- External call evidence: none detected
- HTTP methods in code: none detected
- Secrets configured: 2
- Code evidence: 337 lines returned; code body analyzed but omitted from docs
Step 10 - Action 12
- What happens: Runs a connected HubSpot workflow action
- What triggers it: After action 11
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: none detected; lists: none detected
DATA MEANING:
- No property descriptions returned for the properties in this step.
ACTION EVIDENCE:
- Action category: connected_action
- Connection: object with keys: edgeType, nextActionId
- Detected intent: Runs a connected HubSpot workflow action
- Returned action type: SINGLE_CONNECTION
- Returned field keys: delta, time_unit
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
Step 11 - Action 13
- What happens: Branches based on HubSpot list membership; 2 branches
- What triggers it: After action 12
- System condition: 2 branch condition(s) returned by HubSpot.
- What data is used: properties: Primary Associated Company ID (associatedcompanyid); lists: none detected
DATA MEANING:
ACTION EVIDENCE:
- Action category: list_branch
- Detected intent: Branches based on HubSpot list membership
- Returned action type: LIST_BRANCH
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- Branch: associated
- Condition summary: associated
- Default branch: no
- Next action IDs: 15
- Referenced properties: Primary Associated Company ID (associatedcompanyid)
- Referenced lists: none detected
- Filter-like criteria returned: 2
- Returned branch logic:
- OR group
- AND group
- Primary Associated Company ID is known
- Branch: not assoc
- Condition summary: not assoc
- Default branch: yes
- Next action IDs: 21
- Referenced properties: none detected
- Referenced lists: none detected
- Filter-like criteria returned: 0
- Returned branch logic:
- AND group
- Branch name: not assoc
- Next action: 21
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
Step 12 - Action 15
- What happens: Sends an internal notification
- What triggers it: After action 13
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: none detected; lists: none detected
DATA MEANING:
- No property descriptions returned for the properties in this step.
ACTION EVIDENCE:
- Action category: internal_notification
- Detected intent: Sends an internal notification
- Returned action type: SINGLE_CONNECTION
- Returned field keys: body, subject, user_ids
- subject: A contact was associated automaticallly to a company in the third step
- user_ids: Laura Jessen
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
Step 13 - Action 21
- What happens: Runs a connected HubSpot workflow action
- What triggers it: After action 13
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: none detected; lists: none detected
DATA MEANING:
- No property descriptions returned for the properties in this step.
ACTION EVIDENCE:
- Action category: connected_action
- Connection: object with keys: edgeType, nextActionId
- Detected intent: Runs a connected HubSpot workflow action
- Returned action type: SINGLE_CONNECTION
- Returned field keys: delta, time_unit
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
Step 14 - Action 16
DATA MEANING:
ACTION EVIDENCE:
- Action category: custom_code
- Connection: object with keys: edgeType, nextActionId
- Detected intent: Runs custom code
- Returned action type: CUSTOM_CODE
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- Inputs used by code: company, companyID, domain, hs_email_domain, hs_object_id, n4f_region_country, n4f_region_county_company
-
| Conditions detected in code: Code condition: if (!Private_App_Token) { Code condition: if (!contactId) { Code condition: if (!emailDomainRaw |
|
!contactCompanyName) { Code condition: if (matches.length === 0) { |
- CRM/API operations detected: creates records or resources, creates, removes, or checks associations, searches records, updates records or resources, writes properties: ID, associatedcompanyid, company, domain, name
- Concrete CRM operations: create: companies, contacts; search: companies, contacts; update: companies, contacts
- Search/filter evidence: search/filter operator: EQ
- Data transformations: normalizes text to lowercase, serializes data as JSON
- Outputs returned to workflow: companyId, outputFields
- HubSpot CRM objects affected or referenced: companies, contacts
- Associations handled: association logic referenced in custom code
- Workflow control: can fail the action explicitly, contains asynchronous execution, returns output fields to later workflow actions
- Safeguards/error handling: error or warning logging, explicit error throwing, guard clauses or missing-value checks, structured response handling, try/catch error handling, checks missing values, has catch block, logs errors, throws errors
- Imports: @hubspot/api-client
- External systems/hosts: none detected
- External call evidence: none detected
- HTTP methods in code: none detected
- Secrets configured: 2
- Code evidence: 91 lines returned; code body analyzed but omitted from docs
Step 15 - Action 20
- What happens: Runs a connected HubSpot workflow action
- What triggers it: After action 16
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: none detected; lists: none detected
DATA MEANING:
- No property descriptions returned for the properties in this step.
ACTION EVIDENCE:
- Action category: connected_action
- Connection: object with keys: edgeType, nextActionId
- Detected intent: Runs a connected HubSpot workflow action
- Returned action type: SINGLE_CONNECTION
- Returned field keys: delta, time_unit
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
Step 16 - Action 17
DATA MEANING:
ACTION EVIDENCE:
- Action category: list_branch
- Detected intent: Branches based on HubSpot list membership
- Returned action type: LIST_BRANCH
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- Branch: associated
- Branch: not assoc
- Condition summary: not assoc
- Default branch: yes
- Next action IDs: 14
- Referenced properties: none detected
- Referenced lists: none detected
- Filter-like criteria returned: 0
- Returned branch logic:
- AND group
- Branch name: not assoc
- Next action: 14
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
Step 17 - Action 14
- What happens: Sends an internal notification
- What triggers it: After action 17
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: none detected; lists: none detected
DATA MEANING:
- No property descriptions returned for the properties in this step.
ACTION EVIDENCE:
- Action category: internal_notification
- Detected intent: Sends an internal notification
- Returned action type: SINGLE_CONNECTION
- Returned field keys: body, subject, user_ids
- subject: Automated company association failed after all attempts
- user_ids: Laura Jessen
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
Step 18 - Action 18
- What happens: Sends an internal notification
- What triggers it: After action 17
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: none detected; lists: none detected
DATA MEANING:
- No property descriptions returned for the properties in this step.
ACTION EVIDENCE:
- Action category: internal_notification
- Connection: object with keys: edgeType, nextActionId
- Detected intent: Sends an internal notification
- Returned action type: SINGLE_CONNECTION
- Returned field keys: body, subject, user_ids
- subject: A new company was created based on the contact details
- user_ids: Laura Jessen
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
Step 19 - Action 19
- What happens: Runs custom code; 7 inputs; 0 outputs
- What triggers it: After action 18
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: none detected; lists: none detected
DATA MEANING:
- No property descriptions returned for the properties in this step.
ACTION EVIDENCE:
- Action category: custom_code
- Detected intent: Runs custom code
- Returned action type: CUSTOM_CODE
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- Inputs used by code: company, companyID, domain, hs_email_domain, hs_object_id, n4f_region_country, n4f_region_county_company
- Conditions detected in code: Code condition: if (!Private_App_Token) { Code condition: if (!contactId) { Code condition: if (!contactRegion) { Code condition: if (associations.length === 0) {
- CRM/API operations detected: creates, removes, or checks associations, updates records or resources
- Concrete CRM operations: associate: companies, contacts; update: companies, contacts
- Search/filter evidence: none detected
- Data transformations: calculates or formats dates, serializes data as JSON
- Outputs returned to workflow: outputFields
- HubSpot CRM objects affected or referenced: companies, contacts
- Associations handled: association logic referenced in custom code
- Workflow control: can fail the action explicitly, contains asynchronous execution, returns output fields to later workflow actions
- Safeguards/error handling: error or warning logging, explicit error throwing, guard clauses or missing-value checks, structured response handling, try/catch error handling, checks missing values, has catch block, logs errors, throws errors
- Imports: @hubspot/api-client
- External systems/hosts: none detected
- External call evidence: none detected
- HTTP methods in code: none detected
- Secrets configured: 2
- Code evidence: 69 lines returned; code body analyzed but omitted from docs
Step 20 - Action 9
- What happens: Sends an internal notification
- What triggers it: After action 8
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: none detected; lists: none detected
DATA MEANING:
- No property descriptions returned for the properties in this step.
ACTION EVIDENCE:
- Action category: internal_notification
- Detected intent: Sends an internal notification
- Returned action type: SINGLE_CONNECTION
- Returned field keys: body, subject, user_ids
- subject: A contact was associated automaticallly to a company in the second step
- user_ids: Laura Jessen
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
Step 21 - Action 27
- What happens: Runs a connected HubSpot workflow action
- What triggers it: After action 26
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: none detected; lists: none detected
DATA MEANING:
- No property descriptions returned for the properties in this step.
ACTION EVIDENCE:
- Action category: connected_action
- Connection: object with keys: edgeType, nextActionId
- Detected intent: Runs a connected HubSpot workflow action
- Returned action type: SINGLE_CONNECTION
- Returned field keys: delta, time_unit
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
Step 22 - Action 28
- What happens: Runs a connected HubSpot workflow action
- What triggers it: After action 26
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: none detected; lists: none detected
DATA MEANING:
- No property descriptions returned for the properties in this step.
ACTION EVIDENCE:
- Action category: connected_action
- Connection: object with keys: edgeType, nextActionId
- Detected intent: Runs a connected HubSpot workflow action
- Returned action type: SINGLE_CONNECTION
- Returned field keys: delta, time_unit
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
Step 23 - Action 29
- What happens: Runs a connected HubSpot workflow action
- What triggers it: After action 26
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: none detected; lists: none detected
DATA MEANING:
- No property descriptions returned for the properties in this step.
ACTION EVIDENCE:
- Action category: connected_action
- Connection: object with keys: edgeType, nextActionId
- Detected intent: Runs a connected HubSpot workflow action
- Returned action type: SINGLE_CONNECTION
- Returned field keys: delta, time_unit
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
Step 24 - Action 30
- What happens: Runs a connected HubSpot workflow action
- What triggers it: After action 26
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: none detected; lists: none detected
DATA MEANING:
- No property descriptions returned for the properties in this step.
ACTION EVIDENCE:
- Action category: connected_action
- Connection: object with keys: edgeType, nextActionId
- Detected intent: Runs a connected HubSpot workflow action
- Returned action type: SINGLE_CONNECTION
- Returned field keys: delta, time_unit
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
Step 25 - Action 31
- What happens: Runs a connected HubSpot workflow action
- What triggers it: After action 26
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: none detected; lists: none detected
DATA MEANING:
- No property descriptions returned for the properties in this step.
ACTION EVIDENCE:
- Action category: connected_action
- Connection: object with keys: edgeType, nextActionId
- Detected intent: Runs a connected HubSpot workflow action
- Returned action type: SINGLE_CONNECTION
- Returned field keys: delta, time_unit
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
Step 26 - Action 32
- What happens: Runs a connected HubSpot workflow action
- What triggers it: After action 26
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: none detected; lists: none detected
DATA MEANING:
- No property descriptions returned for the properties in this step.
ACTION EVIDENCE:
- Action category: connected_action
- Connection: object with keys: edgeType, nextActionId
- Detected intent: Runs a connected HubSpot workflow action
- Returned action type: SINGLE_CONNECTION
- Returned field keys: delta, time_unit
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
Step 27 - Action 33
- What happens: Runs a connected HubSpot workflow action
- What triggers it: After action 26
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: none detected; lists: none detected
DATA MEANING:
- No property descriptions returned for the properties in this step.
ACTION EVIDENCE:
- Action category: connected_action
- Connection: object with keys: edgeType, nextActionId
- Detected intent: Runs a connected HubSpot workflow action
- Returned action type: SINGLE_CONNECTION
- Returned field keys: delta, time_unit
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
Step 28 - Action 34
- What happens: Runs a connected HubSpot workflow action
- What triggers it: After action 26
- System condition: Previous workflow connection or enrollment trigger returned by HubSpot.
- What data is used: properties: none detected; lists: none detected
DATA MEANING:
- No property descriptions returned for the properties in this step.
ACTION EVIDENCE:
- Action category: connected_action
- Connection: object with keys: edgeType, nextActionId
- Detected intent: Runs a connected HubSpot workflow action
- Returned action type: SINGLE_CONNECTION
- Returned field keys: delta, time_unit
ACTION-LEVEL CONDITIONS:
- No extra action-level filter logic detected.
BRANCH LOGIC:
- No branch paths detected in this step.
LIST LOGIC:
- No list logic detected in this step.
PROPERTY MAPPINGS:
- No property mappings detected in this step.
CUSTOM CODE LOGIC:
- No custom code detected in this step.
System Behavior
- Workflow actions: 28
- Branch actions: 6
- Custom code actions: 5
- Property operations: 0
- List dependencies: 0
- Action categories: ab_test_branch: 2, connected_action: 13, custom_code: 5, internal_notification: 4, list_branch: 4
- Property operation types: Logic not derivable from system.
- Associations created: listed under Outcomes when custom code exposes association evidence.
Outcomes
- Objects created: companies (custom code contains create call), contacts (custom code contains create call)
- Objects updated: companies (custom code contains update call), contacts (custom code contains update call)
- Associations created: association logic referenced in custom code, association logic referenced in custom code, association logic referenced in custom code, association logic referenced in custom code, association logic referenced in custom code
- Marketing emails sent: 0
- Internal notifications: 4
- Sequence enrollments: 0
- Subscription updates: 0
- Webhooks: 0
- Custom code actions: 5
How It Is Implemented
Workflows
- Workflow: Data_Quality_Custom code_company association & creation
- Workflow ID: 2126348483
- Revision ID: 141
- Enabled: no
- Current HubSpot description: Associates contacts without a company to a matching company by email domain and region, creates a new company if none exists, and sends internal notifications on each outcome.
- Purpose: Associates contacts without a company to a matching company by email domain and region, creates a new company if none exists, and sends internal notifications on each outcome.
- Key logic: ab_test_branch: 2, connected_action: 13, custom_code: 5, internal_notification: 4, list_branch: 4
- Branching logic: 8 branch detail(s) returned by HubSpot
- associated : associated ; next actions: not returned; properties: associatedcompanyid; lists: none detected
- not assoc: not assoc; next actions: 7; properties: none detected; lists: none detected
- associated : associated ; next actions: 9; properties: associatedcompanyid; lists: none detected
- not assoc: not assoc; next actions: 11; properties: none detected; lists: none detected
- associated : associated ; next actions: 15; properties: associatedcompanyid; lists: none detected
- not assoc: not assoc; next actions: 21; properties: none detected; lists: none detected
- associated : associated ; next actions: 18; properties: associatedcompanyid, hs_object_source_detail_1; lists: none detected
- not assoc: not assoc; next actions: 14; properties: none detected; lists: none detected
- Dependencies: lists: none detected; properties: Primary Associated Company ID (associatedcompanyid), Company (company), Create date (createdate), 4f_Contact update (f4adjustment_request)](/docs/properties/contacts.md), [Email Domain (hs_email_domain)](/docs/properties/contacts.md), [Record ID (hs_object_id)](/docs/properties/line_items.md), [Record source detail 1 (hs_object_source_detail_1)](/docs/properties/line_items.md), [4f_Contact quality label (n4f_contact_quality_label)](/docs/properties/contacts.md), [4f_region_contact (n4f_region_contact)](/docs/properties/contacts.md), [4f_Region-Country (n4f_region_country)](/docs/properties/contacts.md), [4f_Person_Label_DO NOT USE (pd_person_label__cloned); custom code: 5 custom code action(s)
Property Context
- ID - No HubSpot property description returned. Roles: step data. internal name: ID; object: object not returned; type: not returned.
- SUCCESS - No HubSpot property description returned. Roles: step data. internal name: SUCCESS; object: object not returned; type: not returned.
- Primary Associated Company ID (associatedcompanyid) - HubSpot defined ID of a contact’s primary associated company in HubSpot. Roles: branch condition, step data, trigger condition. internal name: associatedcompanyid; object: Contacts; type: number.
- body - No HubSpot property description returned. Roles: step data. internal name: body; object: object not returned; type: not returned.
- Company (company) - Name of Associated Primary Company. Roles: step data, trigger condition. internal name: company; object: Deals; type: string.
- Create date (createdate) - Date the deal was created. This property is set automatically by HubSpot. Roles: trigger condition. internal name: createdate; object: Line Items; type: datetime.
- Company Domain Name (domain) - The domain name of the company or organization Roles: step data. internal name: domain; object: Companies; type: string.
- 4f_Contact update (f4_adjustment_request) - No HubSpot property description returned. Roles: trigger condition. internal name: f4_adjustment_request; object: Contacts; type: enumeration.
- Email Domain (hs_email_domain) - A contact’s email address domain Roles: trigger condition. internal name: hs_email_domain; object: Contacts; type: string.
- Record ID (hs_object_id) - The unique ID for this record. This value is set automatically by HubSpot. Roles: reference. internal name: hs_object_id; object: Line Items; type: number.
- Record source detail 1 (hs_object_source_detail_1) - First level of detail on how this record was created. Roles: branch condition, step data. internal name: hs_object_source_detail_1; object: Line Items; type: string.
- 4f_Contact quality label (n4f_contact_quality_label) - No HubSpot property description returned. Roles: trigger condition. internal name: n4f_contact_quality_label; object: Contacts; type: enumeration.
- 4f_region_contact (n4f_region_contact) - mapping of contact country to 4Flow regions. set via workflows mainly. relevant to determine the 4Flow region a contact comes from Roles: reference. internal name: n4f_region_contact; object: Contacts; type: enumeration.
- 4f_Region-Country (n4f_region_country) - dropdown select of region-country which makes filtering on country origin easier than the original free text field Roles: trigger condition. internal name: n4f_region_country; object: Contacts; type: enumeration.
- Name (name) - Product name Roles: step data. internal name: name; object: Line Items; type: string.
- outputFields - No HubSpot property description returned. Roles: step data. internal name: outputFields; object: object not returned; type: not returned.
- 4f_Person_Label_DO NOT USE (pd_person_label__cloned_) - This property indicates the role or label assigned to a contact within the organization, helping to categorize individuals based on their position or function. Roles: trigger condition. internal name: pd_person_label__cloned_; object: Contacts; type: enumeration.
- update - No HubSpot property description returned. Roles: step data. internal name: update; object: object not returned; type: not returned.
Evidence And Gaps
- Domain evidence: Derived from workflow name term: data quality
- Quality flags: custom_code_present: Workflow appears to contain one or more custom code actions.
branching_logic_present: Workflow contains branching logic.
- Narrative context: not used as source of truth.