Contacts
Contact Statuses
Understanding the different contact statuses in VayaFlow.
Contacts move through 22 possible statuses that represent their lifecycle from submission to final outcome. Statuses are shared between contacts and submissions.
| Status | Description |
|---|
new | Contact was imported via CSV or created directly — not yet submitted for processing |
pending | Submitted to the qualification engine, waiting to be picked up |
processing | Engine is actively evaluating the contact |
| Status | Description |
|---|
qualified | Passed all qualification checks (DQ conditionals, required fields, field qualification) |
disqualified | Failed one or more qualification checks |
| Status | Description |
|---|
queued | Delivery deferred because a cap was hit or the current time is outside the delivery schedule |
pending_action | Waiting for a first submission action to complete (voice call, SMS, human review, or webhook) |
These statuses indicate ongoing contact attempts, typically from voice AI or SMS agents:
| Status | Description |
|---|
no_answer | Call attempt was not answered — will retry |
voicemail | Voicemail was left — will retry |
contacted | Contact was reached but conversation is not yet resolved |
scheduled_callback | Contact requested a callback at a specific time |
| Status | Description |
|---|
no_contact | Auto-dialer exhausted all configured attempts without reaching the contact |
| Status | Description |
|---|
pending_signature | A document requiring signature has been sent to the contact |
document_sent | A document not requiring signature has been sent |
signed | The contact signed the document |
| Status | Description |
|---|
delivered | Contact was successfully posted to the client's endpoint |
accepted | Client confirmed acceptance of the contact |
duplicate | Client reported the contact as a duplicate |
failed | Delivery attempt failed (endpoint returned an error or rejection) |
error | System or technical error occurred during any processing phase |
| Status | Description |
|---|
rejected | Client rejected the contact, or it was manually rejected by a user |
dnc | Contact is marked Do Not Contact |
Statuses generally flow forward through the lifecycle, but some transitions can move backward:
- A
queued contact re-enters processing when its schedule window opens or the cap resets
- A
no_answer or voicemail contact returns to the auto-dialer queue for retry
- A
delivered contact can be manually reposted, creating a new submission that starts at pending
Users can manually change a contact's status from the contacts list (inline editing) or the contact detail page. Manual status changes do not trigger engine reprocessing.
When a playbook uses a human review first submission action, the contact enters pending_action with an approval object:
pending — Awaiting review
approved — Reviewer approved, processing continues
rejected — Reviewer rejected, contact is marked rejected
Approval can be done from the contact detail page or via the POST /api/v1/contacts/{contactId}/approve API endpoint.