Create resolve
Mark a conversation as resolved with a specific outcome.
Purpose: Updates the conversation’s status and records the resolution type, such as booked, rescheduled, or canceled. This action also manages any associated opportunities and sends relevant notifications.
Use Case: Vital for closing conversations with a defined resolution, allowing practices to track outcomes and ensure follow-ups as needed.
Field Descriptions:
-
responsive_outreach_resolution_type: Specifies the type of resolution applied to the conversation. Options include:
BOOKED: The conversation resulted in a successful booking.RESCHEDULED: The conversation led to a rescheduling.CANCELLED: The conversation was canceled.LOST: The opportunity was lost during the conversation.
-
resolver_type: Indicates who resolved the conversation. Options are:
aimee: Resolution managed by the system (Aimee).agent: Resolution managed by an agent.
Note: Only Aimee or agents with the required permissions can resolve a conversation.
curl --request POST \
--url https://api.prod.peerlogic.com/api/conversations/{id}/resolve/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"resolver_type": "aimee",
"appointment_id": 123,
"note": "<string>"
}
'import requests
url = "https://api.prod.peerlogic.com/api/conversations/{id}/resolve/"
payload = {
"resolver_type": "aimee",
"appointment_id": 123,
"note": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({resolver_type: 'aimee', appointment_id: 123, note: '<string>'})
};
fetch('https://api.prod.peerlogic.com/api/conversations/{id}/resolve/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.prod.peerlogic.com/api/conversations/{id}/resolve/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'resolver_type' => 'aimee',
'appointment_id' => 123,
'note' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.prod.peerlogic.com/api/conversations/{id}/resolve/"
payload := strings.NewReader("{\n \"resolver_type\": \"aimee\",\n \"appointment_id\": 123,\n \"note\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.prod.peerlogic.com/api/conversations/{id}/resolve/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"resolver_type\": \"aimee\",\n \"appointment_id\": 123,\n \"note\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.prod.peerlogic.com/api/conversations/{id}/resolve/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"resolver_type\": \"aimee\",\n \"appointment_id\": 123,\n \"note\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"action_required": true,
"caller_name": "<string>",
"current_type": "static",
"end_time": "2023-11-07T05:31:56Z",
"escalated_at": "2023-11-07T05:31:56Z",
"escalation_reason": "<string>",
"escalations": [
{
"notes": [
{
"conversation_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"id": "<string>",
"is_from_escalation": true,
"note": "<string>",
"note_type": "system"
}
],
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"escalation_type": "aimee_initiated"
}
],
"id": "<string>",
"is_action_required": "<string>",
"messages": [
{
"conversation_id": "<string>",
"created_by": "<string>",
"direction": "inbound",
"id": "<string>",
"message_time": "2023-11-07T05:31:56Z",
"origin_type": "system_static",
"is_viewed": true,
"patient_phone_number": "<string>",
"system_phone_number": "<string>",
"text": "<string>",
"is_webchat": true,
"is_voicechat": true,
"is_deleted": true,
"deleted_at": "2023-11-07T05:31:56Z",
"deleted_by": "<string>",
"media": "<string>"
}
],
"messages_stats": "<string>",
"most_recent_inbound_message_time": "2023-11-07T05:31:56Z",
"most_recent_message_time": "2023-11-07T05:31:56Z",
"notes": [
{
"conversation_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"id": "<string>",
"is_from_escalation": true,
"note": "<string>",
"note_type": "system"
}
],
"opportunity": {
"created_at": "2023-11-07T05:31:56Z",
"first_follow_up_call_id": "<string>",
"followed_up_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"is_open": true,
"modified_at": "2023-11-07T05:31:56Z",
"status": "success",
"trigger_type": "missed_call"
},
"originating_call": {
"call_connection": "missed",
"call_direction": "inbound",
"call_start_time": "2023-11-07T05:31:56Z",
"id": "<string>",
"patients": [
{
"address_line_1": "<string>",
"address_line_2": "<string>",
"date_of_birth": "2023-12-25",
"email": "jsmith@example.com",
"id": "<string>",
"is_active": true,
"name": "<string>",
"name_first": "<string>",
"name_last": "<string>",
"name_middle": "<string>",
"phone_fax": "<string>",
"phone_home": "<string>",
"phone_mobile": "<string>",
"phone_number": "<string>",
"phone_work": "<string>",
"placeholder": "<string>",
"pms_created_at": "2023-11-07T05:31:56Z",
"zip_code": "<string>"
}
],
"sip_callee_extension": "<string>",
"sip_callee_number": "<string>",
"sip_caller_extension": "<string>",
"sip_caller_number": "<string>"
},
"origination_type": "static",
"patient_phone_number": "<string>",
"patients": [
{
"address_line_1": "<string>",
"address_line_2": "<string>",
"date_of_birth": "2023-12-25",
"email": "jsmith@example.com",
"id": "<string>",
"is_active": true,
"name": "<string>",
"name_first": "<string>",
"name_last": "<string>",
"name_middle": "<string>",
"phone_fax": "<string>",
"phone_home": "<string>",
"phone_mobile": "<string>",
"phone_number": "<string>",
"phone_work": "<string>",
"placeholder": "<string>",
"pms_created_at": "2023-11-07T05:31:56Z",
"zip_code": "<string>"
}
],
"practice_id": "<string>",
"recording_url": "<string>",
"resolutions": [
{
"notes": [
{
"conversation_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"id": "<string>",
"is_from_escalation": true,
"note": "<string>",
"note_type": "system"
}
],
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"resolution_type": "booked",
"appointment": {
"id": 123,
"appointment_start_at": "2023-11-07T05:31:56Z",
"appointment_end_at": "2023-11-07T05:31:56Z",
"approximate_total_amount": "<string>",
"approximate_total_currency": "<string>",
"confirmed_at": "2023-11-07T05:31:56Z",
"did_patient_miss": true,
"is_active": true,
"is_new_patient": true,
"note": "<string>",
"patient_id": "<string>",
"booked_by_patient_id": "<string>",
"pms_created_at": "2023-11-07T05:31:56Z",
"practice": "<string>",
"procedures": "<string>",
"status": "SCHEDULED",
"appointment_type": {
"id": "<string>",
"name": "<string>",
"duration_in_minutes": 123,
"practice": "<string>",
"descriptors": [
{
"name": "<string>",
"code": "<string>",
"id": "<string>",
"active": true
}
],
"peerlogic_appointment_types": "<string>",
"mappings": "<string>",
"is_bookable_online": true,
"is_disabled_in_peerlogic": true,
"effective_is_bookable_online": "<string>",
"has_availability_schedule": true
},
"booked_peerlogic_appointment_type": {
"id": "<string>",
"name": "Consultation",
"display_name": "<string>"
},
"patient": {
"address_line_1": "<string>",
"address_line_2": "<string>",
"date_of_birth": "2023-12-25",
"email": "jsmith@example.com",
"id": "<string>",
"is_active": true,
"name": "<string>",
"name_first": "<string>",
"name_last": "<string>",
"name_middle": "<string>",
"phone_fax": "<string>",
"phone_home": "<string>",
"phone_mobile": "<string>",
"phone_number": "<string>",
"phone_work": "<string>",
"placeholder": "<string>",
"pms_created_at": "2023-11-07T05:31:56Z",
"zip_code": "<string>"
},
"provider": {
"id": "<string>",
"name": "<string>",
"email": "jsmith@example.com",
"phone_number": "<string>",
"is_active": true
},
"operatory": {
"name": "<string>",
"id": "<string>",
"display_name": "<string>"
}
},
"resolver_type": "aimee"
}
],
"resolved_at": "2023-11-07T05:31:56Z",
"resolved_by": {
"id": "<string>",
"name": "<string>",
"email": "jsmith@example.com"
},
"responsive_outreach_escalation_type": "aimee_initiated",
"responsive_outreach_resolution_type": "booked",
"responsive_outreach_status": "working_aimee",
"start_time": "2023-11-07T05:31:56Z",
"status": "open",
"system_phone_number": "<string>",
"is_webchat": true,
"is_voicechat": true,
"customer_satisfaction": "<string>"
}{
"error": "Only Aimee can resolve conversations with resolver_type='aimee'"
}{
"detail": "'Authorization' header is required"
}{
"message": "No permissions assigned to permit access to this endpoint."
}{
"detail": "No Conversation matches the given query."
}Authorizations
Bearer access token issued by Peerlogic.
Path Parameters
A unique value identifying this conversation.
Body
Response
Conversation resolved successfully.
static, responsive, agent 1Show child attributes
Show child attributes
1Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
static, responsive, agent 1Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
aimee_initiated, aimee_error, user_initiated, conversation_abandoned, sms_failed, insurance_not_accepted, insurance_needs_verification, prescription_refill_request, patient_messaged_resolved_conversation, user_stop_text_received, aimee_hallucinated booked, lost, cancelled, rescheduled, confirmed, unspecified working_aimee, working_agent, escalated, not_applicable, resolved_by_aimee, resolved_by_agent, closed open, closed 1Was this page helpful?
curl --request POST \
--url https://api.prod.peerlogic.com/api/conversations/{id}/resolve/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"resolver_type": "aimee",
"appointment_id": 123,
"note": "<string>"
}
'import requests
url = "https://api.prod.peerlogic.com/api/conversations/{id}/resolve/"
payload = {
"resolver_type": "aimee",
"appointment_id": 123,
"note": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({resolver_type: 'aimee', appointment_id: 123, note: '<string>'})
};
fetch('https://api.prod.peerlogic.com/api/conversations/{id}/resolve/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.prod.peerlogic.com/api/conversations/{id}/resolve/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'resolver_type' => 'aimee',
'appointment_id' => 123,
'note' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.prod.peerlogic.com/api/conversations/{id}/resolve/"
payload := strings.NewReader("{\n \"resolver_type\": \"aimee\",\n \"appointment_id\": 123,\n \"note\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.prod.peerlogic.com/api/conversations/{id}/resolve/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"resolver_type\": \"aimee\",\n \"appointment_id\": 123,\n \"note\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.prod.peerlogic.com/api/conversations/{id}/resolve/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"resolver_type\": \"aimee\",\n \"appointment_id\": 123,\n \"note\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"action_required": true,
"caller_name": "<string>",
"current_type": "static",
"end_time": "2023-11-07T05:31:56Z",
"escalated_at": "2023-11-07T05:31:56Z",
"escalation_reason": "<string>",
"escalations": [
{
"notes": [
{
"conversation_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"id": "<string>",
"is_from_escalation": true,
"note": "<string>",
"note_type": "system"
}
],
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"escalation_type": "aimee_initiated"
}
],
"id": "<string>",
"is_action_required": "<string>",
"messages": [
{
"conversation_id": "<string>",
"created_by": "<string>",
"direction": "inbound",
"id": "<string>",
"message_time": "2023-11-07T05:31:56Z",
"origin_type": "system_static",
"is_viewed": true,
"patient_phone_number": "<string>",
"system_phone_number": "<string>",
"text": "<string>",
"is_webchat": true,
"is_voicechat": true,
"is_deleted": true,
"deleted_at": "2023-11-07T05:31:56Z",
"deleted_by": "<string>",
"media": "<string>"
}
],
"messages_stats": "<string>",
"most_recent_inbound_message_time": "2023-11-07T05:31:56Z",
"most_recent_message_time": "2023-11-07T05:31:56Z",
"notes": [
{
"conversation_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"id": "<string>",
"is_from_escalation": true,
"note": "<string>",
"note_type": "system"
}
],
"opportunity": {
"created_at": "2023-11-07T05:31:56Z",
"first_follow_up_call_id": "<string>",
"followed_up_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"is_open": true,
"modified_at": "2023-11-07T05:31:56Z",
"status": "success",
"trigger_type": "missed_call"
},
"originating_call": {
"call_connection": "missed",
"call_direction": "inbound",
"call_start_time": "2023-11-07T05:31:56Z",
"id": "<string>",
"patients": [
{
"address_line_1": "<string>",
"address_line_2": "<string>",
"date_of_birth": "2023-12-25",
"email": "jsmith@example.com",
"id": "<string>",
"is_active": true,
"name": "<string>",
"name_first": "<string>",
"name_last": "<string>",
"name_middle": "<string>",
"phone_fax": "<string>",
"phone_home": "<string>",
"phone_mobile": "<string>",
"phone_number": "<string>",
"phone_work": "<string>",
"placeholder": "<string>",
"pms_created_at": "2023-11-07T05:31:56Z",
"zip_code": "<string>"
}
],
"sip_callee_extension": "<string>",
"sip_callee_number": "<string>",
"sip_caller_extension": "<string>",
"sip_caller_number": "<string>"
},
"origination_type": "static",
"patient_phone_number": "<string>",
"patients": [
{
"address_line_1": "<string>",
"address_line_2": "<string>",
"date_of_birth": "2023-12-25",
"email": "jsmith@example.com",
"id": "<string>",
"is_active": true,
"name": "<string>",
"name_first": "<string>",
"name_last": "<string>",
"name_middle": "<string>",
"phone_fax": "<string>",
"phone_home": "<string>",
"phone_mobile": "<string>",
"phone_number": "<string>",
"phone_work": "<string>",
"placeholder": "<string>",
"pms_created_at": "2023-11-07T05:31:56Z",
"zip_code": "<string>"
}
],
"practice_id": "<string>",
"recording_url": "<string>",
"resolutions": [
{
"notes": [
{
"conversation_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"id": "<string>",
"is_from_escalation": true,
"note": "<string>",
"note_type": "system"
}
],
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"resolution_type": "booked",
"appointment": {
"id": 123,
"appointment_start_at": "2023-11-07T05:31:56Z",
"appointment_end_at": "2023-11-07T05:31:56Z",
"approximate_total_amount": "<string>",
"approximate_total_currency": "<string>",
"confirmed_at": "2023-11-07T05:31:56Z",
"did_patient_miss": true,
"is_active": true,
"is_new_patient": true,
"note": "<string>",
"patient_id": "<string>",
"booked_by_patient_id": "<string>",
"pms_created_at": "2023-11-07T05:31:56Z",
"practice": "<string>",
"procedures": "<string>",
"status": "SCHEDULED",
"appointment_type": {
"id": "<string>",
"name": "<string>",
"duration_in_minutes": 123,
"practice": "<string>",
"descriptors": [
{
"name": "<string>",
"code": "<string>",
"id": "<string>",
"active": true
}
],
"peerlogic_appointment_types": "<string>",
"mappings": "<string>",
"is_bookable_online": true,
"is_disabled_in_peerlogic": true,
"effective_is_bookable_online": "<string>",
"has_availability_schedule": true
},
"booked_peerlogic_appointment_type": {
"id": "<string>",
"name": "Consultation",
"display_name": "<string>"
},
"patient": {
"address_line_1": "<string>",
"address_line_2": "<string>",
"date_of_birth": "2023-12-25",
"email": "jsmith@example.com",
"id": "<string>",
"is_active": true,
"name": "<string>",
"name_first": "<string>",
"name_last": "<string>",
"name_middle": "<string>",
"phone_fax": "<string>",
"phone_home": "<string>",
"phone_mobile": "<string>",
"phone_number": "<string>",
"phone_work": "<string>",
"placeholder": "<string>",
"pms_created_at": "2023-11-07T05:31:56Z",
"zip_code": "<string>"
},
"provider": {
"id": "<string>",
"name": "<string>",
"email": "jsmith@example.com",
"phone_number": "<string>",
"is_active": true
},
"operatory": {
"name": "<string>",
"id": "<string>",
"display_name": "<string>"
}
},
"resolver_type": "aimee"
}
],
"resolved_at": "2023-11-07T05:31:56Z",
"resolved_by": {
"id": "<string>",
"name": "<string>",
"email": "jsmith@example.com"
},
"responsive_outreach_escalation_type": "aimee_initiated",
"responsive_outreach_resolution_type": "booked",
"responsive_outreach_status": "working_aimee",
"start_time": "2023-11-07T05:31:56Z",
"status": "open",
"system_phone_number": "<string>",
"is_webchat": true,
"is_voicechat": true,
"customer_satisfaction": "<string>"
}{
"error": "Only Aimee can resolve conversations with resolver_type='aimee'"
}{
"detail": "'Authorization' header is required"
}{
"message": "No permissions assigned to permit access to this endpoint."
}{
"detail": "No Conversation matches the given query."
}