<?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=Dashboard_Widgets_Update_Details</id>
	<title>Dashboard Widgets Update Details - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://docs.callproof.com/index.php?action=history&amp;feed=atom&amp;title=Dashboard_Widgets_Update_Details"/>
	<link rel="alternate" type="text/html" href="http://docs.callproof.com/index.php?title=Dashboard_Widgets_Update_Details&amp;action=history"/>
	<updated>2026-07-15T14:19:50Z</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=Dashboard_Widgets_Update_Details&amp;diff=1550&amp;oldid=prev</id>
		<title>Ashley DeBon: Created page with &quot;== Update Dashboard Widgets ==  === Base URL === https://apimobile.callproof.com  === Endpoint === /api/v1/widgets  === Purpose === Updates the authenticated user&#039;s dashboard...&quot;</title>
		<link rel="alternate" type="text/html" href="http://docs.callproof.com/index.php?title=Dashboard_Widgets_Update_Details&amp;diff=1550&amp;oldid=prev"/>
		<updated>2026-07-15T11:54:51Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Update Dashboard Widgets ==  === Base URL === https://apimobile.callproof.com  === Endpoint === /api/v1/widgets  === Purpose === Updates the authenticated user&amp;#039;s dashboard...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Update Dashboard Widgets ==&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/v1/widgets&lt;br /&gt;
&lt;br /&gt;
=== Purpose ===&lt;br /&gt;
Updates the authenticated user&amp;#039;s dashboard widget preferences.&lt;br /&gt;
&lt;br /&gt;
The API allows a user to:&lt;br /&gt;
&lt;br /&gt;
* Enable or disable dashboard widgets.&lt;br /&gt;
* Change the display order of enabled widgets.&lt;br /&gt;
* Control the Recommended Follow Up widget.&lt;br /&gt;
* Control the Tasks widget.&lt;br /&gt;
* Control the Business Card and Business Card Image widgets.&lt;br /&gt;
&lt;br /&gt;
=== HTTP Method ===&lt;br /&gt;
PUT&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;
| Content-Type || Yes || &amp;lt;code&amp;gt;application/x-www-form-urlencoded&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;application/json&amp;lt;/code&amp;gt;.&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;
* The access token must be active and unexpired.&lt;br /&gt;
* The authenticated user and associated company account must be active.&lt;br /&gt;
* If two-factor authentication is enabled, verification must be completed for the registered device.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
==== Request Body Fields ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter !! Type !! Required !! Description&lt;br /&gt;
|-&lt;br /&gt;
| recommended_followup || integer || Yes || Controls the Recommended Follow Up widget. Use &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; to enable it or &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; to disable it.&lt;br /&gt;
|-&lt;br /&gt;
| task_widget || integer || No || Controls the Tasks widget. Use &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; to enable it or &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; to disable it. Defaults to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| business_card || integer || No || Controls the Business Card widget. Use &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; to enable it or &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; to disable it. Defaults to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| business_card_thumbnail || integer || No || Controls the Business Card Image widget. Use &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; to enable it or &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; to disable it. Defaults to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| widgets || JSON-encoded string || Yes || An array containing the widgets that should be enabled, together with their display positions.&lt;br /&gt;
|-&lt;br /&gt;
| widgets_available || JSON-encoded string || Yes || An array containing the widgets that should remain disabled and available for selection.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Enabled Widget Entry Fields ====&lt;br /&gt;
Each object within &amp;lt;code&amp;gt;widgets&amp;lt;/code&amp;gt; contains:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field !! Type !! Required !! Description&lt;br /&gt;
|-&lt;br /&gt;
| id || integer || Yes || The widget type&amp;#039;s unique identifier.&lt;br /&gt;
|-&lt;br /&gt;
| position || integer || Yes || The widget&amp;#039;s desired display position.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Available Widget Entry Fields ====&lt;br /&gt;
Each object within &amp;lt;code&amp;gt;widgets_available&amp;lt;/code&amp;gt; contains:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field !! Type !! Required !! Description&lt;br /&gt;
|-&lt;br /&gt;
| id || integer || Yes || The unique identifier of a widget that should be disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Widget Configuration Rules ====&lt;br /&gt;
* &amp;lt;code&amp;gt;widgets&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;widgets_available&amp;lt;/code&amp;gt; cannot both be empty.&lt;br /&gt;
* A widget must not appear in both collections.&lt;br /&gt;
* Every enabled widget must have a corresponding position.&lt;br /&gt;
* The number of enabled widget IDs must match the number of supplied positions.&lt;br /&gt;
* Widget positions are applied in the same order as entries in the &amp;lt;code&amp;gt;widgets&amp;lt;/code&amp;gt; array.&lt;br /&gt;
&lt;br /&gt;
=== Successful Response (200) ===&lt;br /&gt;
Confirms that the authenticated user&amp;#039;s enabled widgets, disabled widgets, display order, and dedicated widget settings were updated successfully.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Response Field !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| clientStatusCode || integer || Business-level response status. A successful update returns &amp;lt;code&amp;gt;200&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| user_id || integer || The authenticated user&amp;#039;s unique identifier.&lt;br /&gt;
|-&lt;br /&gt;
| company_id || integer || The company associated with the authenticated user.&lt;br /&gt;
|-&lt;br /&gt;
| message || string || Confirmation message. The successful value is &amp;lt;code&amp;gt;widgets updated successfully&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| uri || string || The URL of the request.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Error Responses ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! HTTP Status Code !! Client Status Code !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 200 || 401 || Both &amp;lt;code&amp;gt;widgets&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;widgets_available&amp;lt;/code&amp;gt; are empty.&lt;br /&gt;
|-&lt;br /&gt;
| 200 || 401 || A required enabled or available widget collection is missing.&lt;br /&gt;
|-&lt;br /&gt;
| 200 || 401 || The number of enabled widgets does not match the number of supplied positions.&lt;br /&gt;
|-&lt;br /&gt;
| 200 || 401 || The same widget appears in both enabled and available collections.&lt;br /&gt;
|-&lt;br /&gt;
| 200 || 401 || Two-factor authentication is required but has not been completed for the registered device.&lt;br /&gt;
|-&lt;br /&gt;
| 401 || 401 || The Bearer token is missing or invalid.&lt;br /&gt;
|-&lt;br /&gt;
| 401 || 401 || The access token has expired.&lt;br /&gt;
|-&lt;br /&gt;
| 401 || 401 || The authenticated user or company account is disabled.&lt;br /&gt;
|-&lt;br /&gt;
| 401 || 401 || A required client application update must be installed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Error Response Fields ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Response Field !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| clientStatusCode || integer || The business-level error status.&lt;br /&gt;
|-&lt;br /&gt;
| error.code || integer || The business error code.&lt;br /&gt;
|-&lt;br /&gt;
| error.message || string || A plain-language explanation of the widget update failure.&lt;br /&gt;
|-&lt;br /&gt;
| uri || string || The URL of the request.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Common Error Codes ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Error Code !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 1500 || Authentication, authorization, widget validation, or two-factor verification failed.&lt;br /&gt;
|-&lt;br /&gt;
| 1800 || The user or company account is disabled.&lt;br /&gt;
|-&lt;br /&gt;
| 8000 || The access token has expired.&lt;br /&gt;
|-&lt;br /&gt;
| 9000 || A required client application update is available.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ashley DeBon</name></author>
		
	</entry>
</feed>