Every completed conversation creates a lead — one row per enquiry, timestamped. A contact is the person behind it, resolved by phone, then email, then channel identity, so a repeat customer's history stays on one Customer Timeline instead of scattering across rows.
A contact with no leads at all (for example, one imported from a CSV nobody has messaged yet) is invisible to a team member with a restricted visibility scope — that is intentional, not a bug: restricted scope is earned by having actually talked to someone.