Help
DevelopersReference

Follow-ups

Questions the agent could not answer and promised to follow up on.

Base URL https://api.showpilot.com/v1. Every call needs Authorization: Bearer <api key>; see Authentication.

List follow-ups, newest first

GET /follow-ups

Scope: follow_ups:read. Operation id: listFollowUps.

Parameters

NameInTypeMeaning
limitqueryintegerPage size, 1 to 200. Default 50.
cursorquerystringThe nextCursor from the previous page. Opaque; never build one.
statusqueryopen · answered · dismissed
visitorIdquerystring (uuid)

Example request

curl "https://api.showpilot.com/v1/follow-ups?limit=50" \
  -H "Authorization: Bearer $SHOWPILOT_API_KEY"
Runs against your sandbox with a test key.

Response

One page of follow-ups.

FieldTypeAlwaysMeaning
itemsarray of FollowUpyes
nextCursorNextCursoryes

FollowUp

FieldTypeAlwaysMeaning
idstring (uuid)yes
agentIdstring or null (uuid)yes
conversationIdstring or null (uuid)yes
visitorIdstring or null (uuid)yes
questionstringyesThe visitor's question
reasonstring or nullyes
statusopen · answered · dismissedyes
answerstring or nullyes
answeredAtstring or null (date-time)yes
deliveredAtstring or null (date-time)yesWhen the agent delivered the answer to the visitor.
createdAtstring (date-time)yes

NextCursor

Pass as cursor for the next page; null on the last page.

Errors

StatusWhen
400A parameter is malformed, such as a cursor this API did not issue, a limit under 1, or an unknown status. Code invalid-request.
401No key, or an unknown or revoked key. Code unauthorized.
403A valid key without the operation's scope (code insufficient-scope), or a plan without API access (code plan-api-off).
429The key's bucket is empty. Code rate-limited; wait the Retry-After seconds.

One follow-up

GET /follow-ups/{id}

Scope: follow_ups:read. Operation id: getFollowUp.

Parameters

NameInTypeMeaning
idpathstring (uuid)

Example request

curl "https://api.showpilot.com/v1/follow-ups/e0000001-0000-4000-8000-000000000000" \
  -H "Authorization: Bearer $SHOWPILOT_API_KEY"
Runs against your sandbox with a test key.

Response

The follow-up.

FollowUp

FieldTypeAlwaysMeaning
idstring (uuid)yes
agentIdstring or null (uuid)yes
conversationIdstring or null (uuid)yes
visitorIdstring or null (uuid)yes
questionstringyesThe visitor's question
reasonstring or nullyes
statusopen · answered · dismissedyes
answerstring or nullyes
answeredAtstring or null (date-time)yes
deliveredAtstring or null (date-time)yesWhen the agent delivered the answer to the visitor.
createdAtstring (date-time)yes

Errors

StatusWhen
401No key, or an unknown or revoked key. Code unauthorized.
403A valid key without the operation's scope (code insufficient-scope), or a plan without API access (code plan-api-off).
404No object with that id in this workspace. Code not-found.
429The key's bucket is empty. Code rate-limited; wait the Retry-After seconds.

Answer an open follow-up

POST /follow-ups/{id}/answer

Scope: follow_ups:write. Operation id: answerFollowUp.

Closes the task with the answer. When the visitor left an email and a rep's mailbox is connected, the answer is emailed from that mailbox; otherwise the agent delivers it in the visitor's next conversation. The same path the dashboard queue uses. Requires Idempotency-Key.

Parameters

NameInTypeMeaning
Idempotency-KeyheaderstringAny unique string, up to 200 characters, chosen by the caller. A retry with the same key and the same request replays the stored response (with the header Idempotent-Replayed set to true); the same key with a different request is refused. Keys are remembered for 24 hours.
idpathstring (uuid)

Example request

curl "https://api.showpilot.com/v1/follow-ups/e0000001-0000-4000-8000-000000000000/answer" \
  -H "Authorization: Bearer $SHOWPILOT_API_KEY"
Runs against your sandbox with a test key.

Response

The follow-up, now answered, with whether the visitor was emailed.

Every field of FollowUp, plus:

FieldTypeAlwaysMeaning
emailedbooleanyes
skipReasonstring or nullyesno-email or no-mailbox when not emailed; null when it was.

FollowUp

FieldTypeAlwaysMeaning
idstring (uuid)yes
agentIdstring or null (uuid)yes
conversationIdstring or null (uuid)yes
visitorIdstring or null (uuid)yes
questionstringyesThe visitor's question
reasonstring or nullyes
statusopen · answered · dismissedyes
answerstring or nullyes
answeredAtstring or null (date-time)yes
deliveredAtstring or null (date-time)yesWhen the agent delivered the answer to the visitor.
createdAtstring (date-time)yes

Errors

StatusWhen
400A parameter is malformed, such as a cursor this API did not issue, a limit under 1, or an unknown status. Code invalid-request.
401No key, or an unknown or revoked key. Code unauthorized.
403A valid key without the operation's scope (code insufficient-scope), or a plan without API access (code plan-api-off).
404No object with that id in this workspace. Code not-found.
409The write cannot apply. Code conflict when the object's state refuses it (a follow-up already closed); code idempotency-mismatch when the Idempotency-Key was already used for a different request.
429The key's bucket is empty. Code rate-limited; wait the Retry-After seconds.

Dismiss an open follow-up

POST /follow-ups/{id}/dismiss

Scope: follow_ups:write. Operation id: dismissFollowUp.

Closes the task without an answer. Requires Idempotency-Key.

Parameters

NameInTypeMeaning
Idempotency-KeyheaderstringAny unique string, up to 200 characters, chosen by the caller. A retry with the same key and the same request replays the stored response (with the header Idempotent-Replayed set to true); the same key with a different request is refused. Keys are remembered for 24 hours.
idpathstring (uuid)

Example request

curl "https://api.showpilot.com/v1/follow-ups/e0000001-0000-4000-8000-000000000000/dismiss" \
  -H "Authorization: Bearer $SHOWPILOT_API_KEY"
Runs against your sandbox with a test key.

Response

The follow-up, now dismissed.

FollowUp

FieldTypeAlwaysMeaning
idstring (uuid)yes
agentIdstring or null (uuid)yes
conversationIdstring or null (uuid)yes
visitorIdstring or null (uuid)yes
questionstringyesThe visitor's question
reasonstring or nullyes
statusopen · answered · dismissedyes
answerstring or nullyes
answeredAtstring or null (date-time)yes
deliveredAtstring or null (date-time)yesWhen the agent delivered the answer to the visitor.
createdAtstring (date-time)yes

Errors

StatusWhen
400A parameter is malformed, such as a cursor this API did not issue, a limit under 1, or an unknown status. Code invalid-request.
401No key, or an unknown or revoked key. Code unauthorized.
403A valid key without the operation's scope (code insufficient-scope), or a plan without API access (code plan-api-off).
404No object with that id in this workspace. Code not-found.
409The write cannot apply. Code conflict when the object's state refuses it (a follow-up already closed); code idempotency-mismatch when the Idempotency-Key was already used for a different request.
429The key's bucket is empty. Code rate-limited; wait the Retry-After seconds.

On this page