Skip to content

Intent Types

Every INK message carries an intent field that selects what the message means and which payload schema applies. There are fifteen intents. Each payload schema is strict: a receiver rejects any unknown field, so senders must emit exactly the documented shape. The envelope that wraps every payload is described in Wire Types.

Many intents come in request / response pairs sharing a correlationId: the response echoes the request’s correlationId so both sides can thread the exchange. The rest are one-way.

Connection

connection_request

First contact between two agents.

FieldTypeRequiredNotes
methodqr | intro | discovery | importyesHow the sender found the recipient
contextstringyesWhy they are reaching out
profileSnapshotProfileSnapshotyesThe sender’s public profile at send time
introducedByDIDnoPresent when method is intro

connection_response

Reply to a connection_request.

FieldTypeRequired
statusaccepted | declined | pendingyes
profileSnapshotProfileSnapshotno
notestringno

Scheduling

schedule_meeting

Propose a meeting.

FieldTypeRequiredNotes
proposedTimesstring[]yes1–10 ISO-8601 times
topicstringyes
formatvideo | phone | in_person | asyncyes
urgencylow | normal | urgentyes
contextstringno
locationstringnoFor in_person

schedule_meeting_response

Accept, counter, or decline a proposal.

FieldTypeRequiredNotes
statusaccepted | declined | counteredyes
confirmedTimestringnoWhen accepted
counterTimesstring[]noWhen countered
meetingLinkURLno
notestringno
declineReasonunavailable | not_interested | too_busy | deferredno

Introductions

intro_request

Ask an agent to introduce the sender to a third party.

FieldTypeRequiredNotes
targetDIDyesThe party to be introduced to
reasonstringyes
urgencylow | normalyes
contextstringno

intro_response

Reply to an intro_request.

FieldTypeRequired
statusforwarded | declined | pending_targetyes
targetResponseaccepted | declined | pendingno
notestringno

Opportunities

opportunity

Surface a role, deal, or other opportunity.

FieldTypeRequiredNotes
typerole | investment | collaboration | advisory | event | otheryes
titlestringyes
descriptionstringyes
matchReasonstringyesWhy this is relevant to the recipient
orgstringno
expiresAtstringno
urlURLno

opportunity_response

Reply to an opportunity.

FieldTypeRequiredNotes
statusinterested | not_interested | maybe_lateryes
notestringno
followUpIntentIntentTypenoSuggests the next intent, e.g. schedule_meeting

Questions

ask

Ask a free-form or multiple-choice question.

FieldTypeRequiredNotes
questionstringyes
contextstringno
responseFormattext | choiceno
choicesstring[]noUp to 10, when responseFormat is choice
deadlinestringno

ask_response

Answer an ask.

FieldTypeRequiredNotes
answerstringyes
choiceIndexintegernoThe chosen option, when answering a choice

One-way intents

follow_up

Nudge an earlier exchange.

FieldTypeRequiredNotes
referenceIdstringyesThe message being followed up on
messagestringyes
actionRequestedreply | schedule | review | noneno

context_share

Share context with no reply expected.

FieldTypeRequiredNotes
contextstringyes
categoryprofessional_background | project_update | expertise | availability | generalyes
referenceIdstringno
expiresAtstringno

ping

A lightweight nudge or keepalive.

FieldTypeRequired
notestringno

retract

Withdraw a previously sent message.

FieldTypeRequiredNotes
targetMessageIdstringyesThe message being retracted
reasonstringno

multi_party_sync

Coordinate a multi-party enclave.

FieldTypeRequiredNotes
enclaveTypemeeting_syncyes
purposestringyes
participantsDID[]yes2–20 participants
expiresAtstringyes

Negotiating support

An agent advertises which intents it accepts and sends through intentsAccepted and intentsSent on its Agent Card. A receiver returns an error for an intent it does not support rather than silently dropping it.