<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://docs.callproof.com/index.php?action=history&amp;feed=atom&amp;title=Task_Completion</id>
	<title>Task Completion - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://docs.callproof.com/index.php?action=history&amp;feed=atom&amp;title=Task_Completion"/>
	<link rel="alternate" type="text/html" href="http://docs.callproof.com/index.php?title=Task_Completion&amp;action=history"/>
	<updated>2026-07-24T07:16:24Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>http://docs.callproof.com/index.php?title=Task_Completion&amp;diff=3095&amp;oldid=prev</id>
		<title>Ashley DeBon: /* Retrieve Task Completion Details */</title>
		<link rel="alternate" type="text/html" href="http://docs.callproof.com/index.php?title=Task_Completion&amp;diff=3095&amp;oldid=prev"/>
		<updated>2026-07-21T15:50:04Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Retrieve Task Completion Details&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 15:50, 21 July 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Retrieve Task Completion Details ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Mobile_API]] &amp;amp;#187;&lt;/ins&gt;Retrieve Task Completion Details ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Base URL ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Base URL ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ashley DeBon</name></author>
		
	</entry>
	<entry>
		<id>http://docs.callproof.com/index.php?title=Task_Completion&amp;diff=3094&amp;oldid=prev</id>
		<title>Ashley DeBon: Created page with &quot;== Retrieve Task Completion Details ==  === Base URL === https://apimobile.callproof.com  === Endpoint === /api/ai/chat-bot/task-completion  === Purpose === Returns a paginate...&quot;</title>
		<link rel="alternate" type="text/html" href="http://docs.callproof.com/index.php?title=Task_Completion&amp;diff=3094&amp;oldid=prev"/>
		<updated>2026-07-21T15:49:54Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Retrieve Task Completion Details ==  === Base URL === https://apimobile.callproof.com  === Endpoint === /api/ai/chat-bot/task-completion  === Purpose === Returns a paginate...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Retrieve Task Completion Details ==&lt;br /&gt;
