Modern CRM with benefits
Free trial
System Status

API Reference - Contacts

Preamble

The Solve360 External API is implemented over HTTP and is RESTful. Every item has its own URI and is manipulated in isolation.

You will normally send your Request data in XML format, but we understand JSON and form encoded data just as well. If you want to use a non-XML request format simply set the HTTP Content-type header to either application/json or application/x-www-form-urlencoded. Conversely, we will normally send response data in XML form unless you set the HTTP Accepts header to application/json.

To receive a response in JSON with padding (JSONP) format simply pass a 'callback' parameter in the query string. For example, appending callback=myFunction to your request will result in a response body of: myFunction(...). Callbacks may only contain alphanumeric characters and underscores; any invalid characters will be stripped.

Access to features and data is limited to the actual user account being used to access the API.

To help you get get going quickly lists of all Field Names, Category Tag IDs and Ownership IDs specific to your organization are provided within your user account under: Workspace, My Account, API Reference.

Date/time is always reported in UTC and formatted according to ISO 8601. When saving date/time data values must first be converted from local time to UTC and follow one of these formats: 2004-02-12T15:19:21+00:00 (ISO 8601), 2004-02-12 15:19:21, or just 2004-02-12.

Interface Summary at https://secure.solve360.com

URIHTTP Methods
/contacts/[GET, POST]
/contacts/{contactId}/[GET, PUT, DELETE]
/contacts/categories/[POST, GET]
/contacts/fields/[GET]
/ownership/[GET]
/contacts/{activitySegmentName}/[POST]
/contacts/{activitySegmentName}/{activityId}/[PUT, DELETE]

Methods

Create
POST https://secure.solve360.com/contacts
Creates a new contact.
Request
curl -'{userEmail}:{userApiToken}' -X POST -'Content-Type: application/xml' -'<request><firstname>Aaron</firstname><lastname>Baileys</lastname><categories><add><category>315890</category></add></categories><ownership>83421</ownership></request>' https://secure.solve360.com/contacts 

Parameters

  • there are no required fields
  • ownership will be the id of the current user if not otherwise provided, to share the item set <ownership>{groupId}</ownership>
  • to add the item to one or more category tags use <categories><add><category>{categoryTagId}</category>...</add></categories>
  • to link the item to one or more contacts, companies or project blogs use <relateditems><add><relatedto><id>{relatedtoid}</id><note>{how they relate}</note></relatedto>...</add></relateditems>
Response
...
<
response>
  ...
  <
status>success</status>
</
response
Update
PUT https://secure.solve360.com/contacts/{contactId}/
Updates an existing contact.
Request
curl -'{userEmail}:{userApiToken}' -X PUT -'Content-Type: application/xml' -'<request><businessemail>support@workplate.com</businessemail><categories><add><category>53966</category></add></categories></request>' https://secure.solve360.com/contacts/31507 

Parameters

  • there are no required fields
  • ownership will be the id of the current user if not otherwise provided, to share the item set <ownership>{groupId}</ownership>
  • to add or remove the item to one or more category tags use <categories><add><category>{categoryTagId}</category> ...</add><remove><category>{categoryTagId}</category>...</remove></categories>
  • to link or unlink the item to one or more contacts, companies or project blogs use <relateditems><add><relatedto> <id>{relatedtoid}</id></relatedto>...</add><remove><relatedto><id>{relatedtoid}</id></relatedto>...</remove></relateditems>
Response
...
<
response>
  <
status>success</status>
</
response
Show
GET https://secure.solve360.com/contacts/{contactId}/
Shows all data related to an existing contact including companies, related-to, category tags and all activities (excluding email messages).
Request
curl -'{userEmail}:{userApiToken}' -X GET https://secure.solve360.com/contacts/31507 
Response
...
<
response>
  <
item>
    <
id>31507</id>
    <
name>Aaron Baileys</name>
    <
typeid>1</typeid>
    <
created>2009-06-20T14:49:39+00:00</created>
    <
viewed>2009-06-20T15:13:07+00:00</viewed>
    <
updated>2009-06-20T15:12:09+00:00</updated>
    <
ownership>12830</ownership>
    <
flagged>1</flagged>
    <
fields>
      <
