API Developers Guide

From RangerMSP Wiki - PSA software for MSPs and IT services providers
Jump to navigation Jump to search

CommitCRM provides various tools in order to read/add/update information in the CommitCRM database. These tools include: Programming API and API by Email for updating the database, and an ODBC Link for pulling information from the database. The Commit API provides developers with a set of APIs which allow them to perform database transactions in order to add and update records in the CommitCRM database. The API can be used as a Programming API by embedding code which uses the API functions, or as an API by Email which allows you to send XML formatted emails which will be processed and executed.

  • Programming API
    The Commit API provides developers with a set of API functions which can be used in VB, C++, Delphi and any other programming language that lets you use a standard Windows dll file. It provides the ability to create a connection to CommitCRM's database, add new records to the database and update them.
  • API by Email
    The API by Email allows you to send XML formatted emails which contain database transactions. Commit Email Connector then pulls the incoming XML emails from your POP3 mail server, processes the email and performs the transactions in the XML transaction. XML formatted email gives you an API for the CommitCRM database, which allows you to perform many actions such as linking to external systems, receiving forms submitted from your web site, and more.
  • ODBC Link
    While the API provides the means for adding and updating information in the database, you should use ODBC Link in order to read information from the database. CommitCRM uses an open database structure and allows other applications to access the database using ODBC (Open Data Base Connectivity) for read-only purposes.

    You can use ODBC Link in order to read data from the database and integrate it with an external system (i.e. Crystal reports, or any other application). You may also use the ODBC Link to read Database Record IDs and update existing records. This will be discussed later in this document.


Glossary

  • Commit API (Application Programming Interface) - CommitCRM provides an API which allows you to add and update records in the CommitCRM database. The API includes a list of possible actions and parameters.
  • ODBC Link (Open Data Base Connectivity) - ODBC is a function library which provides a common API for ODBC compliant databases. CommitCRM provides an open database and allows other applications to access the database using ODBC for read-only purposes.
  • Record - Each entity in the CommitCRM database (such as Ticket, Account, Asset, Item, Appointment, Task, etc.) is considered a "record".
  • Database fields - Each record contains a list of fields, each of which holds the record's data.
  • Transaction – All additions or updates to record in the database are done by using a transaction. Each transaction includes the operation you wish to perform, the data type you wish to add/update and the additional parameters (database fields and their values).
  • Transaction Parameters - Each transaction contains the parameters for performing the transaction: record type, list of database fields and a list of the values to be updated in these fields.
  • External Application - This refers to the external program which integrates with CommitCRM in order to update the database. This name should be passed when performing updates to the database, and it will be saved in the CommitCRM record to indicate who performed the changes.
  • Record ID (REC ID) - Each record in CommitCRM has a unique Record ID which is created when adding the record to the database. Every ID is 20 characters and should be transferred with the API transaction when you need to update an existing record.

Using Commit API

Commit API allows you to add and update records in the CommitCRM database, such as Accounts, Tickets, Assets, Items, Appointments, Tasks and more.

The updates are performed using transactions, where each transaction includes the operation you wish to perform, the data type you wish to add/update, and any additional parameters (i.e. record type, database fields and their values).

Every record added to the system is assigned a unique Record ID (REC ID) which is the database identifier for this record.

The Commit API allows you to perform the following operations.

  • Add new records - if no Record ID is passed in the transaction, the API assumes that this is a new record, adds it to the system and creates a new Record ID for it.
  • Update existing records - if the record ID is passed in the transaction, and the record exists, the system will update the record with the information in the transaction.

In both cases, the system will try to set default values for fields which do not exist in the incoming transaction. If it fails, the action will fail with an error.

Note that in order to read data from the CommitCRM database, you should use the ODBC Link, which provides a read-only link for the CommitCRM database. See more details in Retrieving data using ODBC.

Workflow

Following is a sample work-flow, which demonstrates the process of adding a new Account, and then adding a new Ticket to this Account, using the Commit API.

Note that the API can return two parameters to the External Application:

  1. The Commit REC ID - when adding new records to the database, this will contains the new record ID.
  2. The ExternalTransactionID (relevant for XML transaction only) - In case the external application passes a parameter to be returned with the response, the ExternalTransactionID will be returned as-is to in the response.

The External Application should keep the REC ID which is returned from the API response. This allows you to later update the existing records with new data or add records related to it (such as opening a Ticket under the Account).


Updating existing records

