Event data model

An event represents an event, activity, or engagement and is always associated with a deal, contact, or company

View field support, webhooks, and list parameters for each integration on the Supported Integrations page.

FieldTypeRequiredDescription
idstringNoUnique identifier for this event object
created_atstring (date-time)NoThe date that this event object was created (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
updated_atstring (date-time)NoThe last date that this event object was updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
typeenumNoThe type of event Values: NOTE, EMAIL, TASK, MEETING, CALL, MARKETING_EMAIL, FORM, PAGE_VIEW
noteobjectNoThe note object, when type = note
note.descriptionstringNoThe event note's description
note.titlestringNo
meetingobjectNoThe meeting object, when type = meeting
meeting.start_atstring (date-time)NoThe event meeting's start datetime (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
meeting.end_atstring (date-time)NoThe event meeting's end datetime (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
meeting.titlestringNoThe event meeting's topicsubject
meeting.descriptionstringNoThe event meeting's agendadescription
emailobjectNoThe email object, when type = email
email.fromstringNoThe event email's from name & email address (name <test@test.com>)
email.tostring[]NoThe event email's "to" name & email (name <test@test.com>)
email.ccstring[]NoThe event email's cc name & email (name <test@test.com>)
email.subjectstringNoThe event email's subject
email.bodystringNoThe event email's body
email.attachment_file_idsstring[]No
callobjectNoThe call object, when type = call
call.durationnumberNoThe event call's duration in minutes
call.descriptionstringNoThe event call's descriptionnotes
call.start_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
taskobjectNoThe task object, when type = task
task.namestringNoThe event task's nametitle/subject
task.statusenumNoThe event task's status Values: COMPLETED, NOT_STARTED, WORK_IN_PROGRESS, DEFERRED
task.descriptionstringNoThe event task's descriptionnote
task.due_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
task.priorityenumNoValues: HIGH, MEDIUM, LOW
marketing_emailobjectNo
marketing_email.namestringNo
marketing_email.fromstringNoThe event email's from name & email address (name <test@test.com>)
marketing_email.tostring[]NoThe event email's "to" name & email (name <test@test.com>)
marketing_email.ccstring[]NoThe event email's cc name & email (name <test@test.com>)
marketing_email.subjectstringNoThe event email's subject
marketing_email.bodystringNoThe event email's body
marketing_email.attachment_file_idsstring[]No
formobjectNo
form.namestringNo
form.archived_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
form.fieldsCrmEventFormField[]No
form.fields[].namestringNo
form.fields[].typeenumNoValues: TEXT, NUMBER, DATE, BOOLEAN, MULTIPLE_CHOICE, FILE, TEXTAREA, SINGLE_SELECT, MULTIPLE_SELECT, EMAIL, PHONE, YES_NO, CURRENCY, URL
form.fields[].optionsCrmEventFormOption[]No
form.fields[].options[].labelstringNo
form.fields[].options[].valuestringNo
form.fields[].requiredbooleanNo
form.redirect_urlstringNo
page_viewobjectNo
page_view.countnumberNo
page_view.averagenumberNo
page_view.urlstringNo
deal_idsstring[]NoAn array of deal IDs associated with this event
company_idsstring[]NoAn array of company IDs associated with this event
contact_idsstring[]NoAn array of contact IDs associated with this event
lead_idsstring[]No(reference to CrmLead)
user_idstringNo(reference to HrisEmployee)

TypeScript

TypeScript
export type CrmEvent = {
	id?: string; // Unique identifier for this event object
	created_at?: string-time; // The date that this event object was created (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	updated_at?: string-time; // The last date that this event object was updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	type?: 'NOTE' | 'EMAIL' | 'TASK' | 'MEETING' | 'CALL' | 'MARKETING_EMAIL' | 'FORM' | 'PAGE_VIEW'; // The type of event
	note?: {
		description?: string; // The event note's description 
		title?: string; 
	}; // The note object, when type = note
	meeting?: {
		start_at?: string-time; // The event meeting's start datetime (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) 
		end_at?: string-time; // The event meeting's end datetime (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) 
		title?: string; // The event meeting's topicsubject 
		description?: string; // The event meeting's agendadescription 
	}; // The meeting object, when type = meeting
	email?: {
		from?: string; // The event email's from name & email address (name <test@test.com>) 
		to?: any; // The event email's "to" name & email (name <test@test.com>) 
		cc?: any; // The event email's cc name & email (name <test@test.com>) 
		subject?: string; // The event email's subject 
		body?: string; // The event email's body 
		attachment_file_ids?: any; 
	}; // The email object, when type = email
	call?: {
		duration?: number; // The event call's duration in minutes 
		description?: string; // The event call's descriptionnotes 
		start_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) 
	}; // The call object, when type = call
	task?: {
		name?: string; // The event task's nametitle/subject 
		status?: 'COMPLETED' | 'NOT_STARTED' | 'WORK_IN_PROGRESS' | 'DEFERRED'; // The event task's status 
		description?: string; // The event task's descriptionnote 
		due_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) 
		priority?: 'HIGH' | 'MEDIUM' | 'LOW'; 
	}; // The task object, when type = task
	marketing_email?: {
		name?: string; 
		from?: string; // The event email's from name & email address (name <test@test.com>) 
		to?: any; // The event email's "to" name & email (name <test@test.com>) 
		cc?: any; // The event email's cc name & email (name <test@test.com>) 
		subject?: string; // The event email's subject 
		body?: string; // The event email's body 
		attachment_file_ids?: any; 
	};
	form?: {
		name?: string; 
		archived_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) 
		fields?: []; 
		redirect_url?: string; 
	};
	page_view?: {
		count?: number; 
		average?: number; 
		url?: string; 
	};
	deal_ids?: string[]; // An array of deal IDs associated with this event
	company_ids?: string[]; // An array of company IDs associated with this event
	contact_ids?: string[]; // An array of contact IDs associated with this event
	lead_ids?: string[]; // (reference to CrmLead)
	user_id?: string; // (reference to HrisEmployee)
	raw?: any; // The raw data returned by the integration for this event.
} 