businessphonedirect>(382853-8544</businessphonedirect>
      <
homephone>(333934-9392</homephone>
      <
cellularphone>(333828-4633</cellularphone>
      <
businessfax>(111222-3333</businessfax>
      <
firstname>Aaron</firstname>
      <
custom329972>7363273</custom329972>
      <
assignedto>53936</assignedto>
      <
businessaddress>1710840 7th AveSW
      Calgary
Alberta</businessaddress>
      <
businessphonemain>(580648-9094</businessphonemain>
      <
lastname>Baileys</lastname>
      <
custom18432>Farm</custom18432>
      <
jobtitle>Maintenance Mechanic</jobtitle>
      <
background>
      
Referred by Davidhe's built three other homes in the valley.<br>
      </background>
      <businessemail>support@workplate.com</businessemail>
      <website>www.clientsite.com</website>
    </fields>
  </item>
  <activities>
    <id603944>
      <level>1</level>
      <cn>Task List Title</cn>
      <created>2009-06-20T14:59:18+00:00</created>
      <viewed>2009-06-20T15:32:37+00:00</viewed>
      <updated>2009-06-20T15:12:09+00:00</updated>
      <flagged/>
      <typeid>22</typeid>
      <parent>603938</parent>
      <creatorid>28230</creatorid>
      <creatorname>Steve Ireland</creatorname>
      <position>1</position>
      <fields>
        <completed>0</completed>
        <description>task list description</description>
        <title>Task List Title</title>
      </fields>
      <modificatorid>28230</modificatorid>
      <modificatorname>Gerald Black</modificatorname>
      <id>603944</id>
    </id603944>
  </activities>
  <categories>
    <category>
      <id>568907</id>
      <name>New Prospect</name>
    </category>
    <category>
      <id>315890</id>
      <name>Qualified Prospect</name>
    </category>
  </categories>
  <relateditems>
    <relatedto>
      <id>45531</id>
      <typeid>1</typeid>
      <name>Brenda Arnett</name>
      <note>Spouse</note>
    </relatedto>
    <relatedto>
      <id>31358</id>
      <typeid>40</typeid>
      <name>Systectro</name>
      <note>Employee</note>
    </relatedto>
    <relatedto>
     <id>31477</id>
      <typeid>40</typeid>
      <name>Inconactron Technology</name>
      <note>2001-2006</note>
    </relatedto>
    <relatedto>
      <id>31404</id>
      <typeid>40</typeid>
      <name>Exactratems Consulting</name>
      <note>Board member</note>
    </relatedto>
    <relatedto>
      <id>46335</id>
      <typeid>1</typeid>
      <name>Steve Austin</name>
      <note>brother</note>
    </relatedto>
  </relateditems>
  <status>success</status>
</response> 
Destroy
DELETE https://secure.solve360.com/contacts/{contactId}/
Deletes a contact.
Request
curl -'{userEmail}:{userApiToken}' -X DELETE https://secure.solve360.com/contacts/31507 
Response
...
<
response>
  <
status>success</status>
</
response
List
GET https://secure.solve360.com/contacts
Returns a collection of contacts that match the requested criteria.
Request
curl -'{userEmail}:{userApiToken}' --X GET -'Content-Type: application/xml' -'result.xml' -'<request><layout>1</layout><searchmode>Cany</searchmode><searchvalue>aaron</searchvalue><filtermode></filtermode><filtervalue></filtervalue><special></special><limit>100</limit><start></start><sortfield></sortfield><sortdir></sortdir></request>' https://secure.solve360.com/contacts 

Parameters

AttributeDescriptionAccepted values
layoutOutput summary fields or all fields[0,1]
fieldslistList fields to output when layout = 1fieldname (delimited by comma)
categoriesOutput categories when layout = 1[0,1]
filtermodePrimary search context[flagged, assigned, nocategory, viewed, created, updated, notviewed, notupdated, duetoday, duesoon, tasksoverdue, owner, category, archived, byphone (any phone field), byemail (any email field)]
filtervalue{string}
specialResult must match any specified categories or all specified categories[AND, OR]
searchmodeSub filter search context[Sany, Cany, Canyitem, Sanyitem, Canyjournal, Sanyjournal, C{fieldId}, S{fieldId}, E{fieldId}, N{fieldId}]
S = field starts with, C = field contains, E = field is empty, N = field is not empty
searchvalue{string}
limitHow many contacts to display per page{integer}
startRecord to start from (zero based){integer}
sortfieldWhich field is used for sorting[name, created, flagged, update_time]
sortdirSort direction[ASC, DESC]
Response
...
<
response>
  <
id31507>
    <
id>31507</id>
    <
name>Aaron Baileys</name>
    <
parentid>84265</parentid>
    <
flagged>1</flagged>
    <
businessphonedirect>(382853-8544</businessphonedirect>
    <
businessfax>(111222-3333</businessfax>
    <
cellularphone>(333828-4633</cellularphone>
    <
homephone>(333934-9392</homephone>
    <
businessphonemain>(580648-9094</businessphonemain>
    <
businessaddress>1710840 7th AveSW
    Calgary
Alberta</businessaddress>
    <
assignedto>53936</assignedto>
    <
custom329972>7363273</custom329972>
    <
firstname>Aaron</firstname>
    <
lastname>Baileys</lastname>
    <
custom18432>Farm</custom18432>
    <
jobtitle>Maintenance Mechanic</jobtitle>
    <
background>
    
Referred by Davidhe's built three other homes in the valley.<br>
    </background>
    <businessemail>support@workcompedge.com</businessemail>
    <website>www.clientsite.com</website>
    <company>
    Exactratems Consulting, Inconactron Technology, Systectro
    </company>
    <created>2008-08-04T00:00:10+00:00</created>
    <viewed>2009-06-23T00:50:35+00:00</viewed>
    <updated>2009-06-18T21:53:24+00:00</updated>
  </id31507>
  <id34943>
    <id>34943</id>
    <name>Aaron Grant</name>
    <parentid>28227</parentid>
    <flagged/>
    <firstname>Aaron</firstname>
    <businessemail>Aaron.E.Grant@spambob.com</businessemail>
    <jobtitle>Design Drafter Cad/Cam</jobtitle>
    <lastname>Grant</lastname>
    <businessaddress>4437, Grand Avenue
    Winter Park FL 32789
    US</businessaddress>
    <businessphonemain>(407) 713-0145</businessphonemain>
    <company>Acle</company>
    <created>2008-08-04T00:03:05+00:00</created>
    <viewed>2009-01-19T15:49:29+00:00</viewed>
    <updated>2008-08-31T18:41:42+00:00</updated>
  </id34943>
  ...
  <count>21</count>
  <status>success</status>
</response> 
Create Category Tags
POST https://secure.solve360.com/contacts/categories/
Creates a category tag
Request
curl -'{userEmail}:{userApiToken}' -X POST -'Content-Type: application/xml' -'<request><name>A New Category</name></request>' https://secure.solve360.com/contacts/categories 
Response
...
<
response>
  <
id>136957</id>
  <
status>success</status>
</
response
List Category Tags
GET https://secure.solve360.com/contacts/categories/
Returns a collection of available contact tags
Response
...
<
response>
  <
categories>
    <
category>
      <
id>315890</id>
      <
name>1. Lead</name>
    </
category>
    <
category>
      <
id>568907</id>
      <
name>2. Prospect</name>
    </
category>
    <
category>
      <
id>355922</id>
      <
name>3. High Value Prospect</name>
    </
category>
    <
category>
      <
id>471194</id>
      <
name>4. Client</name>
    </
category>
  </
categories>
  <
status>success</status>
</
response
List Fields
GET https://secure.solve360.com/contacts/fields/
Returns a collection of available contact fields
Response
...
<
response>
  <
fields>
    <
field>
      <
id>9793</id>
      <
name>firstname</name>
      <
label>First Name</label>
      <
type/>
    </
field>
    <
field>
      <
id>9794</id>
      <
name>lastname</name>
      <
label>Last Name</label>
      <
type/>
    </
field>
    <
field>
      <
id>3530279</id>
      <
name>custom3530279</name>
      <
label>Elected Amenities</label>
      <
type>text</type>
      <
categories>
        <
category>7940151</category>
        <
category>11948598</category>
      </
categories>
    </
field>
    <
field>
      <
id>1473638</id>
      <
name>custom1473638</name>
      <
label>Floor plan</label>
      <
type>select</type>
      <
options>
        <
option>Single</option>
        <
option>Double</option>
        <
option>Split</option>
      </
options>
      <
categories>
        <
category>7940151</category>
      </
categories>
    </
field>
  </
fields>
  <
status>success</status>
</
response
List Ownership
GET https://secure.solve360.com/ownership
Returns a collection of available users and workgroups
Response
...
<
response>
  <
users>
    <
user>
      <
id>28227</id>
      <
name>Terry Black</name>
      <
email>tblack@northrock.com</email>
      <
preventlogin>0</preventlogin>
      <
preventprivatedata>0</preventprivatedata>
      <
administrator>1</administrator>      
    </
user>
    <
user>
      <
id>53936</id>
      <
name>Mike Bautista</name>
      <
email>mbautista@northrock.com</email>
      <
preventlogin>0</preventlogin>
      <
preventprivatedata>1</preventprivatedata>
      <
administrator>0</administrator>      
    </
user>    
  </
users>
  <
groups>
    <
group>
      <
id>53915</id>
      <
name>Northrock</name>
      <
email>northrock@northrock.solve360.com</email>
    </
group>
    <
group>
      <
id>83421</id>
      <
name>Customer Service</name>
      <
email>customerservice@northrock.solve360.com</email>
    </
group>
  </
groups>  
  <
status>success</status>
</
response
Create Activity
POST https://secure.solve360.com/contacts/{activitySegmentName}/
Creates a new activity linked to a parent item. Refer to the “Supported Activity Hierarchies” chart below to see what each activity type can be linked to.
Request (e.g. create a task within tasklist having id 353687)
curl -'{userEmail}:{userApiToken}' -X POST -'Content-Type: application/xml' -'<request><parent>353687</parent><data><title>Inspect Property</title><duedate>2009-10-11</duedate><priority>3</priority></data></request>' https://secure.solve360.com/contacts/task 

Parameters

  • providing <after>{id}</after> or <before>{id}</before> will position the created activity relative to the specified activity
  • <parent>{parentId}</parent> is the parent to which we attaching the activity to and is required

Activity Definitions

ActivitySegment NameFields
Attached Fileattachmentfile* (file)
Callcalldetails (text)
dateoccured (datetime)
duration (integer, minutes)
Commentcommentposttext (text)
Constant Contactconstantcontactwidget contactid (integer [from Constant Contact])
Eventeventtitle (text)
details (text)
completed (integer, [0, 1], new events cannot be created as completed)
timestart (date or datetime)
timeend (date or datetime)
location (text)
eventtype (text, [keep, remove])
priority (ingeter, [0-6])
noticenow (integer, [0, 1])
remindtime (integer, [0, 1])
attendees (integers delimited by comma, [user id])
externalattendees (email addresses delimited by comma)
repeats (text, [{blank}, daily, weekly, monthly, yearly])
repeatevery (integer when repeats != weekly)
repeatuntil (date)
repeatinterval (integers separated by comma when repeats = weekly, days of week 0-6)
Filefilecaption (text)
file (must be uploaded as form-encoded data)
Follow-upfollowupdetails (text)
assignedto (integer, [group id, user id])
nodate (integer, [0, 1])
duedate (date, if nodate = 0)
completed (integer, [0, 1, new follow-ups cannot be created as completed])
sendnotification (integer, [0, 1])
remindtime (integer, [minutes])
Freshbooksfreshbookswidgetclientid (integer [from Freshbooks])
Google Docgoogledoctitle (text)
url (text)
Linked Emailslinkedemails(no fields are provided)
MailChimpmailchimpwidget
Notenotedetails (text)
Opportunityopportunitydescription (text)
valueunit (integer)
valuecurrency (text, [USD, EUR, GBP, CAD, AUD, BRL, CHF, CNY, DKK, HKD, HRK, HUF, INR, JPY, MXN, MYR, NOK, NZD, RUB, SEK, SGD, THB, ZAR])
valueinterval (text, [fixed price, per hour, per day, per week, per month, per quarter, per month, per quarter, per year])
valueduration (integer)
stage (integer, 0-100)
probability (integer, 0-100)
closingdate (date)
responsible (integer, group or user id)
status (text, [Discussion, Pending, Won, Lost, On-hold])
Photophotocaption (text)
file
Photo listphotolisttitle (text)
Separatorseparatortitle (text)
hidesiblings (integer, [0, 1])
Scheduled Emailscheduledemailto (text, [user@example.com or John Doe , may be more than one separated by comma])
cc (text, [same as to field])
bcc (text, [same as to field])
from (text, [user@example.com or John Doe )
subject (text)
priority (integer, [0=low, 1=normal, 2=high])
body (string, [if html is provided the text part is created automatically])
scheduledtime (date))
Tasktasktitle (text)
details (text)
assignedto (integer, [group id, user id])
nodate (integer, [0, 1])
duedate (date, if nodate = 0)
completed (integer, [0, 1], new tasks cannot be created as completed)
sendnotification (integer, [0, 1])
remindtime (integer, [minutes])
priority (integer, [0-6])
billed (integer, [0, 1])
ignoreweekends (integer, [0, 1])
timespent (integer)
timespentmeasure (text, [days, hours, weeks])
timeremains (integer)
timeremainsmeasure (text, [days, hours, weeks])
invoiced (text)
notifyoncomplete (text, [email address(es) delimited by comma])
Task listtasklisttitle (text)
description (text)
nodate (integer, [0, 1])
milestonedate (date, if nodate = 0)
completed (integer, [0, 1]
Template of activitiestemplatetemplateid (integer, [template id])
Time recordtimerecorddate (date)
person (integer, [group id, user id])
hours (number)
billable (integer, [0, 1])
details (text)
invoiced (text)
Websitewebsitecaption (text)
url (text)
Xeroxerowidgetcontactid (integer [from Xero])
Zendeskzendeskwidgetuserid (integer [From Zendesk])
Required field

Supported Activity Hierarchies

Parent {itemId} [> Child] [> Child]
Contact > Call > Comment
Contact > Constant Contact > Comment
Contact > Event > Comment
Contact > File > Comment
Contact > Follow-up > Comment
Contact > FreshBooks > Comment
Contact > Google Doc > Comment
Contact > Linked emails (one per parent) > Comment
Contact > MailChimp > Comment
Contact > Note > Comment
Contact > Opportunitiy > Comment
Contact > Photolist > Photo
Contact > Photolist > Comment
Contact > Section > Comment
Contact > Scheduled Email
Contact > Scheduled Email > Comment
Contact > Scheduled Email > Attached File
Contact > Tasklist > Task
Contact > Tasklist > Task > Comment
Contact > Tasklist > Task > Time record
Contact > Tasklist > Comment
Contact > Template of activities
Contact > Website > Comment
Contact > Xero > Comment
Contact > Zendesk > Comment
Response
...
<
response>
  <
id>589696</id>
  <
data>
    <
title>Inspect Property</title>
    <
duedate>2009-10-11</duedate>
    <
priority>3</priority>
  </
data>
  <
created>Jun 152009 22:19:29</created>
  <
status>success</status>
</
response
Update Activity
PUT https://secure.solve360.com/contacts/{activitySegmentName}/{activityId}
Updates an activity related to a contact.
Request (e.g. change due date and priority for task with id {activityId})
curl -'{userEmail}:{userApiToken}' -X PUT -'Content-Type: application/xml' -'<request><data><duedate>2009-12-11</duedate><priority>5</priority></data></request>' https://secure.solve360.com/contacts/task/589696 

Parameters

  • providing <after>{id}</after> or <before>{id}</before> will position the edited activity relative to the specified activity
  • providing a different <parent>{id}</parent> will move the activity to the specified contact, company, or project blog
Response
...
<
response>
  <
status>success</status>
</
response
Destroy Activity
DELETE https://secure.solve360.com/contacts/{activitySegmentName}/{activityId}/
Deletes an activity related to a contact.
Request
curl -'{userEmail}:{userApiToken}' -X DELETE https://secure.solve360.com/contacts/task/589696 
Response
<response>
  ...
  <
status>success</status>
</
response