Dalil AI supports a rich set of field types for both standard and custom properties. This guide explains the exact format required for each type when creating or updating records.
Phone search tip: When filtering by phone number, the calling code and number are stored separately. A number like +15551234567 is stored as calling code +1 and number 5551234567. Filter both:
Warning: The micros convention is easy to get wrong. $50,000 is 50000000000 (eleven digits), not 50000000 (eight digits).
ADDRESS
A flat object — all fields are at the same level, prefixed with address.
"address":{"addressStreet1":"123 Main Street","addressStreet2":"Suite 200","addressCity":"New York","addressState":"New York","addressPostcode":"10001","addressCountry":"United States","addressLat":40.7128,"addressLng": -74.0060}
"address":{"addressStreet1":"123 Main Street","addressStreet2":"Suite 200","addressCity":"New York","addressState":"New York","addressPostcode":"10001","addressCountry":"United States","addressLat":40.7128,"addressLng": -74.0060}
"address":{"addressStreet1":"123 Main Street","addressStreet2":"Suite 200","addressCity":"New York","addressState":"New York","addressPostcode":"10001","addressCountry":"United States","addressLat":40.7128,"addressLng": -74.0060}
BODY_V2 (Rich Text)
Used for Note and Task body content. Requires both a markdown string and a blocknote JSON string.
"bodyV2":{"markdown":"Meeting notes from today.\nAction items discussed.","blocknote":"[{\"id\":\"unique-uuid-1\",\"type\":\"paragraph\",\"props\":{\"textColor\":\"default\",\"backgroundColor\":\"default\",\"textAlignment\":\"left\"},\"content\":[{\"type\":\"text\",\"text\":\"Meeting notes from today.\",\"styles\":{}}],\"children\":[]},{\"id\":\"unique-uuid-2\",\"type\":\"paragraph\",\"props\":{\"textColor\":\"default\",\"backgroundColor\":\"default\",\"textAlignment\":\"left\"},\"content\":[{\"type\":\"text\",\"text\":\"Action items discussed.\",\"styles\":{}}],\"children\":[]}]"}
"bodyV2":{"markdown":"Meeting notes from today.\nAction items discussed.","blocknote":"[{\"id\":\"unique-uuid-1\",\"type\":\"paragraph\",\"props\":{\"textColor\":\"default\",\"backgroundColor\":\"default\",\"textAlignment\":\"left\"},\"content\":[{\"type\":\"text\",\"text\":\"Meeting notes from today.\",\"styles\":{}}],\"children\":[]},{\"id\":\"unique-uuid-2\",\"type\":\"paragraph\",\"props\":{\"textColor\":\"default\",\"backgroundColor\":\"default\",\"textAlignment\":\"left\"},\"content\":[{\"type\":\"text\",\"text\":\"Action items discussed.\",\"styles\":{}}],\"children\":[]}]"}
"bodyV2":{"markdown":"Meeting notes from today.\nAction items discussed.","blocknote":"[{\"id\":\"unique-uuid-1\",\"type\":\"paragraph\",\"props\":{\"textColor\":\"default\",\"backgroundColor\":\"default\",\"textAlignment\":\"left\"},\"content\":[{\"type\":\"text\",\"text\":\"Meeting notes from today.\",\"styles\":{}}],\"children\":[]},{\"id\":\"unique-uuid-2\",\"type\":\"paragraph\",\"props\":{\"textColor\":\"default\",\"backgroundColor\":\"default\",\"textAlignment\":\"left\"},\"content\":[{\"type\":\"text\",\"text\":\"Action items discussed.\",\"styles\":{}}],\"children\":[]}]"}
Blocknote block structure — each paragraph is one block:
{"id":"unique-uuid","type":"paragraph","props":{"textColor":"default","backgroundColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Your paragraph text here.","styles":{}}],"children":[]}
{"id":"unique-uuid","type":"paragraph","props":{"textColor":"default","backgroundColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Your paragraph text here.","styles":{}}],"children":[]}
{"id":"unique-uuid","type":"paragraph","props":{"textColor":"default","backgroundColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Your paragraph text here.","styles":{}}],"children":[]}
Rules:
Each block needs a unique UUID-format id
Split multi-paragraph text into one block per paragraph
The entire blocknote value is a JSON-stringified array of blocks
Shortcut: You can send plain text in a body field (instead of bodyV2) and the API will auto-convert it to the correct bodyV2 format with both markdown and blocknote representations.
System Fields (Read-Only)
These fields are automatically managed. Never include them in create or update requests.
Field
Type
Description
id
UUID
Unique record identifier
createdAt
DATE_TIME
Creation timestamp
updatedAt
DATE_TIME
Last update timestamp
deletedAt
DATE_TIME
Soft-delete timestamp
position
NUMBER
Display order
createdBy
ACTOR
Who/what created the record
groupId
UUID
Group identifier
visibilityLevel
NUMBER
Visibility level
score
NUMBER
Computed relevance score
lastContactAt
DATE_TIME
Last contact timestamp
Custom Fields
Each workspace can define custom fields for any entity. Custom field names are discovered via the Metadata API and used as JSON keys in the same way as standard fields: