HubSpot Action Block
What it does: Create, update, and manage contacts, companies, deals, and tickets in HubSpot CRM automatically.
In simple terms: Sync your workflow data with HubSpot - add contacts, create deals, update companies, and track customer interactions.
When to Use This
Use the HubSpot action when you need to:
- ✅ Add leads from forms to HubSpot automatically
- ✅ Create deals when opportunities arise
- ✅ Update contact information in real-time
- ✅ Log customer interactions and activities
- ✅ Create support tickets from customer requests
- ✅ Sync data between systems and HubSpot
Example: When someone fills out a contact form, automatically create a contact in HubSpot and assign them to a sales rep.
Features
- Contact Management: Create and update contacts
- Company Management: Manage company records
- Deal Pipeline: Create and track deals
- Ticket System: Manage support tickets
- Custom Properties: Update HubSpot custom fields
- Associations: Link contacts, companies, and deals
- Activity Logging: Track emails, calls, and meetings
- Lists: Add contacts to lists
- OAuth Integration: Secure API connection
- Variable Support: Use workflow data
Setup
1. Connect Your HubSpot Account
- Click Connect HubSpot Account
- Sign in to your HubSpot account
- Authorize required permissions
- Select your HubSpot portal
- Connection established
Ensure you have appropriate permissions in HubSpot to create and modify CRM objects.
2. Select Object Type
Choose what you want to work with:
- Contact: People in your CRM
- Company: Organizations
- Deal: Sales opportunities
- Ticket: Support requests
- Engagement: Activities (emails, calls, notes)
3. Select Action
- Create: Add new record
- Update: Modify existing record
- Get: Retrieve record details
- Delete: Remove record
- Search: Find records
Working with Contacts
Create Contact
Email (Required): Contact's email address
{{form.email}}
customer@example.comStandard Properties:
First Name: {{form.firstName}}
Last Name: {{form.lastName}}
Phone: {{form.phone}}
Company: {{form.company}}
Job Title: {{form.jobTitle}}
Website: {{form.website}}Address Fields:
Address: {{form.street}}
City: {{form.city}}
State: {{form.state}}
Zip Code: {{form.zipCode}}
Country: {{form.country}}Lifecycle Stage:
subscriber
lead
marketingqualifiedlead
salesqualifiedlead
opportunity
customer
evangelistUpdate Contact
Contact ID or Email: Identify the contact
{{contact.hubspotId}}
email@example.comProperties to Update:
Lead Status: {{newStatus}}
Last Contact Date: {{currentDate}}
Notes: {{additionalNotes}}Custom Properties
Custom Fields:
custom_field_name: {{value}}
lead_score: {{calculatedScore}}
industry_preference: {{industry}}Working with Companies
Create Company
Company Name (Required):
{{company.name}}
Acme CorporationProperties:
Domain: {{company.domain}}
Industry: {{company.industry}}
Number of Employees: {{company.size}}
Annual Revenue: {{company.revenue}}
City: {{company.city}}
State: {{company.state}}
Country: {{company.country}}
Phone: {{company.phone}}Company Type:
PROSPECT
PARTNER
RESELLER
VENDORAssociate with Contact
Link company to contact:
Contact ID: {{contact.id}}
Company ID: {{company.id}}
Association Type: contact_to_companyWorking with Deals
Create Deal
Deal Name (Required):
{{deal.name}}
Q4 Enterprise Deal - {{company.name}}Pipeline Stage:
appointmentscheduled
qualifiedtobuy
presentationscheduled
decisionmakerboughtin
contractsent
closedwon
closedlostDeal Amount:
{{deal.amount}}
50000Close Date:
{{deal.expectedCloseDate}}
2024-12-31Deal Properties:
Deal Type: {{deal.type}}
Priority: {{deal.priority}}
Deal Source: {{deal.source}}
Deal Stage: {{deal.stage}}Associate Deal
Link to contact and company:
Deal ID: {{deal.id}}
Contact ID: {{contact.id}}
Company ID: {{company.id}}Working with Tickets
Create Ticket
Ticket Name (Required):
{{ticket.subject}}
Support Request - {{issue.type}}Pipeline:
Support Pipeline
Customer SuccessTicket Status:
NEW
WAITING_ON_CONTACT
WAITING_ON_US
CLOSEDPriority:
LOW
MEDIUM
HIGHProperties:
Subject: {{ticket.subject}}
Content: {{ticket.description}}
Category: {{ticket.category}}
Source: {{ticket.source}}Assign Ticket
Owner:
Owner ID: {{agent.hubspotId}}Logging Engagements
Create Email Engagement
Log email activity:
Contact ID: {{contact.id}}
Subject: {{email.subject}}
Body: {{email.body}}
Status: SENT
Timestamp: {{email.sentAt}}Create Call Engagement
Log phone call:
Contact ID: {{contact.id}}
Call Duration: {{call.duration}} (seconds)
Call Notes: {{call.notes}}
Call Type: INBOUND/OUTBOUND
Timestamp: {{call.time}}Create Note
Add note to record:
Contact ID: {{contact.id}}
Note Body: {{note.content}}
Timestamp: {{currentTime}}Create Meeting
Log meeting:
Contact ID: {{contact.id}}
Meeting Title: {{meeting.title}}
Meeting Body: {{meeting.notes}}
Start Time: {{meeting.startTime}}
End Time: {{meeting.endTime}}
Meeting Outcome: {{meeting.outcome}}Response Mapping
Map HubSpot response to variables:
Available Values:
- Object ID: HubSpot ID of created/updated record
- Created At: Timestamp of creation
- Updated At: Last modification time
- Properties: All object properties
- Associations: Related records
Example Mapping:
Contact ID → {{hubspot.contactId}}
Company ID → {{hubspot.companyId}}
Deal ID → {{hubspot.dealId}}
Properties → {{hubspot.properties}}Common Use Cases
1. Lead Capture
Trigger: Form submission HubSpot: Create contact
Email: {{form.email}}
First Name: {{form.firstName}}
Last Name: {{form.lastName}}
Company: {{form.company}}
Lead Source: Website Form
Lifecycle Stage: lead2. Deal Creation from Opportunity
Trigger: Qualified lead HubSpot Actions:
- Create or update contact
- Create company (if needed)
- Create deal
Deal Name: {{opportunity.name}}
Amount: {{opportunity.value}}
Close Date: {{opportunity.closeDate}}
Stage: qualifiedtobuy
Associate with: Contact + Company3. Support Ticket Automation
Trigger: Support request email HubSpot: Create ticket
Subject: {{email.subject}}
Description: {{email.body}}
Priority: {{calculatePriority(email.keywords)}}
Source: Email
Status: NEW
Assign to: {{routeToAgent(issue.type)}}4. Contact Enrichment
Trigger: New contact created Workflow:
- Get additional data from external API
- Update HubSpot contact
Industry: {{enrichment.industry}}
Company Size: {{enrichment.employees}}
Revenue: {{enrichment.revenue}}
Technologies: {{enrichment.techStack}}5. Activity Sync
Trigger: Email sent via Gmail HubSpot: Log email engagement
Contact: Find by {{email.recipient}}
Subject: {{email.subject}}
Body: {{email.body}}
Status: SENT
Timestamp: {{email.sentTime}}Best Practices
Data Quality
- ✅ Validate email addresses before creating contacts
- ✅ Use consistent naming conventions
- ✅ Deduplicate before creating records
- ✅ Keep required fields populated
- ✅ Use standard values for dropdown fields
Organization
- ✅ Set lifecycle stages correctly
- ✅ Associate related records (contact ↔ company ↔ deal)
- ✅ Use custom properties meaningfully
- ✅ Maintain consistent data formats
- ✅ Tag records with source information
Automation
- ✅ Check for existing records before creating
- ✅ Handle API errors gracefully
- ✅ Use workflows for complex scenarios
- ✅ Log all significant activities
- ✅ Keep contact records up-to-date
Performance
- ✅ Batch operations when possible
- ✅ Cache frequently used IDs
- ✅ Respect API rate limits
- ✅ Use incremental updates
- ✅ Optimize search queries
Troubleshooting
Record Not Created
Check:
- HubSpot account is connected
- Required fields are provided
- Field values match HubSpot property types
- Permissions are sufficient
- API quota not exceeded
Duplicate Records
Solutions:
- Search before creating
- Use email as unique identifier for contacts
- Enable deduplication logic
- Merge duplicates in HubSpot
Properties Not Updating
Fix:
- Verify property internal names
- Check property permissions
- Ensure correct data types
- Use valid enum values for dropdowns
- Check for workflow conflicts in HubSpot
Association Failures
Check:
- Both objects exist
- Object IDs are correct
- Association type is valid
- Permissions allow associations
Limitations
- API Rate Limits:
- Free/Starter: 100 requests per 10 seconds
- Professional: 150 requests per 10 seconds
- Enterprise: 200 requests per 10 seconds
- Daily Limits: Varies by subscription tier
- Batch Size: Max 100 records per batch operation
- Properties: Max 5,000 properties per object type
- Associations: No hard limit, but performance considerations
Tip: Use HubSpot's default properties when possible - they're optimized and work with HubSpot's built-in features.
Example Workflow
Flow:
- Form submitted with lead info
- Check if contact exists
- Create or update contact
- Check if company exists
- Create or update company
- Link contact to company
- If qualified, create deal
- Workflow complete
Related Blocks
- Condition: Check before creating/updating
- HTTP Request: Additional API calls
- Send Email: Notify team of updates
- Set Variable: Prepare HubSpot data
- Gmail: Sync email activities
Need Help?
- Review HubSpot API documentation
- Check object property definitions
- Verify API key permissions
- Test with HubSpot sandbox
- Monitor API usage in HubSpot settings
- Use HubSpot's workflow tool for complex automation
Pro Tip: Create custom properties in HubSpot for workflow-specific data to maintain clean separation between automated and manual data!