BDS0.1

Interaction

One contact or scheduled meeting, its result and supporting evidence.

Reviewed 2026-11-06Markdown

An Interaction records a call, WhatsApp, email, meeting or message. Link the guest in People°, their company in Company° and the proposal in Deal°. Keep the original meeting when Cal.com reschedules or cancels it.

Rules and relationships

Date*, Title*, Type, Result and the accountable company/membership describe the contact. Note records what happened; Evidence° and Evidence URL support the record. Meeting booked is a scheduled state, not a completed conversation. Booking UID is the external meeting key and must survive note edits.

Next Contact Date° and Next Action° describe the agreement made during this contact. Nothing copies them to another table: when the agreement is work for someone, add it to Tasks. Cal.com writes them on booking, reschedule and cancellation. Name, Health check and Record health read People°, Company° and Deal°; one of the three is enough. Campaign is a lookup of Campaign° on the Deal linked in Deal°: set the campaign on the Deal and every contact of that Deal follows it. An Interaction with no Deal, or with a Deal that has no campaign, shows a blank Campaign, which is fine for general work. The Campaign Participation fields and Campaign Attribution Check were deleted on 2026-11-04.

Fields

Field Storage Current configuration
Name Formula Calculated; see rules below.
Date* Date and time Timezone: client
Title* Text Stored value or system-managed audit; edit according to the workflow.
Type Single choice Call, WhatsApp, Email, Meeting, Message
Result Single choice Answered, No answer, Meeting booked, Proposal requested, Not interested, Meeting cancelled
Accountable (Company) Linked records Companies; Multiple-record picker
Accountable (Person) Linked records People; Multiple-record picker
Health check Formula Calculated; see rules below.
Description° Formatted text Stored value or system-managed audit; edit according to the workflow.
Note Long text Stored value or system-managed audit; edit according to the workflow.
Next Contact Date° Date Stored value or system-managed audit; edit according to the workflow.
Next Action° Text Stored value or system-managed audit; edit according to the workflow.
Deal° Linked records Deal; Multiple-record picker
Evidence° Attachments Stored value or system-managed audit; edit according to the workflow.
Evidence URL URL Stored value or system-managed audit; edit according to the workflow.
Created By Created by Stored value or system-managed audit; edit according to the workflow.
Created At Creation time Stored value or system-managed audit; edit according to the workflow.
Tags Linked records Tags; Multiple-record picker
Booking UID Text Stored value or system-managed audit; edit according to the workflow.
Accountable Lookup Via Accountable (Person) → Account Binding
Thread Id Formula Calculated; see rules below.
Messages Linked records Message (mirror); filled by the CRM automation that links each captured e-mail to its thread
Accountable (Membership) - to delete (deprecated) Linked records Membership (mirror); Deprecated since 2026-11-06; read-only until deleted, replaced by Accountable (Person)
Accountable (Membership Auth User) - to delete (deprecated) Lookup Via Accountable (Membership) → Auth User; Deprecated since 2026-11-06; read-only until deleted
Record health Formula Calculated; see rules below.
Campaign Lookup Via Deal° → Campaign°. Read only; set the campaign on the Deal. If wrong, fix Campaign° on the Deal or link the right Deal° here
People° Linked records People; Multiple-record picker. The guest; the Cal.com flow fills it for bookings
Company° Linked records Companies; Multiple-record picker. The client company, when known

Calculated rules

The expressions below use field names for readability. View filters and checks guide work; they are not access controls.

Name

CONCATENATE(
  IF({People°}, ARRAYJOIN({People°}, ", ") & " at ", IF({Company°}, ARRAYJOIN({Company°}, ", ") & " at ", "no guest at ")),
  DATETIME_FORMAT({Date*}, "hh:mma"),
  IF({Type}, " - " & {Type}, ""),
  IF({Title*}, " - " & {Title*}, "")
)

Health check

IF(
  AND(
    OR(COUNTA({People°})>0, COUNTA({Company°})>0, COUNTA({Deal°})>0),
    {Date*},
    {Title*},
    {Type},
    {Result},
    COUNTA({Accountable (Person)})>0,
    COUNTA({Accountable (Company)})>0
  ),
  "✅",
  "Missing: " & REGEX_REPLACE(
    CONCATENATE(
      IF(OR(COUNTA({People°})>0, COUNTA({Company°})>0, COUNTA({Deal°})>0), "", "People, Company or Deal, "),
      IF({Date*}, "", "Date, "),
      IF({Title*}, "", "Title, "),
      IF({Type}, "", "Type, "),
      IF({Result}, "", "Result, "),
      IF(COUNTA({Accountable (Person)})>0, "", "Accountable (Person), "),
      IF(COUNTA({Accountable (Company)})>0, "", "Accountable (Company), ")
    ),
    ", $", ""
  )
)

Record health

SUM(
IF(OR(COUNTA({People°})>0, COUNTA({Company°})>0, COUNTA({Deal°})>0),1,0),
IF({Date*},1,0),
IF({Title*},1,0),
IF({Type},1,0),
IF({Result},1,0),
IF(COUNTA({Accountable (Person)})>0,1,0),
IF(COUNTA({Accountable (Company)})>0,1,0)
)/7

Next steps

Open the task guide · Find the view