In order to update an already existing record in the database (e.g. add a Ticket to an Account, update an Account's phone number, add a new Charge to an existing Ticket, etc.), you should pass the record's unique identifier to the API so it will update the existing record rather than create a new Account. The record's unique identifier is referred to as the Record ID (REC ID).

The Record ID can be obtained in the following ways:

  1. API Response (as in the flow above) - You can extract the newly created Record ID from the Email Response when adding new records with the API. This requires the developer to process the API responses, and extract the returning REC ID for each newly added record.
  2. ODBC Link - Use the ODBC Link to find relevant records (Accounts, Tickets, etc.), and read all information from the database, including the unique Record ID.
  3. Manually - from the Account's Notes tab, at the bottom, right-click the REC ID field and copy it.

Once you have obtained the Record ID you can pass the Record ID as a parameter for the API and update this record.

Programming API

The Programming API allows you access the CommitCRM database and perform transactions from within a program (using various programming language). This means you can embed code which accesses the CommitCRM database from within your own application, and add your own functionality which updates the database.

The programming API executes database transactions. Each transaction uses API methods provides by the API dll file which is located in the CommitCRM installation. Both the Programming API and the API by Email use the same dll for performing the transactions.

Note that the API provides the tools needed for adding/updating information in the database. In order to retrieve data, you should use the ODBC link which allows you to connect to the database and retrieve data directly from the tables. You can read more about it in the Retrieving data using ODBC section.

You can find more information and samples in the Code samples section.

API by Email (XML transaction)

The API by Email operates under the Commit Email Connector module, which automatically processes incoming emails arriving at a defined public email address. The Email may contain XML formatted messages which contain API transactions, and provides a full API to CommitCRM.

The Email Connector pulls incoming emails from your POP3 mail server, and processes the email. When an email containing XML formatted message is detected, the system analyzes the XML content of the email and performs the transactions written in the XML. You may set the Email Connector to send automatic replies in response to XML formatted email.

The API by Email executes database transactions. Each transaction uses API methods provided by the API dll file which is located in the CommitCRM installation. Both the Programming API and the API by Email use the same dll for performing the transactions.


Note that the API provides the tools for adding/updating information in the database. In order to retrieve data, you should use the ODBC link which allows you to connect to the database and retrieve data directly from the tables. You can read more about it in the Retrieving data using ODBC section.

You can find more information and samples in XML samples.

Retrieving data using ODBC

CommitCRM uses an open database and allows other applications to access it using ODBC (Open Data Base Connectivity) for read-only purposes. While the API provides the means for adding and updating information in the database, it is preferred to use ODBC to read information from the database.

You can use ODBC Link to read data from the database and integrate it with an external system (i.e. Crystal reports, or any other application). You may also use the ODBC Link in order to read the Database Record ID and update existing records (see Updating existing records).

Activation Notes:

  • ODBC connection is not officially supported yet, and although ODBC itself is well tested, we do not provide "pure ODBC" support.
  • NEVER use ODBC to modify or delete data; use it for READ purposes only. Modifying data should be done using the Commit API.
  • The ODBC Link can be used with your installed version of CommitCRM, and only requires installing an external driver. Before working with the API we recommend that you backup the database.
  • We also suggest that the CommitCRM application not be in use while data is being accessed with ODBC (this includes the CommitWebInterface and CommitServer services if they are in use). This may prevent data sharing issues.


Below are the database table names and their meaning:

CommitCRM Record Database Table Name
Accounts Cards
Tickets Tickets
Charges Slips
Assets Assets
Appointments Events
Tasks Events
History Notes NoteBook
Opportunities Opps
Documents Docs
Knowledge Base KBArticles

For the database fields list, please refer to API Reference Manual section. You can find detailed instructions for using the ODBC Link in the Installing ODBC Driver section.


Installing ODBC Driver

Product Overview
The Advantage ODBC Driver is an ODBC version 3 driver based on the Advantage Client Engine that provides SQL access to the Advantage Database Server. The driver provides full support for the "Minimum" ODBC SQL grammar specification, as well as many functions included in the "Core" and "Extended" grammar specifications. When used with the Advantage Database Server, ODBC users can have the application stability, performance and reduced network traffic benefits of client/server architecture.

Installation on Windows
Like other ODBC drivers, the Advantage ODBC Driver is installed and managed using the ODBC Administrator Utility. This utility works with the ODBC Driver Manager to configure ODBC data sources. At runtime, the ODBC Driver Manager works with available drivers and their configured data sources. If you have previously installed ODBC drivers, the ODBC Administrator may already be installed on your workstation. The icon for the Administrator is usually found in the Control Panel.

To install the Advantage ODBC Driver:

  1. Click here to download the Advantage ODBC setup program.
  2. Run the Setup program.
  3. Proceed through the setup windows to complete installation.

Data Source Setup for Windows
Once the Advantage ODBC Driver is installed, a data source needs to be configured to use the Advantage ODBC Driver. The data source is an entry in the Windows Registry. When a data source is defined for the Advantage Driver, all information specific to the Advantage Driver and database files is stored under the Data Source entry in the Windows 95/98/ME/ NT/2000/2003/XP Registry.
The database files and indexes must be stored on your file server, and the Advantage Database Server must be loaded in order to access the files.

The Data Source settings may be modified at any time. Using the ODBC Administrator, you may modify the Data Source and Option settings. For specific information about the screen fields see the Data Source Setup Screen.

To Setup the Data Source:

  1. From the ODBC Administrator, click Add.
  2. Highlight the Advantage SQL ODBC line, and click OK.
  3. Type a unique data source name. For example, type AdvData. This name is used by applications to reference the data source.
  4. Specify the database or data dictionary path. Type a valid path name to a mapped drive on the server where the Advantage Database Server is installed or the path and file name of your Advantage Data Dictionary. Click Browse to select a database path or check the Data Dictionary check box and then browse to select a data dictionary file. Note Multiple Advantage data sources may need to be defined for your environment. If different settings are needed for ODBC connections in one application, separate data sources may be required.
  5. Review the options and change them to your desired setup.
  6. Once the Options are reviewed and/or altered, click OK to exit and save the settings. The new data source is displayed.
  7. Click Close to exit the ODBC Administrator.

ODBC Data Source Entries for Windows
In Microsoft Windows, the entries are registry settings found on HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ (your unique data source name) or HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI (your unique data source name). Unless specified otherwise, all registry entries can be setup by the Advantage ODBC Driver setup utility. See Data Source Setup for Windows and Data Source Setup Screen for more information. ODBC Data Source Keys.

ODBC Data Source Keys
The following ODBC registry is required for the driver to load:

Registry Entry Comments
DataDirectory=data path 'data path' should be a valid path name for files locations (e.g., x:\data). This path is used to automatically select all tables in the specified directory.
DefaultType=Advantage Sets a certain type of database files to use Advantageproprietary ADT/ADI/ADM files.
ServerTypes=3 Allows the Driver to use the remote or local server

The following ODBC registry keys are optional:

Registry Entry Comments
AdvantageLocking=ON \ OFF The default is ON to use the Advantage proprietary locking.
CharSet=OEM \ ANSI The default character collation setting is ANSI. If OEM is specified, Language must be indicated as well.
Language=USA Used if CharSet=OEM.
Description=String This is provided for easier administration.
Locking=RECORD \ FILE Indicates whether updates lock the entire file or the individual records that are updated. The default is RECORD.
MaxTableCloseCache=n N is the number of tables to hold in cache when cursors are opened and closed. The default is 25.
MemoBlockSize=n N is the size of the Advantage memo blocks in tables that are created by the ODBC driver. The default value is 8 for Advantage proprietary table (ADT/ADM).
Rows=TRUE \ FALSE Select whether deleted rows are displayed. If True, deleted rows are displayed. The default is False.
TrimTrailingSpaces=TRUE \ FALSE The default is False. If True is specified, trailing spaces in character fields will be removed prior to returning the values to the application.

Samples

The Commit API allows you to add/update the following entities:

  • Accounts
  • Assets
  • Tickets
  • Charges
  • Appointments
  • Tasks
  • History Notes
  • Opportunities
  • Documents
  • Knowledge Base Articles

Each API method requires a list of parameters which contain the field names and their values. The field names are the Database field names. You can see each field's name within the application (so you can verify which field you are about to update), by right-clicking the field and selecting Field Settings > Advanced Tab > view the Tech. Rec ID field.

You can view the complete list of database fields in the API Reference Manual above.

Following are samples for using the API by Email and the Programming API. The samples are basic and provide an easy starting point.

See API Code Samples.

API Reference Manual

Following is a detailed listing of fields per entity which can be added/updated using the API. The API parameters are the same when using the Programming API or the XML API.

The API allows you to add/update the following entities:

  • Accounts
  • Assets
  • Tickets
  • Charges (and Contract-price Charges)
  • Appointments
  • Tasks
  • History Notes
  • Opportunities
  • Documents
  • Knowledge Base Articles

In the following section you will find a detailed listing of the database fields. Each table includes the fields Display name (as shows in the application), the Database Field Name (internal database field identifier) and comments.

Note that when using XML formatted messages, the database field name refers to the name to be provided within the XML token. For example, when the field name is FLDSLPQUANTITY, the XML token should look like this: <FLDSLPQUANTITY>10</FLDSLPQUANTITY>

You can find examples of adding and updating records in the database by using the database field in the Samples section.

Account Fields

The following table lists the most important parameters for adding/updating Account records. Note slight differences when adding a main account vs. adding a secondary contact.

Field Name Database Field Name Comment
Account REC ID FLDTKTCARDID The Account record ID (20 chars). The Account Rec ID can be taken from:
  1. Account Notes tab, at the bottom, rightclick the RecID field and use Copy.
    e.g. CRDVQYSOD1B4U4HZIQJJ
  2. Using ODBC to pull information from the database.
  3. From the Email Response when adding new Account with the API.
Address: Line1 FLDCRDADDRESS1
Address: Line2 FLDCRDADDRESS2
Address: Line3 FLDCRDADDRESS3
Account Manager FLDCRDASSIGNCARDID This field has two roles:
  1. When adding a main Account:
    The account manager should contain the ID of the Employee who is the account manager.
  2. When adding a secondary contact:

This field should contain the ID of the main Account to which the secondary contacted is added.

Assistant FLDCRDASSISTANT
Contract FLDCRDBCRECID The default Contract for this Account (not required)
Account Number FLDCRDCARDID2
ID FLDCRDCARDID3
Popup Message FLDCRDCARDMESSAGE
Address: City FLDCRDCITY
Address: Zip FLDCRDZIP
Company name FLDCRDCOMPANY
Contact: First & Last Name FLDCRDCONTACT
Address: State FLDCRDCOUNTRY
Creation Date FLDCRDCREATEDATE Any date format, such as DD/MM/YYYY
Created by User FLDCRDCREATEUSERID Foreign Software Name which created the account
Dear FLDCRDDEAR
Department FLDCRDDEPARTMENT
Documents Store Directory FLDCRDDOCSFOLDER
E-Mail Address 1 FLDCRDEMAIL1
E-Mail Address 2 FLDCRDEMAIL2
Account Type FLDCRDENTITYKIND When adding a Main Account = 1
When adding a secondary contact = 5
Fax Number FLDCRDFAX1
Fax Number Extension FLDCRDFAXDESC1
File as FLDCRDFULLNAME
Type FLDCRDKIND
Last Name FLDCRDLASTNAME
Notes FLDCRDNOTES
Field FLDCRDPERSONID
Phone 1 Ext. FLDCRDPHNDESC1
Phone 2 Ext. FLDCRDPHNDESC2
Phone 3 Ext. FLDCRDPHNDESC3
Phone 4 Ext. FLDCRDPHNDESC4
Phone 1 FLDCRDPHONE1
Phone 2 FLDCRDPHONE2
Phone 3 FLDCRDPHONE3
Phone 4 FLDCRDPHONE4
Region Region FLDCRDREGIONCODE
Popup Message: Display Indication FLDCRDSHOWMESSAGE
Address: Country FLDCRDSTATE
Sub-Contact Code FLDCRDSUBCODE
Salutation FLDCRDSUFFIX
Tax1 FLDCRDTAXCODE1
Tax2 FLDCRDTAXCODE2
Notes FLDCRDNOTES
Title FLDCRDTITLE
Last Updated by FLDCRDUPDATEUSERID When performing updates on existing Account - pass the Foreign Software Name which performs the update.
Web Address 1 FLDCRDURL1
Web Address 2 FLDCRDURL2
Status FLDCRDUSER1
Field1 FLDCRDUSER2
Field2 FLDCRDUSER3
Field3 FLDCRDUSER4
Field4 FLDCRDUSER5

Ticket Fields

The table below lists the most important Ticket parameters and behavior:

Field Name Database Field Name Comment
Account REC ID FLDTKTCARDID The Account record ID (20 chars). The Account Rec ID can be taken from:
  1. Account Notes tab, at the bottom by rightclicking the REC ID field and selecting Copy
  2. ODBC to pull information from the database
  3. The automated email response when adding a cnew Account with the API
Contact REC ID FLDTKTCONTACTID The Contact for this Account. If not provided, the main Contact for the Account is taken.
Contract REC ID FLDTKTBCRECID The Contract ID. If not supplied, will be taken from the Account's default contract.
Emp. REC ID FLDTKTWORKERID The worker ID to be linked to the Ticket. Must be an active employee. This is an optional parameter. If not passed, the system default will be used.
Priority FLDTKTPRIORITY The ticket priority. If not passed in the transaction, the default value for new Tickets will be used.

Immediate = 10
High = 20
Normal = 30
Low = 40
Not Applicable= 50

Ticket Number FLDTKTTICKETNO The Ticket number. If passed, must be an existing Ticket, and this will update the Ticket with the details in the transaction.
Description FLDTKTPROBLEM This is the Ticket Description. This is a mandatory field, which must contain text.
Ticket Type FLDTKTKIND Ticket Type (optional). The Ticket Type string should be passed. If not provided, default is used.
Source FLDTKTSOURCE
Estimated Duration Time FLDTKTSCHEDLENESTIM Estimated duration time for the Ticket in minutes.
Show Ticket in Dispatcher FLDTKTFORDISPATCH Possible values: Yes/No
Status FLDTKTSTATUS The Ticket Status (optional).

Possible values:
New = 100
Pending = 200
Scheduled = 300
In-House Service = 400
On-Site Service = 500
Laboratory Service = 600
Hold = 700
Other = 800
Canceled = 900
Completed = 1000

Created by User FLDTKTCREATEUSER Should contain the external software name which created the Ticket
Due Date FLDTKTDUEDATETIME Due date for the Ticket. Should be passed in date format. e.g. MM/DD/YYYY
Resolution FLDTKTSOLUTION Ticket resolution text

Charge Fields

The table below lists the most important Charge parameters and behavior.

Contract-price Charges have some special characteristics (see comments marked by * in the table below):

Field Name Database Field Name Comment
Record ID FLDSLPRECID The Charge record ID. If provided, the existing Charge will be updated. Otherwise, this will be

added as a new Charge.

Charge Source FLDSLPSOURCERECID The Charge source is the entity for which the charge is created.

Possible values:

  • Linked Contract RecID (for Contract-price Charges). Cannot be the "System Global Contract".
    • Passing the Contract RecID indicates that this is a Contract-price charge.
  • Entity RecID from which the charge is created (for example when creating a charge from an Appointment or Task).
Account REC ID FLDSLPCARDID The Account record ID (20 chars). The Account REC ID can be taken from:
  1. Account Notes tab, at the bottom by rightclicking the REC ID field and selecting Copy
  2. ODBC to pull information from the database
  3. The automated email response when adding a new Account with the API
Employee REC ID FLDSLPWORKERID The worker record ID to be linked to the Charge. Must be an active employee. This is an optional parameter. If not passed, the system default will be used.
Charged Item FLDSLPITEMID The Item Record ID to be linked to the Charge. This is a mandatory field.
  • For Contract-price Charge can be only Fixed-Price, Unit-based Item.
Contract REC ID FLDSLPBCRECID The contract record ID (must be a Contract of the Account)
Ticket REC ID FLDSLPTICKETID The Ticket ID to be linked to the Charge.
  • Not relevant for Contract-price Charge
Date FLDSLPSLIPDATE The date for the Charge. This is an optional parameter. If not provided, the current date will

be used. Should be passed in date format. e.g. MM/DD/YYYY

Description FLDSLPDESC The Charge Description. If not provided, will be taken from the Item's description.
Units/Hours FLDSLPQUANTITY This is the quantity of hours/units
Adjust Amount FLDSLPADJUSTAMOUNT Discount/Markup amount. Positive number means Markup, negative number means Discount.
Adjust Percent FLDSLPADJUSTPERCENT Discount/Markup in percentage, must be between (-100) - 100. Positive number means Markup, negative number means Discount.
From Time FLDSLPSTARTTIME From time for labor Charges e.g. 12:06
  • Not relevant for Contract-price Charge
To Time FLDSLPENDTIME From time for labor Charges e.g. 14:50
  • Not relevant for Contract-price Charge
Price/Rate FLDSLPPRICE If not provided, the price is taken from the Item.
Billable FLDSLPBILLKIND B - Billable

N - Not Billable
If not provided, will be set according to the Contract type.

Billed FLDSLPSTAGE D - Draft

B - Billed

Field1 FLDSLPUSER1 User defined field
Create User FLDSLPCREATEUSER External software name which created the Charge

Item Fields

The table below lists the most important Item parameters and behavior:

Field Name Database Field Name Comment
Record ID FLDSLPRECID The Item record ID. If provided, the existing item will be updated. Otherwise, this will be added as a new item.
Item Group FLDITMITEMTYPEGROUP The Item Group to be linked to the Charge. This is a mandatory field:

F - Labor (Fee)
X - Expense
P - Part

Item Code FLDITMITEMNO The item code is a mandatory field
Item Name FLDITMNAME The item name is a mandatory field
Price Source FLDITMPRICESOURCE F - Fixed Price

W - by Employee Rate

Price per Hour/Unit FLDITMUNITISHOUR This field indicated whether the price is unitbased or hours-based.

Y - by Hours
N - by Units
This is an optional field, depending on the Item Group. For example, if the item group is Labor, and Price Source is By Employee, the value will always be by hours

Price FLDITMUNITPRICE Must be a valid numeric value
Cost FLDITMSTANDARDCOST The date for the Charge. This is an optional parameter. If not provided, the current date will

be used. Should be passed in date format. e.g. MM/DD/YYYY

Taxes FLDITMTAXCODE1

FLDITMTAXCODE2
FLDITMTAXCODE3

You can pass up to 3 different tax codes.
Description by Name FLDITMDESCBYNAME Y - take the description from the name field

N - take the description from the Description field

Description FLDITMDESC If not provided, the description is taken from the name.
Suspend FLDITMSUSPENDED Indicated whether this item is currently suspended:

Y - yes
N - no

Notes FLDITMNOTES
Field1 FLDSLPUSER1 User defined field
Create User FLDSLPCREATEUSER External software name which created the Charge
Created by User FLDTKTCREATEUSER Should contain the external software name which created the Ticket

History Note Fields

The table below lists the most important History Note parameters and behavior:

Field Name Database Field Name Comment
Record ID FLDHISRECID The History Note record ID. If provided, the existing History Note will be updated. otherwise, this will be added as a new History Note.
Date FLDHISNOTEDATETIME Any date format, such as DD/MM/YYYY
Description FLDHISDESCRIPTION The Description text
Opportunity/Ticket/Contract FLDHISLINKRECID Link to Opportunity or Ticket or Contract
Field FLDHISUSER1 User defined field
About FLDHISKIND Optional field
Employee FLDHISWORKERID The worker ID to be linked to the Ticket. Must be an active employee. This is an optional parameter. If not passed, the system default will be used.
Account FLDHISCARDID The Account record ID (20 chars). The Account Rec ID can be taken from:
  1. Account Notes tab, at the bottom, right-click the REC ID field and use Copy.
    e.g. CRDVQYSOD1B4U4HZIQJJ
  2. Using ODBC to pull information from the database
  3. From the Email Response when adding new Account with the API
Contact FLDHISCONTACTID The Contact for this Account. If not provided, the main Contact for the Account is taken.
Document FLDHISDOCID Linked Document ID, can be taken from the Document Properties window (right-click RecID and use Copy), or using the ODBC to pull information from the database.
Created by User FLDHISCREATEUSER Name of the external software which created this History Note

Asset Fields

The table below lists the most important Asset parameters and behavior:

Field Name Database Field Name Comment
Asset Code FLDASTASSETCODE If an existing Asset Code is provided, then existing Asset is updated. Otherwise a new Asset is added.
Asset Type FLDASTASSETTYPE The Type field is mandatory:

Hardware = H
Software = S
Other = T

Asset Name FLDASTNAME
Status FLDASTSTATUS Mandatory field.

Active = A
Not Active = N
If not provided, default Active is used.

Record ID FLDASTRECID If provided, must exist in the database. Ignored if empty
Serial No. FLDASTSERIALNO
Account FLDASTACCRECID The Account which is linked to the Asset
Contact FLDASTCONTACTRECID The Contact for this Account. If not provided, the main Contact for the Account is taken.
Created by user FLDASTCREATEUSER Name of external software which created this Asset
Purchase Date FLDASTCUSTPURDATE Any date format, such as DD/MM/YYYY
Purchased From Us FLDASTCUSTPURFROMUS Possible values: Y/N.

If not provided, default value Y is used.

Purchase Invoice # FLDASTCUSTPUROURINV
Customer PO FLDASTCUSTPURPO
Purchase Price FLDASTCUSTPURPRICE
Delivered Date FLDASTDELIVEDATE
Description FLDASTDESC
Installed By FLDASTINSTALBY
Installed Date FLDASTINSTALDATE
License Codes FLDASTLICENSECODE
License Keys FLDASTLICENSEKEY
License Notes FLDASTLICENSENOTES
Location FLDASTLOCATION
Manufacturer FLDASTMANUFACTURER
Mnf Serial No. FLDASTMNFSERIALNO
Model FLDASTMODEL
Notes FLDASTNOTES
Quantity FLDASTQUANTITY If not provided, default value of 1 is used.
Last Update By FLDASTUPDATEUSER Name of externals software which performed the update
Field1 FLDASTUSER1 User defined field
Field2 FLDASTUSER2 User defined field
Field3 FLDASTUSER3 User defined field
Field4 FLDASTUSER4 User defined field
Field5 FLDASTUSER5 User defined field
Date1 FLDASTUSERDATE1 User defined field
Number1 FLDASTUSERNUMBER1 User defined field
Vendor Purchased Date FLDASTVENDORDATEPURC
Vendor Invoice # FLDASTVENDORINVNO
Vendor PO FLDASTVENDOROURPO
Vendor Price FLDASTVENDORPRICE
Vendor FLDASTVENDORRECID
Vendor Serial No. FLDASTVENDORSERNO
Vendor Warranty Exp. Date FLDASTVENDORWARREXP Any date format, such as DD/MM/YYYY
Version FLDASTVERSION
Warranty/License Exp. FLDASTWARREXPDATE Any date format, such as DD/MM/YYYY
Date

Calendar Fields

The table below lists the most important Calendar parameters and behavior:

Field Name Database Field Name Comment
Record ID FLDEVTRECID The Appointment/Task record ID. If provided, the existing entity will be updated. Otherwise, this

will be added as a new Appointment/Task.

Event Type FLDEVTWRITETOID The Event type is a mandatory field.

Appointment = 1
Task = 2

Employee FLDEVTWORKERID The Task/Appointment owner (for private events)
Private: User FLDEVTPRIVATEID Possible values: Y/N

If an Employee was set, this field must be Y

Account FLDEVTCARDID The Account record ID (20 chars). The Account REC ID can be taken from:
  1. Account Notes tab, at the bottom by rightclicking

the REC ID field and selecting Copy

  1. ODBC to pull information from the database
  2. The automated email response when adding a

new Account with the API

Contact FLDEVTCONTACTID The Contact for this Account. If not provided, the main Contact for the Account is taken.
Document FLDEVTDOCID Linked Document ID, can be taken from the Document Properties window (right-click RecID and use Copy), or using the ODBC to pull information from the database.
Done Indication FLDEVTDONE Possible values: Y/N
Date FLDEVTEVENTDATE The Appointment/Task date is a mandatory field of Any date format, such as DD/MM/YYYY. If not

provided, the current date will be used.

Description FLDEVTFREETEXT
Time: Start FLDEVTFROMTIME Mandatory field
Time: End FLDEVTTOTIME Relevant only for Appointments. If this parameter is not provided, 30 min. interval from Start Time is used.
Opportunity/Ticket FLDEVTLINKRECID Linked Ticket/Opportunity/Contract/Asset
Field1 FLDEVTFAMILY User Defined field
Field2 FLDEVTACTION User Defined field
Field3 FLDEVTPLACE User Defined field
Field4 FLDEVTPLACE1 User Defined field
Field5 FLDEVTPLACE2 User Defined field
Created by User FLDEVTCREATEUSERID Name of external software which created the event
Last Update: By User FLDEVTUPDATEUSER Name of external software which updated the

event


Opportunity Fields

The table below lists the most important Opportunity parameters and behavior:

Field Name Database Field Name Comment
Record ID FLDOPPRECID The Opportunity record ID. If provided, the existing Opportunity will be updated. Otherwise, this will be added as a new Opportunity.
Opportunity Name FLDOPPNAME Mandatory field.
Opportunity ID FLDOPPUSERID Optional (Oppty ID)
Account FLDOPPCARDID The Account record ID (20 chars). The Account REC ID can be taken from:
  1. Account Notes tab, at the bottom by right-clicking the REC ID field and selecting Copy
  2. ODBC to pull information from the database
  3. The automated email response when adding a new Account with the API
Contact FLDEVTCONTACTID The Contact for this Account. If not provided, the main Contact for the Account is taken.
Source FLDOPPSOURCE
Document FLDEVTDOCID Linked Document ID, can be taken from the Document Properties window (right-click RecID and use Copy), or using the ODBC to pull information from the database.
Done Indication FLDEVTDONE Possible values: Y/N
Close Date FLDOPPCLOSEDATE
Manager FLDOPPWORKERID The Manager's REC ID
Open Date FLDOPPOPENDATE
Close By Date FLDOPPESTDATE Opportunity must be closed by this date
Amount FLDOPPAMOUNT
Probability % FLDOPPPROBABILITY
Stage FLDOPPSTAGE
Status FLDOPPSTATUS
Closing Amount FLDOPPCLOSEAMOUNT
Description FLDOPPDESCRIPTION
Opportunity Type FLDOPPKIND
Opportunity Reason FLDOPPREASON
Note FLDOPPNOTES
Territory FLDOPPREGION
Field1 FLDEVTFAMILY User Defined field
Field2 FLDEVTACTION User Defined field
Field3 FLDEVTPLACE User Defined field
Created by User FLDEVTCREATEUSERID Name of external software which created the event
Last Update: By User FLDEVTUPDATEUSER Name of external software which updated the event

Document Fields

The table below lists the Document parameters and behavior:

Field Name Database Field Name Comment
Record ID FLDDOCRECID The Document record ID. If provided, the existing Document will be updated. Otherwise, this will be added as a new Document.
Document Date FLDDOCDOCDATE The date for the Document. This is an optional parameter. If not provided, or if the value is illegal, the current date will be used. Should be passed in date format. e.g. MM/DD/YYYY
Subject FLDOPPUSERID
Linked Record FLDDOCLINKRECID The RECID of a linked object. Each Document can be linked to one of the following objects:
  • Ticket
  • Contract
  • Opportunity
  • Knowledge Base Article
  • Asset

The Record ID (20 chars) can be taken from:

  1. Object's Notes tab, at the bottom by right-clicking the REC ID field and selecting Copy
  2. ODBC to pull information from the database
  3. The automated email response when adding a new object with the API.
Account Rec ID CARDID The Account record ID (20 chars). The Account REC ID can be taken from:
  1. Account Notes tab, at the bottom by right-clicking the REC ID field and selecting Copy
  2. ODBC to pull information from the database
  3. The automated email response when adding a new Account with the API
Contact REC ID FLDDOCCONTACTID The Contact for this Account. If not provided, the main Contact for the Account is taken.
Field1 FLDDOCTRANSPORT User Defined field
Field2 FLDDOCFOLDER User Defined field
Field3 FLDDOCUMENTPLACE User Defined field
File Path + File name FLDDOCDOCUMENTNAME The Document path
Category FLDDOCTREEID The category record ID should be taken from the database table called TreeTbl which contains the Category tree
Employee REC ID FLDDOCWORKERID The worker record ID to be linked to the Document. Must be an active employee. This is an optional parameter. If not passed, the system default will be used.
Created by User FLDDOCCREATEUSER Name of external software which created the document
Last Update: By User FLDDOCUPDATEUSER Name of external software which updated the document

Knowledge Base Article Fields

The table below lists the Knowledge Base Article parameters and behavior:

Field Name Database Field Name Comment
Record ID FLDKBARECID The Article record ID. If provided, the existing Article will be updated. Otherwise, this will be added as a new Article.
Document Date FLDKBACREATEDATE The date for the Document. This is an optional parameter. If not provided, or if the value is illegal, the current date will be used. Should be passed in date format. e.g. MM/DD/YYYY
Title FLDKBATITLE
Problem FLDKBAPROBLEM
Solution FLDKBASOLUTION
Status FLDKBASTATUS Possible values:
  • DRAFT = 'D'
  • PUBLISHED = 'P'
  • OBSOLETE = 'O'
Category FLDKBACATEGORY
Public FLDKBAISPUBLIC Is the Document public.

Possible values:

  • 'Y' = Yes
  • 'N' = No
Created by User FLDDOCCREATEUSER Name of external software which created the document
Last Update: By User FLDDOCUPDATEUSER Name of external software which updated the document


Error Codes Description

These error codes are returned when calling the CmtGetDescriptionByStatus function:
1000 CmtDbEng.dll not found.
1001 Invalid value for the Data Kind value.
1002 Invalid DATA buffer received. Make sure you have allocated the buffer correctly and that you have passed the correct buffer length.
1003 Invalid MAP buffer received. Make sure you have allocated the buffer correctly and that you have passed the correct buffer length.
1004 Invalid REC ID buffer received. Make sure you have allocated the buffer correctly and that you have passed the correct buffer length.
1005 Invalid LOG buffer received. Make sure you've allocated the buffer correctly and that you've passed the correct buffer length.
1006 Invalid REC ID buffer received. It should be at least 20 characters.
1007 Invalid external software name received. Specify a unique name that identifies your software.
1008 Cannot process the transaction. Make sure to call the INIT procedure at least once prior to sending transactions for processing.
1009 Path specified for Commit DB folder not found.
1010 Path specified for Commit DB folder found, but its contents do not reflect a valid DB folder.
1011 The RED ID received for the employee/user was not found in Commit, is invalid or is related to an inactive employee record.
1012 Error registering software.
1013 Software name is missing. Make sure you specify a name that identifies your software.
1014 Software name is less than 3 characters long. Make sure you enter a software name that has 3 to 15 characters.
1015 Software name is too long. Make sure your software name has 3 to 15 characters.
1100 Database access error.

General error codes, returned when calling the functions CmtGetDescriptionByCode:
50000 The data is not correct for its type.
50001 The field value has been truncated due to the field length in the database.
50002 The insert operation Failed because the REC ID already existed in the database.
50003 Failed to update Record since it is being updated by another user.
50103 Illegal REC ID.
50104 REC ID Creation failed.
50105 Illegal Sub-Contact REC ID.
50106 Illegal Contract REC ID.
50107 Illegal Employee REC ID.
50108 Illegal Ticket REC ID.
50109 Illegal Account REC ID.
50110 Illegal data for that Contract.
50111 This Employee is not active.
50112 Illegal Document REC ID.
50113 Illegal linked object REC ID.
50114 Employee not found.
50115 Some mandatory fields have no values.
51000 Illegal kind of Account entity.
51001 Account Manager not found.
51002 The REC ID of the Account Manager is illegal.
51003 Illegal tax code.
51004 This code does not exist in Commit.
52000 Illegal kind of event.
52001 Illegal start time.
52002 Illegal end time.
52003 Illegal event date.
52004 The field Reminder1 has Illegal Value.
52005 The amount in the field has an illegal value.
52006 The Field Remider1:Units has Illegal Value.
52007 The Field Remider2:Active has Illegal Value.
52008 The Field Remider2:Amount has Illegal Value.
52009 The Field Remider2:Units has Illegal Value.
52010 Illegal employee REC ID.
52011 Error occurred while updating the Task/Appointment employee field.
54000 Illegal Ticket open date.
54001 Illegal Ticket close date.
54002 Illegal Ticket code area.
54004 Illegal Ticket priority.
54005 Illegal Ticket status.
54006 The Ticket Account was not found in the database.
54007 The Ticket Account Manager was not ound in the database.
54008 This code does not exist in Commit.
54009 This code does not exist in Commit.
54010 This code does not exist in Commit.
54011 This code does not exist in Commit.
54012 This code does not exist in Commit.
55000 Illegal charge date.
55001 Illegal charge REC ID.
55002 Illegal start date.
55003 Illegal start time.
55004 Illegal amount entered for hours.
55005 Illegal quantity.
55006 Illegal price.
55007 Illegal total.
55008 Illegal value in the Adjust Amount field.
55009 Illegal value in the Adjust Percent.
55010 The Discount/Markup field has an illegal value.
55011 Illegal value in the Adjust Kind field.
55012 Illegal bill total.
55013 You can not create a charge for a suspended item.
55014 Item was not found in Commit.
55015 This code does not exist in Commit.
55016 This code does not exists in Commit.
55017 This Code does not exist in Commit.
55018 This Code does not exist in Commit.
55019 This Code does not exist in Commit.
55020 This Code does not exist in Commit.
55021 This Code does not exist in Commit.
56000 Illegal item code.
56001 The field that indicates the item group type has an illegal value.
56002 The field that indicates if the Item is suspended has an illegal value.
56003 Illegal value of The field that indicate if the item is suspended.
56004 Mismatch found between the fields price and price source.
56005 Illegal cost.
56006 Mismatch found between the fields cost and item group type.
56007 The field that indicates if the charge is by unit or by hours has an illegal value.
56008 Illegal value in the Description.
56009 The field that indicates the item type has an illegal value.
57000 This Code does not exist in Commit.
58000 Illegal date time.
58001 The Description field was not found.
58002 The field kind was not found.
58003 The Account member was not found.
59000 This code does not exists in Commit.
59001 This Code does not exist in Commit.
59002 This Code does not exist in Commit.
59003 This Code does not exist in Commit.
59004 This Code does not exist in Commit.
59005 This Code does not exist in Commit.
60000 Invalid web user record ID number.
60001 This customer web user is not active.
60002 This user is not a customer.