- Log customer actions from your app (logins, feature usage, purchases)
- Track external system events (support calls, shipping updates)
- Record custom milestones (onboarding completed, renewal date)
- Document important interactions (demo attended, contract signed)
hubspot.v2.create_timeline_event
What This Does (The Simple Version)
Think of this like adding a note to someone’s activity feed, but way more powerful. Instead of just text, you can log structured events that show up on contact, deal, or company timelines in HubSpot. Real-world example: A customer completes onboarding in your app. You create a timeline event on their contact record showing “Onboarding Completed” with details like completion date, steps finished, and time spent. Your sales team sees this in HubSpot and knows the customer is ready for upsell conversations.How It Works
This action creates a custom event that appears on the timeline of a HubSpot record. You choose:- What record to add the event to (contact, deal, company, etc.)
- Event type identifier (you create this)
- Event details (title, description, timestamp)
- Custom properties (optional - any additional data you want to track)
Setting It Up
Step 1: Choose Target Object Type
Select which type of HubSpot record you want to add the timeline event to:- Contacts - Add event to a person’s timeline
- Companies - Add event to an organization’s timeline
- Deals - Add event to a deal’s timeline
- Tickets - Add event to a ticket’s timeline
Step 2: Enter Target Object ID
In the “Target Object ID” field, enter the HubSpot ID of the record you want to add the event to. Usually you’ll insert a variable here:- Click the
{}
button - Select the object ID from a previous action:
- From a search:
current_contact
→hs_object_id
- From a lookup:
found_deal
→id
- From a webhook:
contact_id
(if provided)
- From a search:
{}
→ select contact_record
→ id
Step 3: Enter Event Type
The “Event Type” is a unique identifier for this kind of event. This helps HubSpot group similar events together. Format: Use lowercase with underscores, like:onboarding_completed
feature_activated
purchase_made
support_call_completed
renewal_reminder
{}
to insert a variable.
Note: Use the same event type for similar events. For example, all “Feature Activated” events should use feature_activated
so they’re grouped together on the timeline.
Step 4: Enter Event Title
The “Event Title” is the headline that appears on the timeline - like a subject line. Examples:- “Onboarding Completed”
- “Feature Activated: Advanced Reporting”
- “Purchase: Enterprise Plan”
- “Support Call: Billing Question”
{}
to insert variables. You can combine text and variables:
- Type “Purchase: ” then click
{}
→ selectplan_name
- Type “Feature Activated: ” then click
{}
→ selectfeature_name
Step 5: Enter Event Description (Optional)
The “Event Description” provides additional details that appear when someone clicks the event on the timeline. Examples:- “Customer completed all 5 onboarding steps in 3 days”
- “Activated Advanced Reporting feature on 2025-10-01”
- “Upgraded from Starter to Enterprise plan, annual billing”
{}
to insert variables with details.
Leave blank if you don’t need additional description.
Step 6: Add Event Properties (Optional)
Click ”+ Add Property” if you want to attach custom data to this event. This is different from HubSpot properties. These are custom key-value pairs specific to this event. Format: Each property iskey=value
, one per line:
{}
in the value field.
Leave blank if you don’t need custom properties.
Step 7: Set Event Timestamp (Optional)
The “Event Timestamp” controls when the event appears on the timeline. Default: If you leave this blank, it uses the current time (right now). Formats supported:- ISO 8601:
2025-10-01T14:30:00Z
- Date only:
2025-10-01
(assumes midnight) - US format:
10/01/2025
- Timestamp in milliseconds:
1727790600000
(13 digits) - Timestamp in seconds:
1727790600
(10 digits)
- Leave blank to use “now”
- Click
{}
to insert a date variable from your trigger or previous action - Type a specific date if logging a past event
Step 8: Name Your Output Variable
Give the event result a descriptive name in the “Output Variable Name” field. Good names:onboarding_event
purchase_event
timeline_event
logged_activity
What You Get Back
The action returns confirmation that the event was created, including the event ID. Example output saved toonboarding_event
:
Using the Results
Confirm Event Was Created
The event either succeeds (returns event ID) or throws an error. The output variable contains the event ID, which you can use to verify creation succeeded.Access Event Details
Use the output variable to access event information in later actions:- Click
{}
→onboarding_event
→id
(the event ID) - Click
{}
→onboarding_event
→timestamp
- Click
{}
→onboarding_event
→properties
→steps_completed
Common Workflows
Log App Activity
Goal: When a user completes onboarding in your app, log it on their HubSpot contact Trigger: Webhook from your app Webhook receives:contact_id
, steps_completed
, completion_time
variables
-
Create Timeline Event (V2)
- Object Type: Contacts
- Target Object ID: Click
{}
→ selectcontact_id
- Event Type:
onboarding_completed
- Event Title: “Onboarding Completed Successfully”
- Event Description: Type “Completed ” then click
{}
→ selectsteps_completed
→ type ” steps” - Event Properties:
- Event Timestamp: Leave blank (use current time)
- Output Variable:
onboarding_event
- Update contact or send notification…
Track Purchase on Company Timeline
Goal: When a company makes a purchase, log it on their company record Trigger: Webhook from payment processor Webhook receives:company_domain
, plan_name
, amount
, purchase_date
-
Lookup HubSpot Object (V2)
- Object Type: Companies
- Lookup by: Domain
- Domain: Click
{}
→ selectcompany_domain
- Output Variable:
company_record
-
Create Timeline Event (V2)
- Object Type: Companies
- Target Object ID: Click
{}
→company_record
→id
- Event Type:
purchase_made
- Event Title: Type “Purchase: ” then click
{}
→ selectplan_name
- Event Description: Type “Purchased ” then click
{}
→ selectplan_name
→ type ” for $” → click{}
→ selectamount
- Event Properties:
- Event Timestamp: Click
{}
→ selectpurchase_date
- Output Variable:
purchase_event
Log Support Call on Deal
Goal: After a support call, log it on the related deal’s timeline-
Search HubSpot (V2)
- Find the deal associated with the customer
- Output Variable:
customer_deal
-
Create Timeline Event (V2)
- Object Type: Deals
- Target Object ID: Click
{}
→customer_deal
→hs_object_id
- Event Type:
support_call_completed
- Event Title: Type “Support Call: ” then click
{}
→ selectcall_topic
- Event Description: Click
{}
→ selectcall_notes
- Event Properties:
- Event Timestamp: Click
{}
→ selectcall_time
- Output Variable:
support_event
Real Examples
Feature Activation Tracking
Scenario: Track when customers activate premium features in your SaaS app. Webhook receives:user_email
, feature_name
, activation_date
Timeline Event Configuration:
- Object Type: Contacts
- Target Object ID: Click
{}
→ selectcontact_id
(from lookup action) - Event Type:
feature_activated
- Event Title: Type “Feature Activated: ” then click
{}
→ selectfeature_name
- Event Description: Type “Customer activated ” then click
{}
→ selectfeature_name
→ type ” on ” → click{}
→ selectactivation_date
- Event Properties:
- Event Timestamp: Click
{}
→ selectactivation_date
- Output Variable:
feature_event
Renewal Reminder Logging
Scenario: Log when renewal reminders are sent to customers. Trigger: Scheduled (runs daily) Timeline Event Configuration:- Object Type: Deals
- Target Object ID: Click
{}
→ selectcurrent_deal
→hs_object_id
(from loop) - Event Type:
renewal_reminder_sent
- Event Title: “Renewal Reminder Sent”
- Event Description: Type “Renewal reminder sent for contract ending ” then click
{}
→ selectcontract_end_date
- Event Properties:
- Event Timestamp: Leave blank (current time)
- Output Variable:
reminder_event
Troubleshooting
”Target Object Not Found” Error
Error: Can’t find the object to add event to Possible causes:- Object ID is wrong or doesn’t exist
- Variable containing ID is empty
- Using wrong object type for that ID
- Check the execution log - what ID was used?
- Verify the object exists in HubSpot (search by ID)
- Make sure previous action (lookup/search) found the record successfully
- Check that object type matches the ID (contact ID needs object type = Contacts)
“Invalid Event Type” Error
Error: Event type format is incorrect Possible causes:- Event type contains spaces or special characters
- Event type is empty
- Use lowercase with underscores only:
onboarding_completed
not “Onboarding Completed” - No spaces, no special characters except underscore
- Make sure the field isn’t empty
Events Not Showing on Timeline
Events created but don’t appear in HubSpot Possible causes:- Looking at wrong record
- Timeline filtered to hide custom events
- Timestamp is far in past/future
- Verify you’re looking at the correct contact/company/deal in HubSpot
- In HubSpot timeline, click “Filter” and make sure custom events are enabled
- Check the timestamp - events in the far future or distant past might not show by default
- Refresh the HubSpot page
Timestamp Not Parsing
Timestamp field showing current time instead of expected date Possible causes:- Date format not recognized
- Variable is empty or has invalid value
- Use one of the supported formats (ISO 8601 is most reliable:
2025-10-01T14:30:00Z
) - Check execution log to see what value was sent
- If using a variable, verify it contains a valid date
- Leave blank to use current time
Tips & Best Practices
✅ Do:- Use consistent event types across workflows (helps with reporting)
- Include meaningful descriptions that provide context
- Set custom properties for data you’ll want to filter/report on later
- Use descriptive event titles that make sense at a glance
- Test with a single record before running on multiple records
- Use past timestamps to backfill historical events
- Use spaces or special characters in event type (breaks filtering)
- Create events without checking if target object exists first
- Log too many events (clutters timeline) - be selective
- Forget to include key context in description or properties
- Use vague event types like “event1” or “update” (not helpful later)
- Creating timeline events is fast (under 1 second typically)
- You can create many events in a loop without issues
- Consider batching if creating thousands of events
Related Actions
What to do next:- Lookup HubSpot Object (V2) - Find object ID before creating event
- Search HubSpot (V2) - Find multiple records to log events on
- Get Timeline Events - Retrieve events from a record’s timeline
- For Loop - Create events on multiple records
- Variable System - Using variables in event properties
- Webhook Triggers (HubSpot) - Triggering workflows from HubSpot
Last Updated: 2025-10-01