&lt;br /&gt;
=== Base URL ===&lt;br /&gt;
https://apimobile.callproof.com&lt;br /&gt;
&lt;br /&gt;
=== Endpoint ===&lt;br /&gt;
/api/ai/chat-bot/task-completion&lt;br /&gt;
&lt;br /&gt;
=== Purpose ===&lt;br /&gt;
Returns a paginated list of tasks (follow-ups and appointments) for a given user, so AI or mobile experiences can answer questions such as past-due follow-ups or tasks completed in a date range. Results can be filtered by date range, task type, and completion status, and each item includes task schedule details plus related contact information.&lt;br /&gt;
&lt;br /&gt;
=== HTTP Method ===&lt;br /&gt;
POST&lt;br /&gt;
&lt;br /&gt;
=== Headers ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Header !! Required !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Authorization || Yes || Bearer access token&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Security ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Yes&amp;#039;&amp;#039;&amp;#039; – Requires Bearer Token authentication.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
==== Path Parameters ====&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
==== Query Parameters ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter !! Type !! Required !! Description&lt;br /&gt;
|-&lt;br /&gt;
| page || integer || No || Page number for pagination (default page size is 5)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Body Parameters ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter !! Type !! Required !! Description&lt;br /&gt;
|-&lt;br /&gt;
| user_id || integer || Yes || User whose tasks should be returned&lt;br /&gt;
|-&lt;br /&gt;
| start_date || string || No || Start of date filter in `d-m-Y` format (for example, `01-07-2026`)&lt;br /&gt;
|-&lt;br /&gt;
| end_date || string || No || End of date filter in `d-m-Y` format (for example, `17-07-2026`)&lt;br /&gt;
|-&lt;br /&gt;
| task_type || string || No || Comma-separated task type IDs to include&lt;br /&gt;
|-&lt;br /&gt;
| task_status || number || No || `0` for incomplete (not completed or null); any other provided value filters to completed tasks&lt;br /&gt;
|-&lt;br /&gt;
| task_priority || integer || No || Optional priority filter applied when provided&lt;br /&gt;
|-&lt;br /&gt;
| search || string || No || Optional contact name search (first or last name) applied when provided&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Successful Response (200) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| clientStatusCode || integer || Business status code (`200` on success)&lt;br /&gt;
|-&lt;br /&gt;
| user_id || integer || Authenticated user ID&lt;br /&gt;
|-&lt;br /&gt;
| company_id || integer || Authenticated user’s company ID&lt;br /&gt;
|-&lt;br /&gt;
| data || array || List of task completion items for the current page&lt;br /&gt;
|-&lt;br /&gt;
| data[].task_id || integer || Task or appointment ID&lt;br /&gt;
|-&lt;br /&gt;
| data[].task_type_id || integer/string || Task type ID&lt;br /&gt;
|-&lt;br /&gt;
| data[].task_type_name || string || Task type name&lt;br /&gt;
|-&lt;br /&gt;
| data[].task_priority_id || integer || Priority ID (follow-up tasks; default Medium when missing)&lt;br /&gt;
|-&lt;br /&gt;
| data[].task_priority_name || string || Priority name (follow-up tasks)&lt;br /&gt;
|-&lt;br /&gt;
| data[].task_date || string || Task date in user’s timezone (`m-d-Y`)&lt;br /&gt;
|-&lt;br /&gt;
| data[].task_time || string || Task time in user’s timezone (for example, `3:30 PM`)&lt;br /&gt;
|-&lt;br /&gt;
| data[].task_duration || mixed || Task duration&lt;br /&gt;
|-&lt;br /&gt;
| data[].task_notes || string || Notes on the task&lt;br /&gt;
|-&lt;br /&gt;
| data[].task_schedule_time || string || Human-readable schedule (weekday, date, and time)&lt;br /&gt;
|-&lt;br /&gt;
| data[].task_completed || boolean || Whether the task is completed&lt;br /&gt;
|-&lt;br /&gt;
| data[].contact_id || integer/string || Related contact ID&lt;br /&gt;
|-&lt;br /&gt;
| data[].contact_name || string || Related contact or company display name&lt;br /&gt;
|-&lt;br /&gt;
| data[].contact_phone || string || Related contact phone&lt;br /&gt;
|-&lt;br /&gt;
| data[].contact_people || mixed || Related people on the contact&lt;br /&gt;
|-&lt;br /&gt;
| data[].contact_sales_rep || string || Sales representative associated with the contact&lt;br /&gt;
|-&lt;br /&gt;
| data[].contact_contacted || string || Last contacted display value&lt;br /&gt;
|-&lt;br /&gt;
| data[].contact_address1 || string || Address line 1&lt;br /&gt;
|-&lt;br /&gt;
| data[].contact_address2 || string || Address line 2&lt;br /&gt;
|-&lt;br /&gt;
| data[].contact_latitude || mixed || Latitude&lt;br /&gt;
|-&lt;br /&gt;
| data[].contact_longitude || mixed || Longitude&lt;br /&gt;
|-&lt;br /&gt;
| data[].contact_datetime || integer || Unix timestamp of the scheduled time in the user’s timezone&lt;br /&gt;
|-&lt;br /&gt;
| data[].is_appointment || boolean || `true` when the item is an appointment; `false` for a follow-up task&lt;br /&gt;
|-&lt;br /&gt;
| firstItemOnPage || integer || Index of the first item on the page&lt;br /&gt;
|-&lt;br /&gt;
| lastItemOnPage || integer || Index of the last item on the page&lt;br /&gt;
|-&lt;br /&gt;
| hasNextPage || boolean || Whether a next page exists&lt;br /&gt;
|-&lt;br /&gt;
| hasPreviousPage || boolean || Whether a previous page exists&lt;br /&gt;
|-&lt;br /&gt;
| isFirstPage || boolean || Whether this is the first page&lt;br /&gt;
|-&lt;br /&gt;
| isLastPage || boolean || Whether this is the last page&lt;br /&gt;
|-&lt;br /&gt;
| next_page_url || string/null || URL for the next page&lt;br /&gt;
|-&lt;br /&gt;
| prev_page_url || string/null || URL for the previous page&lt;br /&gt;
|-&lt;br /&gt;
| first_page_url || string/null || URL for the first page&lt;br /&gt;
|-&lt;br /&gt;
| last_page_url || string/null || URL for the last page&lt;br /&gt;
|-&lt;br /&gt;
| pageCount || integer || Total number of pages&lt;br /&gt;
|-&lt;br /&gt;
| pageNumber || integer || Current page number&lt;br /&gt;
|-&lt;br /&gt;
| pageSize || integer || Items per page (`5`)&lt;br /&gt;
|-&lt;br /&gt;
| totalItemCount || integer || Total matching items&lt;br /&gt;
|-&lt;br /&gt;
| uri || string || Requested endpoint URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Error Responses ===&lt;br /&gt;
&lt;br /&gt;
==== Validation Error ====&lt;br /&gt;
HTTP status is typically `200`, with `clientStatusCode` `422`.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| clientStatusCode || integer || `422`&lt;br /&gt;
|-&lt;br /&gt;
| error.code || string/integer || Error code&lt;br /&gt;
|-&lt;br /&gt;
| error.message || string || First validation message (for example, missing `user_id` or invalid date format)&lt;br /&gt;
|-&lt;br /&gt;
| uri || string || Requested endpoint URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Business / Retrieval Error ====&lt;br /&gt;
HTTP status is typically `200`, with `clientStatusCode` `400`.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| clientStatusCode || integer || `400`&lt;br /&gt;
|-&lt;br /&gt;
| error.code || string/integer || Error code&lt;br /&gt;
|-&lt;br /&gt;
| error.message || string || Failure message (for example, error retrieving task details)&lt;br /&gt;
|-&lt;br /&gt;
| uri || string || Requested endpoint URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Unauthorized ====&lt;br /&gt;
Returned when the Bearer token is missing, invalid, or expired (middleware: token expiry and API auth).&lt;/div&gt;</summary>
		<author><name>Ashley DeBon</name></author>
		
	</entry>
</feed>