functions:

[type]:detect_type_by_id(objectId)
[objectId]:upsert(objectType, record)
[Lead|Contact|Task|Account]find(objectType, condition)

[Lead|Contact]:find_phone(phoneNumber)
[Task]:query_tasks_by_rec_id(callId)
[Task]:query_tasks_by_id(objectId)
[Lead]:query_leads_by_id(objectId)
[Contact]:query_contacts_by_id(objectId)
[Account]:query_accounts_by_id(objectId)
[field]:get_fields(objectType)

structures:
{
	'FirstName',
	'LastName',
	'Description',
	'Status',
	'Email',
	'Phone',
	'Company',
	'Id',
	'type' => 'Lead'
}

{
	'FirstName',
	'LastName',
	'Description',
	'Email',
	'Phone',
	'Department',
	'AccountId',
	'Id',
	'type' => 'Contact'
}

{
	'Status',
	'Subject',
	'Description',
	'CallDurationInSeconds',
	'CallDisposition',
	'WhoId',
	'Id',
	'type' => 'Task'
}

{
	'Name',
	'Phone',
	'Id',
	'type' => 'Account'
}
