IntroductionWorking With RecordsActivity ReportsLocation ServicesWebhook ManagementExamplesBatching Requests

Working With Records

The API methods and parameters are the same for all record types, i.e. Contacts, Companies, Project Blogs, and Tickets. Simply use the appropriate segment name for the record type. For example, if working with a:

  • Contact = https://secure.solve360.com/contacts/…
  • Company = https://secure.solve360.com/companies/…
  • Project Blog = https://secure.solve360.com/projectblogs/…
  • Ticket = https://secure.solve360.com/tickets/…

The following examples will refer to /contacts/…

Interface Summary

https://secure.solve360.com/
URI HTTP 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.

Example request

curl -u '{userEmail}:{userApiToken}' -X POST -H 'Content-Type: application/xml' -d '<request><firstname>Aaron</firstname><lastname>Baileys</lastname><categories><add><category>315890</category></add></categories><ownership>83421</ownership></request>' https://secure.solve360.com/contacts 

Example response

…
<response>
  …
  <status>success</status>
</response>

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>

Update

PUT https://secure.solve360.com/contacts/{contactId}/

Updates an existing contact.

Example request

curl -u '{userEmail}:{userApiToken}' -X PUT -H 'Content-Type: application/xml' -d '<request><businessemail>support@workplate.com</businessemail><categories><add><category>53966</category></add></categories></request>' https://secure.solve360.com/contacts/31507

Example response

…
<response>
  ...
  <status>success</status>
</response>

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>

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).

Example request

curl -u '{userEmail}:{userApiToken}' -X GET https://secure.solve360.com/contacts/31507

Example 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>(382) 853-8544</businessphonedirect>
      <homephone>(333) 934-9392</homephone>
      <cellularphone>(333) 828-4633</cellularphone>
      <businessfax>(111) 222-3333</businessfax>
      <firstname>Aaron</firstname>
      <custom329972>7363273</custom329972>
      <assignedto>53936</assignedto>
      <businessaddress>1710, 840 7th Ave. SW
      Calgary, Alberta</businessaddress>
      <businessphonemain>(580) 648-9094</businessphonemain>
      <lastname>Baileys</lastname>
      <custom18432>Farm</custom18432>
      <jobtitle>Maintenance Mechanic</jobtitle>
      <background>
      Referred by David, he'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.

Example request

curl -u '{userEmail}:{userApiToken}' -X DELETE https://secure.solve360.com/contacts/31507  `

Example response

…
<response>
  <status>success</status>
</response>

List

GET https://secure.solve360.com/contacts

Returns a collection of contacts that match the requested criteria.

Example request

curl -u '{userEmail}:{userApiToken}' -X GET -H 'Content-Type: application/xml' -d '<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

Example response

…
<response>
  <id31507>
    <id>31507</id>
    <name>Aaron Baileys</name>
    <parentid>84265</parentid>
    <flagged>1</flagged>
    <businessphonedirect>(382) 853-8544</businessphonedirect>
    <businessfax>(111) 222-3333</businessfax>
    <cellularphone>(333) 828-4633</cellularphone>
    <homephone>(333) 934-9392</homephone>
    <businessphonemain>(580) 648-9094</businessphonemain>
    <businessaddress>1710, 840 7th Ave. SW
    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 David, he'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>

Parameters

layout Output summary fields or all fields

[0,1]
fieldslist List fields to output when layout = 1

fieldname (delimited by comma)
categories Output categories when layout = 1

[0,1]
filtermode Primary search context

[flagged, assigned, nocategory, viewed, created, updated, updatedafter, notviewed, notupdated duetoday, duesoon, tasksoverdue, owner, category, archived, unsent, byphone (any phone field), byemail (any email field)]
filtervalue {string}
special Result must match any specified categories or all specified categories

[AND, OR]
searchmode Sub 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}
limit How many contacts to display per page

{integer} (default = 50, maximum = 5,000)
start Record to start from (zero based)

