REST API
Vtiger Cloud offers REST APIs which can be used for integration with external application.
Endpoint: https://CRM_URL/restapi/v1/vtiger/default
Authentication: HTTP Basic (CRM Username and Access Key). You can find Access Key under My Preferences in the CRM.
Response Format
| Status | Body | Remarks |
|---|---|---|
| 200 | JSON | { success: true, result: JSON_VAL } |
| 4xx | - | Failure. Header line with error message |
| 5xx | - | Failure. Header line with error message |
Record ID
Webservice ID of the form (ModuleTypeIDxRecordID) is used to represent record references.
Described below are the details of API. You can use this postman collection to explore against your CRM instance.
/me - User Profile
This API helps you to get the logged in user profile or context (like UserID, Name).
GET Endpoint/me
{
success: true,
result: {
id: user_record_id,
user_name: string,
fist_name: string,
last_name: string,
email1: string
}
}
/listtypes - Modules List
Use this API to get details of the accessible list of modules and basic metadata of module.
GET Endpoint/listtypes?fieldTypeList=null
| Parameter | Remarks |
|---|---|
| fieldTypeList | null - for any. fieldTypeList[]=typename for specific type. (typename = email, grid etc...) |
{
success: true,
result: {
types: [
module_name
],
information: {
module_name: {
isEntity: boolean,
label: string,
singular: string
}
}
}
}
/describe - Module Metadata
Use this API to get metadata of module comprising of fields, blocks, permissions.
GET Endpoint/describe?elementType=module_name
| Parameter | Remarks |
|---|---|
| elementType | Module name |
{
success: true,
result: {
name: string,
label: string,
createable: boolean,
updateable: boolean,
deleteable: boolean,
retrieveable: boolean,
fields: [
{
name: string,
label: string,
mandatory: boolean,
quickcreate: boolean,
summaryfield: boolean,
headerfield: boolean,
default: value,
type: {
name: string,
length: size,
refersTo: [ reference_module_name ],
picklistValues: [ {value: val, label: lbl} ],
defaultValue: picklist_value
},
isunique: boolean,
nullable: boolean,
editable: boolean,
data: json // extended info
}
],
inactivefields: [ field_info ],
idPrefix: module_type_id,
isEntity: boolean,
allowDuplicates: boolean,
labelFields: string_or_arrayOfString
}
}
/create
This API enables you to create a single entity record. You are expected to send all the mandatory field values along with the optional fields for successful record creation.
POST Endpoint/create?elementType=moduleName&element=convert_into_json_string ({field1:value1, field2:value2})
| Parameter | Remarks |
|---|---|
| elementType | Target Module Name |
| element | ({field1: value1, field2:value2}) |
{
"success": true,
"result": {
"notes_title": "Sample_file_1",
"document_source": "Vtiger",
"assigned_user_id": "",
"note_no": "DOC19",
"folderid": "22x1",
"createdtime": "2023-06-13 05:46:59",
"modifiedtime": "2023-06-13 05:46:59",
"modifiedby": "",
"created_user_id": "",
"source": "WEBSERVICE",
"starred": "0",
"tags": "",
"record_currency_id": "",
"record_conversion_rate": "",
"filelocationtype": "I",
"filestatus": "1",
"filename": "",
"filesize": "0",
"filetype": "",
"fileversion": "",
"filedownloadcount": "",
"share_count": "0",
"email_open_count": "0",
"open_count": "0",
"shared_download_count": "0",
"reshares_count": "0",
"unique_open_count": "0",
"deal_conversion_rate": "0",
"avg_time_spent": "0",
"total_time_spent": "0",
"document_type": "Public",
"notecontent": "",
"id": "7x549",
"isclosed": 0,
"label": "Sample_file_1",
"url": "https://{{your_domain}}/view/detail?module=Documents&id=549"
}
}
/retrieve
You can pull a piece of specific record information using this API.
GET Endpoint/retrieve?id=record_Id
| Parameter | Remarks |
|---|---|
| id | record_Id - Restapi uses a composite key to represent record id, a combination of (module-type-id and module-record-id) separated by (x). |
{
"success": true,
"result": {
"notes_title": "Sample_file_1",
"document_source": "Vtiger",
"assigned_user_id": "",
"note_no": "DOC14",
"folderid": "22x1",
"createdtime": "2023-06-09 06:11:18",
"modifiedtime": "2023-06-09 06:11:18",
"modifiedby": "",
"created_user_id": "",
"source": "WEBSERVICE",
"starred": "0",
"tags": "",
"record_currency_id": "",
"record_conversion_rate": "",
"filelocationtype": "I",
"filestatus": "1",
"filename": "Sample_1.odt",
"filesize": "22728",
"filetype": "application/vnd.oasis.opendocument.text",
"fileversion": "",
"filedownloadcount": "18",
"share_count": "0",
"email_open_count": "0",
"open_count": "0",
"shared_download_count": "0",
"reshares_count": "0",
"unique_open_count": "0",
"deal_conversion_rate": "0",
"avg_time_spent": "0",
"total_time_spent": "0",
"document_type": "Public",
"notecontent": "",
"id": "7x521",
"isclosed": 0,
"imageattachmentids": "7x522",
"label": "Sample_file_1",
"url": "https://{{your_domain}}/view/detail?module=Documents&id=521"
}
}
/query
Retrieve one or more records matching filtering field conditions.
GET Endpoint/query?query=query_string;
| Parameter | Remarks |
|---|---|
| query | query_string |
{
"success": true,
"result": [
{
"notes_title": "testing 123",
"document_source": "Vtiger",
"assigned_user_id": "",
"note_no": "DOC11",
"folderid": "22x1",
"createdtime": "2023-06-09 05:57:13",
"modifiedtime": "2023-06-09 05:57:13",
"modifiedby": "",
"created_user_id": "",
"source": "WEBSERVICE",
"starred": "0",
"tags": "",
"record_currency_id": "",
"record_conversion_rate": "",
"filelocationtype": "",
"filestatus": "1",
"filename": "",
"filesize": "0",
"filetype": "",
"fileversion": "",
"filedownloadcount": "",
"share_count": "0",
"email_open_count": "0",
"open_count": "0",
"shared_download_count": "0",
"reshares_count": "0",
"unique_open_count": "0",
"deal_conversion_rate": "0",
"avg_time_spent": "0",
"total_time_spent": "0",
"document_type": "Public",
"notecontent": "",
"id": "7x517",
"isclosed": "0",
"record_currency_symbol": null
}
]
}
/update
When you intend to update specific fields of existing records, you can use this or Revise API. Note: This API expects all the mandatory fields to be re-stated as part of the element parameter.
POST Endpoint/update?element={"id":"record_id", "field1":"revalue1", "field2":"value2"}
| Parameter | Remarks |
|---|---|
| element | {"id":"record_id", "field1":"revalue1", "field2":"value2"} |
{
"success": true,
"result": {
"productname": "test1",
"productcode": "",
"discontinued": "1",
"product_type": "Solo",
"productcategory": "",
"vendor_id": "",
"manufacturer": "",
"sales_start_date": "",
"sales_end_date": "",
"start_date": "",
"expiry_date": "",
"serial_no": "",
"mfr_part_no": "",
"vendor_part_no": "",
"website": "",
"glacct": "",
"productsheet": "",
"createdtime": "2023-06-08 09:35:49",
"modifiedtime": "2023-06-13 05:47:40",
"product_no": "PRO15",
"modifiedby": "",
"created_user_id": "",
"source": "WEBSERVICE",
"starred": "0",
"tags": "",
"record_currency_id": "21x2",
"record_conversion_rate": "1.00000",
"item_barcode": "",
"hsn_code": "",
"unit_price": "0.00000000",
"commissionrate": "",
"taxclass": "",
"purchase_cost": "0.00000000",
"purchase_cost_currency_value": "",
"billing_type": "One time",
"usageunit": "",
"qty_per_unit": "",
"qtyinstock": "0.000",
"reorderlevel": "0",
"assigned_user_id": "19x1",
"qtyindemand": "",
"defect_qtyinstock": "0.000",
"reorder_qty": "0.000",
"availablestock": "0.000",
"committedstock": "0.000",
"incomingstock": "0.000",
"imagename": "",
"description": "",
"id": "6x502",
"isclosed": 0,
"label": "test1",
"url": "https://{{your_domain}}/view/detail?module=Products&id=502",
"currency1": 0,
"currency2": 0,
"currency_id": "21x2"
}
}
/revise
This is similar to Update API but relaxes the constraint of re-stating the mandatory fields but expects target fields that need to be updated.
POST Endpoint/revise?element={"id":"record_id", "field2":"revalue2"}
| Parameter | Remarks |
|---|---|
| element | {"id":"record_id", "field2":"revalue2"} |
{
"success": true,
"result": {
"productname": "sample",
"productcode": "",
"discontinued": "1",
"product_type": "Solo",
"productcategory": "",
"vendor_id": "",
"manufacturer": "",
"sales_start_date": "",
"sales_end_date": "",
"start_date": "",
"expiry_date": "",
"serial_no": "",
"mfr_part_no": "",
"vendor_part_no": "",
"website": "",
"glacct": "",
"productsheet": "",
"createdtime": "2023-06-08 09:35:49",
"modifiedtime": "2023-06-13 05:47:56",
"product_no": "PRO15",
"modifiedby": "",
"created_user_id": "",
"source": "WEBSERVICE",
"starred": "0",
"tags": "",
"record_currency_id": "21x2",
"record_conversion_rate": "1.00000",
"item_barcode": "",
"hsn_code": "",
"unit_price": "0.00000000",
"commissionrate": "",
"taxclass": "",
"purchase_cost": "0.00000000",
"purchase_cost_currency_value": "",
"billing_type": "One time",
"usageunit": "",
"qty_per_unit": "",
"qtyinstock": "0.000",
"reorderlevel": "0",
"assigned_user_id": "",
"qtyindemand": "",
"defect_qtyinstock": "0.000",
"reorder_qty": "0.000",
"availablestock": "0.000",
"committedstock": "0.000",
"incomingstock": "0.000",
"imagename": "",
"description": "",
"id": "6x502",
"isclosed": 0,
"label": "sample",
"url": "https://{{your_domain}}/view/detail?module=Products&id=502",
"currency1": 0,
"currency2": 0,
"currency_id": "21x2"
}
}
/sync
When you need to fetch records that changed their state from the last-known time, you can use this API.
GET Endpoint/sync?modifiedTime=timestamp&elementType=moduleName&syncType=sync_type
| Parameter | Remarks |
|---|---|
| modifiedTime | Last known modified time from where you expect state changes of records should be in UNIX timestamp. For example 1561718898 |
| elementType | Target module name. |
| syncType | user: fetch records restricted to the assigned owner of the record. userandgroup: fetch records restricted to the assigned owner of own’s group. application: fetch records without restriction on the assigned owner. |
{
"success": true,
"result": {
"updated": [
{
"salutationtype": "",
"firstname": "",
"lastname": "Ram",
"email": "",
"phone": "",
"mobile": "",
"homephone": "",
"birthday": "",
"fax": "",
"account_id": "",
"title": "",
"department": "",
"contact_id": "",
"leadsource": "",
"secondaryemail": "",
"assistant": "",
"assigned_user_id": "",
"assistantphone": "",
"donotcall": "0",
"notify_owner": "0",
"emailoptout": "0",
"createdtime": "2023-06-09 04:36:47",
"modifiedtime": "2023-06-12 07:20:52",
"contact_no": "CON24",
"modifiedby": "",
"isconvertedfromlead": "0",
"created_user_id": "",
"primary_twitter": "",
"source": "WEBSERVICE",
"engagement_score": "0",
"last_contacted_on": "",
"last_contacted_via": "",
"slaid": "",
"contacttype": "Lead",
"contactstatus": "Cold",
"happiness_rating": "",
"record_currency_id": "",
"record_conversion_rate": "",
"profile_score": "0",
"profile_rating": "0",
"referred_by": "",
"emailoptin": "singleoptinuser",
"emailoptin_requestcount": "0",
"emailoptin_lastrequestedon": "",
"smsoptin": "singleoptinuser",
"language": "",
"primary_phone_field": "",
"primary_email_field": "",
"isclosed": "0",
"source_campaign": "",
"otherphone": "",
"portal": "0",
"support_start_date": "",
"support_end_date": "",
"mailingcountry": "",
"othercountry": "",
"mailingstreet": "",
"otherstreet": "",
"mailingpobox": "",
"otherpobox": "",
"mailingcity": "",
"othercity": "",
"mailingstate": "",
"otherstate": "",
"mailingzip": "",
"otherzip": "",
"mailing_gps_lat": "-360.0000000",
"mailing_gps_lng": "-360.0000000",
"description": "",
"imagename": "",
"primary_linkedin": "",
"followers_linkedin": "",
"primary_facebook": "",
"followers_facebook": "",
"facebookid": "0",
"instagramid": "",
"twitterid": "",
"id": "4x506",
"_module": "Contacts"
},
{
"salutationtype": "",
"firstname": "Shri",
"lastname": "Ram",
"email": "ram12@gmail.com",
"phone": "+911234567890",
"mobile": "",
"homephone": "",
"birthday": "",
"fax": "",
"account_id": "",
"title": "",
"department": "",
"contact_id": "",
"leadsource": "",
"secondaryemail": "",
"assistant": "",
"assigned_user_id": "",
"assistantphone": "",
"donotcall": "0",
"notify_owner": "0",
"emailoptout": "0",
"createdtime": "2023-06-09 05:31:14",
"modifiedtime": "2023-06-12 12:45:36",
"contact_no": "CON25",
"modifiedby": "",
"isconvertedfromlead": "0",
"created_user_id": "",
"primary_twitter": "",
"source": "WEBSERVICE",
"engagement_score": "0",
"last_contacted_on": "",
"last_contacted_via": "",
"slaid": "",
"contacttype": "Lead",
"contactstatus": "Cold",
"happiness_rating": "",
"record_currency_id": "",
"record_conversion_rate": "",
"profile_score": "0",
"profile_rating": "0",
"referred_by": "",
"emailoptin": "none",
"emailoptin_requestcount": "0",
"emailoptin_lastrequestedon": "0000-00-00 00:00:00",
"smsoptin": "singleoptinuser",
"language": "",
"primary_phone_field": "",
"primary_email_field": "",
"isclosed": "0",
"source_campaign": "",
"otherphone": "",
"portal": "0",
"support_start_date": "",
"support_end_date": "",
"mailingcountry": "",
"othercountry": "",
"mailingstreet": "",
"otherstreet": "",
"mailingpobox": "",
"otherpobox": "",
"mailingcity": "",
"othercity": "",
"mailingstate": "",
"otherstate": "",
"mailingzip": "",
"otherzip": "",
"mailing_gps_lat": "-360.0000000",
"mailing_gps_lng": "-360.0000000",
"description": "",
"imagename": "",
"primary_linkedin": "",
"followers_linkedin": "",
"primary_facebook": "",
"followers_facebook": "",
"facebookid": "0",
"instagramid": "",
"twitterid": "",
"id": "4x515",
"_module": "Contacts"
}
],
"deleted": [
"4x503"
],
"more": false,
"lastModifiedTime": 1686573936
}
}
/delete
Delete existing records through this API.
POST Endpoint/delete?id=record_Id
| Parameter | Remarks |
|---|---|
| id | record_Id |
{
"success": true,
"result": {
"status": "successful"
}
}
/relatedtypes
What relationship a module has with others can be obtained through this API.
GET Endpoint/relatedtypes?elementType=moduleName
| Parameter | Remarks |
|---|---|
| elementType | Target module name. |
{
"success": true,
"result": {
"types": [
"Potentials",
"Calendar",
"Emails",
"Quotes",
"PurchaseOrder",
"SalesOrder",
"Products",
"Calendar",
"Documents",
"Campaigns",
"Invoice",
"ServiceContracts",
"Services",
"Project",
"Assets",
"EmailCampaigns",
"Vendors",
"ModComments",
"Cases",
"Olark",
"WorkOrders",
"PhoneCalls",
"Esign",
"Webchat",
"SMSNotifier"
],
"information": {
"18": {
"name": "Potentials",
"label": "Potentials",
"translated_label": "Deals",
"isEntity": "1",
"relation_id": "18",
"actions": "add"
},
"19": {
"name": "Calendar",
"label": "Activities",
"translated_label": "Activities",
"isEntity": "1",
"relation_id": "19",
"actions": "add"
},
"20": {
"name": "Emails",
"label": "Emails",
"translated_label": "Emails",
"isEntity": "1",
"relation_id": "20",
"actions": "add"
},
"22": {
"name": "Quotes",
"label": "Quotes",
"translated_label": "Quotes",
"isEntity": "1",
"relation_id": "22",
"actions": "add"
},
"23": {
"name": "PurchaseOrder",
"label": "Purchase Order",
"translated_label": "Purchase Orders",
"isEntity": "1",
"relation_id": "23",
"actions": "add"
},
"24": {
"name": "SalesOrder",
"label": "Sales Order",
"translated_label": "Sales Orders",
"isEntity": "1",
"relation_id": "24",
"actions": "add"
},
"25": {
"name": "Products",
"label": "Products",
"translated_label": "Products",
"isEntity": "1",
"relation_id": "25",
"actions": "select"
},
"26": {
"name": "Calendar",
"label": "Activity History",
"translated_label": "Activity History",
"isEntity": "1",
"relation_id": "26",
"actions": "add"
},
"27": {
"name": "Documents",
"label": "Documents",
"translated_label": "Documents",
"isEntity": "1",
"relation_id": "27",
"actions": "add,select"
},
"28": {
"name": "Campaigns",
"label": "Campaigns",
"translated_label": "Campaigns",
"isEntity": "1",
"relation_id": "28",
"actions": "select"
},
"29": {
"name": "Invoice",
"label": "Invoice",
"translated_label": "Invoices",
"isEntity": "1",
"relation_id": "29",
"actions": "add"
},
"91": {
"name": "ServiceContracts",
"label": "Service Contracts",
"translated_label": "Service Contracts",
"isEntity": "1",
"relation_id": "91",
"actions": "ADD"
},
"106": {
"name": "Services",
"label": "Services",
"translated_label": "Services",
"isEntity": "1",
"relation_id": "106",
"actions": "SELECT"
},
"123": {
"name": "Project",
"label": "Projects",
"translated_label": "Projects",
"isEntity": "1",
"relation_id": "123",
"actions": "add"
},
"373": {
"name": "Assets",
"label": "Assets",
"translated_label": "Assets",
"isEntity": "1",
"relation_id": "373",
"actions": "ADD"
},
"404": {
"name": "EmailCampaigns",
"label": "List and Campaigns",
"translated_label": "List and Campaigns",
"isEntity": "1",
"relation_id": "404",
"actions": "ADD"
},
"474": {
"name": "Vendors",
"label": "Vendors",
"translated_label": "Vendors",
"isEntity": "1",
"relation_id": "474",
"actions": "SELECT"
},
"565": {
"name": "ModComments",
"label": "ModComments",
"translated_label": "Comments",
"isEntity": "1",
"relation_id": "565",
"actions": "ADD"
},
"584": {
"name": "Cases",
"label": "Cases",
"translated_label": "Cases",
"isEntity": "1",
"relation_id": "584",
"actions": "ADD"
},
"593": {
"name": "Olark",
"label": "Olark",
"translated_label": "Olark Chats",
"isEntity": "1",
"relation_id": "593",
"actions": ""
},
"1021": {
"name": "WorkOrders",
"label": "WorkOrders",
"translated_label": "Work Orders",
"isEntity": "1",
"relation_id": "1021",
"actions": "ADD"
},
"2420": {
"name": "PhoneCalls",
"label": "Phone Calls",
"translated_label": "Phone Calls",
"isEntity": "1",
"relation_id": "2420",
"actions": ""
},
"2882": {
"name": "Esign",
"label": "Esign",
"translated_label": "Esign Documents",
"isEntity": "1",
"relation_id": "2882",
"actions": "ADD,SELECT"
},
"4370": {
"name": "Webchat",
"label": "Webchat",
"translated_label": "Live Chats",
"isEntity": "1",
"relation_id": "4370",
"actions": ""
},
"6569": {
"name": "SMSNotifier",
"label": "SMSNotifier",
"translated_label": "SMS Messages",
"isEntity": "1",
"relation_id": "6569",
"actions": " "
}
}
}
}
/reopen
Reopen closed record if permitted.
POST Endpoint/reopen
| Body - urlencoded | Remarks |
|---|---|
| id | record_Id |
{
"success": true,
"result": {
"message": "Record reopened successfully."
}
}
/delete_related
When you are looking to break the existing relationship between two records, you can use this API.
POST Endpoint/delete_related
| Body - urlencoded | Remarks |
|---|---|
| sourceRecordId | record_id |
| relatedRecordId | target_record_id |
{
"success": true,
"result": {
"message": "successful"
}
}
/tags_add
Add tags to the target record.
POST Endpoint/tags_add
| Body - urlencoded | Remarks |
|---|---|
| id | record_Id |
| tags | ["tag1", "tag2"] |
{
"success": true,
"result": {
"message": "tags added"
}
}
/tags_retrieve
Fetch tags applied on target record.
GET Endpoint/tags_retrieve?id=record_Id
| Parameter | Remarks |
|---|---|
| id | record_Id |
{
"success": true,
"result": {
"tags": []
}
}
/tags_delete
Drop tag(s) applied on the target record or across all records.
POST Endpoint/tags_delete
| Body - urlencoded | Remarks |
|---|---|
| id | record_Id |
| tags | ["tag"] |
| delete_all | boolean |
{
"success": true,
"result": {
"message": "tags deleted"
}
}
/get_account_hierarchy
Accounts can be linked to parent Accounts and hence form a hierarchy.
GET Endpoint/get_account_hierarchy?id=record_Id
| Parameter | Remarks |
|---|---|
| id | record_Id |
{
"success": true,
"result": [
{
"id": "3x539",
"name": "TATA",
"level": 1,
"label": "Parent Org",
"current": "false"
},
{
"id": "3x540",
"name": "tcs",
"level": 2,
"label": "Org",
"current": "true"
}
]
}
/lookup
This API enables you to search records with a phone or email id in different modules and fields.
GET Endpoint/lookup?type=phone/email&value=xxx&searchIn=["moduleName"]
| Parameter | Remarks |
|---|---|
| type | phone/email |
| value | xxx |
| searchIn | ["moduleName"] |
{
"success": true,
"result": [
{
"salutationtype": "",
"firstname": "Shri",
"lastname": "Ram",
"email": "ram12@gmail.com",
"phone": "+911234567890",
"mobile": "",
"homephone": "",
"birthday": "",
"fax": "",
"account_id": "",
"title": "",
"department": "",
"contact_id": "",
"leadsource": "",
"secondaryemail": "",
"assistant": "",
"assigned_user_id": "",
"assistantphone": "",
"donotcall": "0",
"notify_owner": "0",
"emailoptout": "0",
"createdtime": "2023-06-09 05:31:14",
"modifiedtime": "2023-06-12 12:45:36",
"contact_no": "CON25",
"modifiedby": "",
"isconvertedfromlead": "0",
"created_user_id": "",
"primary_twitter": "",
"source": "WEBSERVICE",
"engagement_score": "0",
"last_contacted_on": "",
"last_contacted_via": "",
"slaid": "",
"starred": "0",
"tags": "",
"contacttype": "Lead",
"contactstatus": "Cold",
"happiness_rating": "",
"record_currency_id": "",
"record_conversion_rate": "",
"profile_score": "0",
"profile_rating": "0",
"referred_by": "",
"emailoptin": "none",
"emailoptin_requestcount": "0",
"emailoptin_lastrequestedon": "0000-00-00 00:00:00",
"smsoptin": "singleoptinuser",
"language": "",
"primary_phone_field": "",
"primary_email_field": "",
"isclosed": 0,
"source_campaign": "",
"otherphone": "",
"portal": "0",
"support_start_date": "",
"support_end_date": "",
"mailingcountry": "",
"othercountry": "",
"mailingstreet": "",
"otherstreet": "",
"mailingpobox": "",
"otherpobox": "",
"mailingcity": "",
"othercity": "",
"mailingstate": "",
"otherstate": "",
"mailingzip": "",
"otherzip": "",
"mailing_gps_lat": "-360.0000000",
"mailing_gps_lng": "-360.0000000",
"description": "",
"imagename": "",
"primary_linkedin": "",
"followers_linkedin": "",
"primary_facebook": "",
"followers_facebook": "",
"facebookid": "0",
"instagramid": "",
"twitterid": "",
"id": "4x515",
"label": "Shri Ram",
"url": "https://{{your_domain}}/view/detail?module=Contacts&id=515"
}
]
}
/picklist_dependency
You can get dependency between two picklist fields.
GET Endpoint/picklist_dependency?module=moduleName&sourcefield=sourceFieldName&targetfield=targetFieldName
| Parameter | Remarks |
|---|---|
| module | moduleName |
| sourcefield | sourceFieldName |
| targetfield | targetFieldName |
{
"success": true,
"result": {
"sourcefield": "contacttype",
"targetfield": "contactstatus",
"valuemapping": [
{
"sourcevalue": "Lead",
"targetvalues": [
"Cold",
"Warm",
"Hot",
"NLWC",
"Inactive"
]
},
{
"sourcevalue": "Sales Qualified Lead",
"targetvalues": [
"Accepted",
"Lost",
"Rejected"
]
},
{
"sourcevalue": "Customer",
"targetvalues": [
"Active",
"NLWC",
"Inactive"
]
},
{
"sourcevalue": "Partner",
"targetvalues": [
"Active",
"NLWC",
"Inactive"
]
},
{
"sourcevalue": "Analyst",
"targetvalues": [
"Positive",
"Neutral",
"Negative",
"NLWC",
"Inactive"
]
},
{
"sourcevalue": "Competitor",
"targetvalues": [
""
]
},
{
"sourcevalue": "Vendor",
"targetvalues": [
"Active",
"NLWC",
"Inactive"
]
},
{
"sourcevalue": "Marketing Qualified Lead",
"targetvalues": [
"Not reached",
"Reached",
"Interested"
]
}
]
}
}
/convertlead
Use this API to achieve lead conversion.
POST Endpoint/convertlead
| Body - urlencoded | Remarks |
|---|---|
| element | {"leadId":"2x3072","entities":{"Contacts":{"create":true},"Accounts":{"create":true},"Potentials":{"create":true}}} |
/add_related
Establish a relationship between the two records.
POST Endpoint/add_related
| Body - urlencoded | Remarks |
|---|---|
| sourceRecordId | record_id |
| relatedRecordId | target_record_id |
| relationIdLabel | target_relation_label |
{
"success": true,
"result": {
"message": "successful"
}
}
/retrieve_related
When you need related records of a target, record this API to go with.
GET Endpoint/retrieve_related?id=record_Id&relatedLabel=target_relationship_label&relatedType=target_moduleName
| Parameter | Remarks |
|---|---|
| id | record_Id |
| relatedLabel | target_relationship_label |
| relatedType | target_moduleName |
{
"success": true,
"result": [
{
"productname": "sample",
"productcode": "",
"discontinued": "1",
"product_type": "Solo",
"productcategory": "",
"vendor_id": "",
"manufacturer": "",
"sales_start_date": "",
"sales_end_date": "",
"start_date": "",
"expiry_date": "",
"serial_no": "",
"mfr_part_no": "",
"vendor_part_no": "",
"website": "",
"glacct": "",
"productsheet": "",
"createdtime": "2023-06-08 09:35:49",
"modifiedtime": "2023-06-13 05:48:06",
"product_no": "PRO15",
"modifiedby": "",
"created_user_id": "",
"source": "WEBSERVICE",
"starred": "0",
"tags": "",
"record_currency_id": "21x2",
"record_conversion_rate": "1.00000",
"item_barcode": "",
"hsn_code": "",
"unit_price": "0.00000000",
"commissionrate": "",
"taxclass": "",
"purchase_cost": "0.00000000",
"purchase_cost_currency_value": "",
"billing_type": "One time",
"usageunit": "",
"qty_per_unit": "",
"qtyinstock": "0.000",
"reorderlevel": "0",
"assigned_user_id": "",
"qtyindemand": "",
"defect_qtyinstock": "0.000",
"reorder_qty": "0.000",
"availablestock": "0.000",
"committedstock": "0.000",
"incomingstock": "0.000",
"imagename": "",
"description": "",
"id": "6x502",
"isclosed": "0",
"record_currency_symbol": "₹"
}
]
}
/query_related
Fetch related records matching a search criteria using this API.
GET Endpoint/query_related?query=query_string&id=record_id&relatedLabel=target_moduleName
| Parameter | Remarks |
|---|---|
| query | query_string |
| id | record_id |
| relatedLabel | target_moduleName |
{
"success": true,
"result": [
{
"notes_title": "file upload",
"document_source": "Vtiger",
"assigned_user_id": "",
"note_no": "DOC13",
"folderid": "22x1",
"createdtime": "2023-06-09 05:59:50",
"modifiedtime": "2023-06-09 05:59:50",
"modifiedby": "",
"created_user_id": "",
"source": "WEBSERVICE",
"starred": "0",
"tags": "",
"record_currency_id": "",
"record_conversion_rate": "",
"filelocationtype": "I",
"filestatus": "1",
"filename": "Test1.odt",
"filesize": "13104",
"filetype": "application/vnd.oasis.opendocument.text",
"fileversion": "",
"filedownloadcount": "18",
"share_count": "0",
"email_open_count": "0",
"open_count": "0",
"shared_download_count": "0",
"reshares_count": "0",
"unique_open_count": "0",
"deal_conversion_rate": "0",
"avg_time_spent": "0",
"total_time_spent": "0",
"document_type": "Public",
"notecontent": "",
"id": "7x519",
"isclosed": "0",
"imageattachmentids": "7x520",
"record_currency_symbol": null
},
{
"notes_title": "Sample_file_1",
"document_source": "Vtiger",
"assigned_user_id": "",
"note_no": "DOC14",
"folderid": "22x1",
"createdtime": "2023-06-09 06:11:18",
"modifiedtime": "2023-06-09 06:11:18",
"modifiedby": "",
"created_user_id": "",
"source": "WEBSERVICE",
"starred": "0",
"tags": "",
"record_currency_id": "",
"record_conversion_rate": "",
"filelocationtype": "I",
"filestatus": "1",
"filename": "Sample_1.odt",
"filesize": "22728",
"filetype": "application/vnd.oasis.opendocument.text",
"fileversion": "",
"filedownloadcount": "18",
"share_count": "0",
"email_open_count": "0",
"open_count": "0",
"shared_download_count": "0",
"reshares_count": "0",
"unique_open_count": "0",
"deal_conversion_rate": "0",
"avg_time_spent": "0",
"total_time_spent": "0",
"document_type": "Public",
"notecontent": "",
"id": "7x521",
"isclosed": "0",
"imageattachmentids": "7x522",
"record_currency_symbol": null
}
]
}
/files_retrieve
This special API lets you pull the content of the linked image (Contacts, Products) that are not embedded as part of the record.
GET Endpoint/files_retrieve?id=resource_Id
| Parameter | Remarks |
|---|---|
| id | resource_Id - You obtain this value through record retrieve (example: imageattachmentids field value of Contacts module record). |
{
"success": true,
"result": [
{
"fileid": "522",
"filename": "Sample_1.odt",
"filetype": "application/vnd.oasis.opendocument.text",
"filesize": 22728,
"filecontents": "UEsDBBQAAAgAAC0xyVZexjIMJwAAACcAAAAIAAAAbWltZXR5cGVhcHBsaWNhdGlvbi92bmQub2FzaX ........."
}
]
}