The current status of the interaction.
The unique identifier for this interaction.
The type of communication channel for this interaction.
The sub-communication type of the interaction. Values are channel-specific.
Information about the customer involved in this interaction.
Details about the queue this interaction originated from.
The timestamp when the interaction started.
Whether the current user's microphone is currently muted on this interaction, regardless of role (owner, attended-transfer consult agent, or viewer).
Whether the customer call is currently on hold.
ReadonlyisWhether this interaction is routed through Avaya Elite Voice. Set at interaction creation and does not change during the interaction.
ReadonlyengagementIdentifier shared by interactions that belong to the same customer journey (e.g. an inbound call followed by a callback). Use this to link related interactions in CRM integrations. Stable for the lifetime of the interaction.
ReadonlyinitialThe channel the interaction started on. Immutable - does not change even if the interaction's current communicationType switches later (e.g. a chat escalated to a voice call).
ReadonlyinitialThe sub-communication type the interaction started with. Values are channel-specific. Immutable for the lifetime of the interaction.
Optional ReadonlyendWhen the interaction finished wrap-up. undefined while the interaction
is still active or in wrap-up.
ReadonlyroutingRouting context for the interaction. Empty string means "not populated".
Optional ReadonlyownerIdentity of the agent currently owning this interaction. Complements
isOwner (which only tells you whether you are the owner).
undefined when no agent is assigned yet.
The subject or title of the interaction.
Notes associated with the interaction.
Custom key/value data persisted on the interaction.
Update via mergeCustomFields (it deep-merges; keys not mentioned are preserved).
OptionalclassificationThe selected classification type for this interaction. Describes the reason the customer reached out or the purpose of the interaction.
OptionalclassificationThe selected classification result for this interaction. Describes the outcome of the interaction.
Whether the current user is the owner of the interaction.
Whether the current user is the consulted agent (transfer target) for an in-progress
attended transfer. true when the interaction is in ATTENDED_TRANSFER status and this
agent's userId matches the transfer target. Viewers can use this to detect that an attended
transfer is directed at them and prompt the agent to accept from the new pending interaction.
OptionalwrapUnix timestamp (seconds) when wrap-up expires. Undefined before the interaction enters wrap-up or if no timer is configured.
OptionaltransferTransfer details for the interaction.
ReadonlycurrentThe current user's viewing state on this interaction, including audio and Elite mode details.
Returns undefined if the current user is not a viewer.
Whether the agent can accept this interaction.
Accepts the incoming interaction.
Promise that resolves when the interaction is accepted
Whether the agent can reject this interaction.
Rejects the incoming interaction.
Promise that resolves when the interaction is rejected
Disconnects the call for voice interactions.
Promise that resolves when the call is disconnected
Whether the agent can close this interaction.
Closes the interaction with a required resolution status.
Whether the interaction was resolved or not
Promise that resolves when the interaction is closed
Whether the agent can complete this interaction.
Completes and finalizes the interaction.
Promise that resolves when the interaction is completed
Sets notes for the interaction.
The notes text to associate with the interaction
Promise that resolves when notes are saved
Sets the subject for the interaction.
The subject text to associate with the interaction
Promise that resolves when the subject is saved
Whether the agent can update the subject on this interaction.
Only applicable for the owning agent when the interaction is in CONNECTED,
ATTENDED_TRANSFER, HOLD, or WRAP_UP status. Returns false for viewers.
Updates the interaction's custom fields. It deep-merges
the provided object into the existing customFields record - keys not
mentioned are preserved.
Custom key/value data to merge into the interaction
Promise that resolves when the custom fields are saved
Optionaloptions: GetTransferableUsersParamsOptionaloptions: GetTransferableQueuesParamsMutes the current user's microphone on this interaction, regardless of role (owner, attended-transfer consult agent, or viewer).
Unmutes the current user's microphone on this interaction, regardless of role (owner, attended-transfer consult agent, or viewer).
Subscribes to interaction-related events.
A handler ID that can be used to unsubscribe
InteractionEventType for available event types
Unsubscribes from a previously subscribed event.
The event type to unsubscribe from
The handler ID returned from subscribe()
Unsubscribes from all events for this interaction.
Performs a blind (immediate, no-consultation) transfer of the interaction. Supports transfer to a queue, a specific agent, or an external phone number.
Transfer destination options (discriminated by type)
Promise that resolves when the transfer request is accepted
Sends a DTMF tone during an active voice interaction.
A single DTMF character: 0-9, *, #, a-d or A-D
If the interaction is not in a state that allows DTMF (check canSendDtmf first)
Whether the agent can send DTMF tones on this interaction. Only applicable for connected voice interactions where audio is active. Not applicable for viewers.
Whether the current user can mute their own microphone on this interaction right now. Use canUnmute for the inverse direction.
Whether the current user can unmute their own microphone on this interaction right now.
Whether agent can hold the interaction. Only applicable if I'm the owner of interaction and it is a voice interaction and call is connected.
Whether agent can resume the interaction. Only applicable if I'm the owner of interaction and it is a voice interaction and call is on hold.
Whether agent can transfer the interaction. Only applicable if I'm the owner of interaction and it is a voice interaction and call is connected.
Whether agent can wrap up the interaction. Only applicable if I'm the owner of interaction and interaction is in wrapup state.
Whether the agent can extend the wrap-up timer. Returns true when the agent is the owner, the interaction is in wrap-up status, the queue has wrap-up extend configured, and at least 5 seconds remain.
Extends the wrap-up timer by the configured number of seconds. Resolves when the server confirms the extension
Promise that resolves when the extension is confirmed
Whether agent can resolve the interaction. Only applicable if I'm the owner of interaction and interaction is in connected or attendedTransfer state.
Whether agent can unresolve the interaction. Only applicable if I'm the owner of interaction and if call is disconnected.
Whether agent can blind transfer the interaction. Only applicable if I'm the owner of interaction.
Whether agent can blind transfer the interaction to an external phone number. Checks all conditions: ownership, connected status, audio active, external transfer permission enabled, not a direct agent call, and not after a completed conference.
Whether agent can attended transfer the interaction. Only applicable if I'm the owner of interaction and it is a voice interaction and call is connected.
Whether agent can attended transfer the interaction to an external phone number. Checks all base attended-transfer conditions plus: audio active and external transfer permission enabled on the queue.
Whether agent can initiate a conference on the interaction. Only applicable if I'm the owner of interaction and it is a voice interaction and call is connected.
Whether agent can cancel the transfer of the interaction. Applicable for both owner and the consulted agent answering attended call. Not appplicable if transfer was done to queue
Whether agent can complete the transfer of the interaction. Applicable only for owner of the interaction.
Whether agent can cancel the conference of the interaction. Only applicable if I'm the owner of interaction and it is a voice interaction and call is connected.
Whether agent can complete the conference of the interaction. Only applicable if I'm the owner of interaction and it is a voice interaction and call is connected.
Whether agent can disconnect the call to customer. Only applicable if I'm the owner of interaction and it is a voice interaction and call is connected.
Whether agent can update the notes of the interaction. Only applicable if I'm the owner of interaction and it is a voice interaction and call is connected or in wrap-up.
Whether the agent can set custom fields on this interaction.
Only applicable if the agent is the owner and the interaction is in
connected, attendedTransfer, hold, or wrapUp status.
Returns false for viewers - only the owning agent may write custom fields.
Sets the classification type for this interaction. Describes the reason the customer reached out or the purpose of the interaction.
The classification code to set
Promise that resolves when the classification type is saved
Sets the classification result for this interaction. Describes the outcome of the interaction.
The classification code to set
Promise that resolves when the classification result is saved
Whether agent can set classification codes on this interaction. Only applicable if the agent is the owner and the interaction is in connected, attendedTransfer, hold, or wrapUp status.
Initiates an attended (consultative) transfer. The original call is placed on hold and a consult leg is established to the target user or queue.
The target user or queue to transfer to.
Promise that resolves when the attended transfer request is accepted by server
Cancels an in-progress attended transfer. The originating agent is reconnected to the original customer call.
Promise that resolves when the cancel request is confirmed by server
Completes an in-progress attended transfer. The consulted agent is disconnected and the original call is reconnected to the customer.
Promise that resolves when the complete request is confirmed by server
Initiates a conference during an attended transfer, merging the agent, customer, and consulted party into a three-way call.
After calling this, all three parties can hear each other. The agent remains in control and can either cancelConference to drop the consulted party, or completeConference to finalize the conference and allow additional participants (viewers) to be added.
Promise that resolves when the conference is established
Cancels an in-progress conference, disconnecting the consulted party and returning to a two-party call between the agent and customer.
Promise that resolves when the cancel request is confirmed by server
Completes the conference, finalizing the multi-party session.
After completion, additional participants can join the interaction as viewers. The consulted party transitions to a viewer role with limited controls. Call this when the conference setup is done and additional participants should be able to join.
Promise that resolves when the complete request is confirmed by server
Whether the current user is a viewer of this interaction. A viewer is a user who joined via conference complete and has limited controls.
Returns the list of active viewers on this interaction. Each Viewer exposes the viewer's identity and state, plus owner-on-viewer actions (Viewer.mute, Viewer.remove, Viewer.assignOwner).
Whether the current user can leave the call as a viewer.
Whether the current user can join the call as a viewer.
Whether the current user can be removed as a viewer.
Leaves the call audio as a viewer (stays as viewer but disconnects audio).
Joins the call audio as a viewer.
Removes the current user as a viewer from this interaction.
Sends a chat message on this interaction. Resolves once the server echoes
the message back over the socket; the full message is also dispatched via
the INTERACTION_MESSAGE_SENT event.
Built via ChatMessageRequest
Promise resolving to the MessageIdentifier of the sent message
Whether the agent can send a chat message on this interaction.
Returns true when the interaction is connected and the agent is the
owner or a viewer.
Returns a bidirectional iterator over the message history of this
interaction. Call previous() on the iterator to fetch older messages
and next() to fetch newer messages.
Optionaloptions: GetMessagesOptionsOptional GetMessagesOptions.
When canGetMessages returns false.
Whether the agent can fetch message history on this interaction.
Returns true when the agent is the owner or a viewer.
Whether the current Elite supervisor viewer can barge. Requires an Elite
supervisor on the call's audio leg currently in listen-only mode.
Whether the current Elite supervisor viewer can stop barging. Requires an
Elite supervisor on the call's audio leg currently in listen-talk mode.
Whether the current Elite supervisor viewer can start coaching. Requires an
Elite supervisor on the call's audio leg whose mode is listen-only (or not
yet confirmed by the server).
Whether the current viewer can claim ownership of this interaction. Evaluates viewer status, interaction status, monitoring permissions, hybrid restrictions, audio state (phone only), and queue access.
true if the viewer is permitted to claim ownership
Barges into the call as an Elite supervisor - the supervisor's voice becomes audible to both the agent and the customer. Resolves once the server confirms the mode transition; rejects on request failure or after a 30s timeout.
When canBarge returns false
Stops barging and returns the supervisor to listen-only (mic silenced).
Same async confirmation pattern as barge.
When canUnbarge returns false
Starts coaching as an Elite supervisor - the supervisor's voice reaches only the agent (whisper coaching); the customer does not hear it. Resolves once the server confirms the mode transition; rejects on request failure or after a 30s timeout.
There is no explicit "uncoach" - leave the call via leaveCall to exit coach mode.
When canCoach returns false
Claims ownership of this interaction. The current user must be a viewer.
Promise that resolves when the claim request is accepted
Contract implemented by Interaction that describes the full API surface for managing a contact center interaction. Covers the complete lifecycle from acceptance through wrap-up, as well as call controls, transfer operations, conference management, viewer controls, event subscriptions, and interaction metadata.
Consume this interface when you need to reference the Interaction API shape without coupling to the concrete Interaction class (e.g., in test doubles or adapters).
See
Interaction