Four sources, one list
A direct message, a story reply, a story mention or a public comment: each one creates or updates a contact. Events are deduplicated on Instagram's own id, so a redelivered webhook never counts twice. Your outbound replies are recorded too, at zero weight, so the timeline still reads in order.