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 or remove records from lists
- Sequences: Enroll contacts in sales sequences
- Owners: Fetch HubSpot owners
- Line Items: Create line items and attach them to deals
- Marketing Email: Send transactional single-send marketing emails
- Custom Objects: Update custom object records
- Merge: Merge duplicate contacts
- 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
Required scopes (granted by every install):
crm.objects.contacts.read/.write— manage contactscrm.objects.companies.read/.write— manage companiescrm.objects.deals.read/.write— manage dealscrm.schemas.contacts.read/crm.schemas.companies.read/crm.schemas.deals.read— read CRM structuretimeline— log activities to record timelinescrm.objects.notes/calls/emails/meetings/tasks(.readand.write) — log and read engagements
Optional scopes (you can decline these and still connect):
| Scope | Unlocks | HubSpot tier |
|---|---|---|
tickets | Create Ticket, Update Ticket | Any |
automation | Enroll in Sequence | Sales Pro+ |
crm.lists.read / .write | Add to List, Remove from List | Any |
crm.objects.owners.read | Get Owners | Any |
crm.objects.line_items.read / .write | Create Line Item | Any |
transactional-email | Send Marketing Email | Marketing Pro+ |
account-info.security.read | Audit Logs | Enterprise |
scheduler.meetings.meeting-link.read | Meeting-link lookups | Any |
If you decline an optional permission, the actions it backs fail with a message telling you to reconnect and approve it. You can re-run the connection flow at any time from Credentials to grant additional permissions.
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!