Zod

Zod
import { z } from 'zod';

export const ZodCrmEvent = z.object({
	id: z.string().optional().describe("Unique identifier for this event object"),
	created_at: z.string-time().optional().describe("The date that this event object was created (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	updated_at: z.string-time().optional().describe("The last date that this event object was updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	type: z.enum("NOTE", "EMAIL", "TASK", "MEETING", "CALL", "MARKETING_EMAIL", "FORM", "PAGE_VIEW").optional().describe("The type of event"),
	note: z.object({
			description: z.string().optional().describe("The event note's description"),
			title: z.string().optional()
}).optional().describe("The note object, when type = note"),
	meeting: z.object({
			start_at: z.string-time().optional().describe("The event meeting's start datetime (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
			end_at: z.string-time().optional().describe("The event meeting's end datetime (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
			title: z.string().optional().describe("The event meeting's topicsubject"),
			description: z.string().optional().describe("The event meeting's agendadescription")
}).optional().describe("The meeting object, when type = meeting"),
	email: z.object({
			from: z.string().optional().describe("The event email's from name & email address (name <test@test.com>)"),
			to: z.unknown().optional().describe("The event email's "to" name & email (name <test@test.com>)"),
			cc: z.unknown().optional().describe("The event email's cc name & email (name <test@test.com>)"),
			subject: z.string().optional().describe("The event email's subject"),
			body: z.string().optional().describe("The event email's body"),
			attachment_file_ids: z.unknown().optional()
}).optional().describe("The email object, when type = email"),
	call: z.object({
			duration: z.number().optional().describe("The event call's duration in minutes"),
			description: z.string().optional().describe("The event call's descriptionnotes"),
			start_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)")
}).optional().describe("The call object, when type = call"),
	task: z.object({
			name: z.string().optional().describe("The event task's nametitle/subject"),
			status: z.enum("COMPLETED", "NOT_STARTED", "WORK_IN_PROGRESS", "DEFERRED").optional().describe("The event task's status"),
			description: z.string().optional().describe("The event task's descriptionnote"),
			due_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
			priority: z.enum("HIGH", "MEDIUM", "LOW").optional()
}).optional().describe("The task object, when type = task"),
	marketing_email: z.object({
			name: z.string().optional(),
			from: z.string().optional().describe("The event email's from name & email address (name <test@test.com>)"),
			to: z.unknown().optional().describe("The event email's "to" name & email (name <test@test.com>)"),
			cc: z.unknown().optional().describe("The event email's cc name & email (name <test@test.com>)"),
			subject: z.string().optional().describe("The event email's subject"),
			body: z.string().optional().describe("The event email's body"),
			attachment_file_ids: z.unknown().optional()
}).optional(),
	form: z.object({
			name: z.string().optional(),
			archived_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
			fields: z.array().optional(),
			redirect_url: z.string().optional()
}).optional(),
	page_view: z.object({
			count: z.number().optional(),
			average: z.number().optional(),
			url: z.string().optional()
}).optional(),
	deal_ids: z.array().optional().describe("An array of deal IDs associated with this event"),
	company_ids: z.array().optional().describe("An array of company IDs associated with this event"),
	contact_ids: z.array().optional().describe("An array of contact IDs associated with this event"),
	lead_ids: z.array().optional().describe("(reference to CrmLead)"),
	user_id: z.string().optional().describe("(reference to HrisEmployee)"),

});

Python

Python
import dataclasses

@dataclasses.dataclass
class CrmEventType(str, Enum):
	NOTE = 'NOTE'
	EMAIL = 'EMAIL'
	TASK = 'TASK'
	MEETING = 'MEETING'
	CALL = 'CALL'
	MARKETING_EMAIL = 'MARKETING_EMAIL'
	FORM = 'FORM'
	PAGE_VIEW = 'PAGE_VIEW'

@dataclasses.dataclass
class PropertyCrmEventNote:
	"""The event note's description"""
	description: Optional[str]
	title: Optional[str]

@dataclasses.dataclass
class PropertyCrmEventMeeting:
	"""The event meeting's start datetime (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	start_at: Optional[str]
	"""The event meeting's end datetime (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	end_at: Optional[str]
	"""The event meeting's topicsubject"""
	title: Optional[str]
	"""The event meeting's agendadescription"""
	description: Optional[str]

@dataclasses.dataclass
class PropertyCrmEventEmail:
	"""The event email's from name & email address (name <test@test.com>)"""
	from: Optional[str]
	"""The event email's "to" name & email (name <test@test.com>)"""
	to: Optional[PropertyCrmEventTo]
	"""The event email's cc name & email (name <test@test.com>)"""
	cc: Optional[PropertyCrmEventCc]
	"""The event email's subject"""
	subject: Optional[str]
	"""The event email's body"""
	body: Optional[str]
	attachment_file_ids: Optional[PropertyCrmEventAttachment_file_ids]

@dataclasses.dataclass
class PropertyCrmEventCall:
	"""The event call's duration in minutes"""
	duration: Optional[int]
	"""The event call's descriptionnotes"""
	description: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	start_at: Optional[str]

@dataclasses.dataclass
class CrmEventTaskStatus(str, Enum):
	COMPLETED = 'COMPLETED'
	NOT_STARTED = 'NOT_STARTED'
	WORK_IN_PROGRESS = 'WORK_IN_PROGRESS'
	DEFERRED = 'DEFERRED'

@dataclasses.dataclass
class CrmEventTaskPriority(str, Enum):
	HIGH = 'HIGH'
	MEDIUM = 'MEDIUM'
	LOW = 'LOW'

@dataclasses.dataclass
class PropertyCrmEventTask:
	"""The event task's nametitle/subject"""
	name: Optional[str]
	"""The event task's status"""
	status: Optional[CrmEventTaskStatus]
	"""The event task's descriptionnote"""
	description: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	due_at: Optional[str]
	priority: Optional[CrmEventTaskPriority]

@dataclasses.dataclass
class PropertyCrmEventMarketing_email:
	name: Optional[str]
	"""The event email's from name & email address (name <test@test.com>)"""
	from: Optional[str]
	"""The event email's "to" name & email (name <test@test.com>)"""
	to: Optional[PropertyCrmEventTo]
	"""The event email's cc name & email (name <test@test.com>)"""
	cc: Optional[PropertyCrmEventCc]
	"""The event email's subject"""
	subject: Optional[str]
	"""The event email's body"""
	body: Optional[str]
	attachment_file_ids: Optional[PropertyCrmEventAttachment_file_ids]

@dataclasses.dataclass
class PropertyCrmEventForm:
	name: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	archived_at: Optional[str]
	fields: Optional[PropertyCrmEventFields]
	redirect_url: Optional[str]

@dataclasses.dataclass
class PropertyCrmEventPage_view:
	count: Optional[int]
	average: Optional[int]
	url: Optional[str]

@dataclasses.dataclass
class CrmEvent:
	"""Unique identifier for this event object"""
	id: Optional[str]
	"""The date that this event object was created (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	created_at: Optional[str]
	"""The last date that this event object was updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	updated_at: Optional[str]
	"""The type of event"""
	type: Optional[CrmEventType]
	"""The note object, when type = note"""
	note: Optional[PropertyCrmEventNote]
	"""The meeting object, when type = meeting"""
	meeting: Optional[PropertyCrmEventMeeting]
	"""The email object, when type = email"""
	email: Optional[PropertyCrmEventEmail]
	"""The call object, when type = call"""
	call: Optional[PropertyCrmEventCall]
	"""The task object, when type = task"""
	task: Optional[PropertyCrmEventTask]
	marketing_email: Optional[PropertyCrmEventMarketing_email]
	form: Optional[PropertyCrmEventForm]
	page_view: Optional[PropertyCrmEventPage_view]
	"""An array of deal IDs associated with this event"""
	deal_ids: Optional[List[List[str]]]
	"""An array of company IDs associated with this event"""
	company_ids: Optional[List[List[str]]]
	"""An array of contact IDs associated with this event"""
	contact_ids: Optional[List[List[str]]]
	"""(reference to CrmLead)"""
	lead_ids: Optional[List[List[str]]]
	"""(reference to HrisEmployee)"""
	user_id: Optional[str]
Are we missing anything? Let us know
Was this page helpful?