{integer}
sortfield Which field is used for sorting

[name, created, flagged, update_time]
sortdir Sort direction

[ASC, DESC]

Create Category Tags

POST https://secure.solve360.com/contacts/categories/

Creates a category tag.

Example request

curl -u '{userEmail}:{userApiToken}' -X POST -H 'Content-Type: application/xml' -d '<request><name>A New Category</name></request>' https://secure.solve360.com/contacts/categories

Example 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.

Example 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.

Example 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.

Example 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>

Parameters

deleted Include deleted users and groups

[1]

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.

Example request (e.g. create a task within tasklist having id 353687)

curl -u '{userEmail}:{userApiToken}' -X POST -H 'Content-Type: application/xml' -d '<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

Example response

…
<response>
  <id>589696</id>
  <data>
    <title>Inspect Property</title>
    <duedate>2009-10-11</duedate>
    <priority>3</priority>
  </data>
  <created>Jun 15, 2009 22:19:29</created>
  <status>success</status>
</response>

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
Activity Segment Name Fields Type ID
Attached File attachmentfile * (file) 55
Comment comment posttext (text) 91
Deal opportunity description (text)
valueunit (decimal)
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])
32
File file caption (text)
file (must be uploaded as form-encoded data)
23
Follow-up followup details (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])
6
Google Doc googledoc title (text)
url (text)
37
Interaction call details (text)
dateoccured (datetime)
duration (integer, minutes)
73
Linked Emails linkedemails fields (fieldnames delimited by comma)
keywords (text delimited by comma)
exceptions (text delimited by comma)
90
Note note details (text) 3
Photo photo caption (text)
file
24
Photo list photolist title (text) 31
Task task title (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])
14
Task list tasklist title (text)
description (text)
nodate (integer, [0, 1])
milestonedate (date, if nodate = 0)
completed (integer, [0, 1]
22
Time record timerecord date (date)
person (integer, [group id, user id])
hours (number)
billable (integer, [0, 1])
details (text)
invoiced (text)
15
Website website caption (text)
url (text)
7
Xero xerowidget contactid (integer [from Xero]) 96
Zendesk zendeskwidget userid (integer [From Zendesk]) 97

Required

Supported Activity Hierarchies
Parent {itemId} [> Child] [> Child]
Contact > Deal > Comment
Contact > File > Comment
Contact > Follow-up > Comment
Contact > Google Doc > Comment
Contact > Interaction > Comment
Contact > Interaction > Timerecord
Contact > Linked emails (one per parent) > Comment
Contact > Note > Comment
Contact > Photolist > Photo
Contact > Photolist > Comment
Contact > Tasklist > Comment
Contact > Tasklist > Task
Contact > Tasklist > Task > File
Contact > Tasklist > Task > File > Comment
Contact > Tasklist > Task > Google Doc
Contact > Tasklist > Task > Google Doc > Comment
Contact > Tasklist > Task > Comment
Contact > Tasklist > Task > Time record
Contact > Website > Comment
Contact > Xero > Comment
Contact > Zendesk > Comment

Update Activity

PUT https://secure.solve360.com/contacts/{activitySegmentName}/{activityId}

Updates an activity related to a contact.

Example request e.g. change due date and priority for task with id {activityId}

curl -u '{userEmail}:{userApiToken}' -X PUT -H 'Content-Type: application/xml' -d '<request><data><duedate>2009-12-11</duedate><priority>5</priority></data></request>' https://secure.solve360.com/contacts/task/589696  

Example response

…
<response>
  <status>success</status>
</response>

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

Destroy Activity

DELETE https://secure.solve360.com/contacts/{activitySegmentName}/{activityId}/

Deletes an activity related to a contact.

Example request

curl -u '{userEmail}:{userApiToken}' -X DELETE https://secure.solve360.com/contacts/task/589696

Example response

…
<response>
  <status>success</status>
</response>`