Sage CRM exists in an ecosystem of different systems. Sage CRM out of the box integrates with a host of different Sage accounting solutions around the world. It is a part of the family of products that make up the Sage Business Cloud and provide the Sales, Marketing and Service features for products such as Sage 300cloud or Sage 200cloud.

On Friday 2nd August 2019 we announced that Sage CRM 2019 R2 had passed QA and had been shipped to each of the Sage regions to prepare for release in their territories. The focus for this new version of Sage CRM has been on changing the way that ISVs and partners can bring increased value to our customers.

We believe the addition of the REST API (v1.0.0 beta) changes the game for Developers and anyone working to integrate Sage CRM with other web-based systems.

The REST API (v1.0.0 beta) enables:

  • Communication between desktop, server, web & cloud applications
  • Broad common interface for all Sage products
  • HTTP/Web access to data & business logic for web & mobile clients

The full API covers basic reading, writing, updating and deleting of data between as well as more complex functions such control of security and access, the discovery of metadata, error handling, and options for increased performance.

You can read more about the new REST API at http://help.sagecrm.com

Not all entities are covered by this first release but the QA testing has covered the main entities used to describe the core Sales, Marketing and Service features of CRM.

REST stands for Representational state transfer and the idea is that the HTTP verbs are used to imply the type of action that will be taken in the system.

The above image mentions 4 different HTTP verbs and they imply certain interactions with the database. There are others like Patch and Options but these 4 make the point.

A RESTful URI can be broken into several sections

This would be the general structure to retrieve data from the company.

http://myserver/sdata/installnamej/sagecrm/-/entity

We know that we a finding the data because the HTTP verb is ‘get’.

It is important to note that access to data via the REST-based interface is controlled by security. Each request has to be authenticated.

The image below shows a screenshot of a test of the API using a REST Client - a bit of software capable of formulating and issuing REST Requests. You can see that the request includes within the HTTP header the base64 encoded user credentials.

All requests must be authenticated and what a user may see is subject to their security rights.

It is important to note that access to data via the REST-based interface is controlled by security profiles. That has the effect of limiting access to rows within entities and views. Field level security will also limit the columns that are returned within the generated result set.

The data is exchanged in JSON format. JavaScript Object Notation is an open standard format that uses human-readable text to transmit data objects consisting of attribute-value pairs. It is a much more accessible way of looking at the data that XML.

JSON is lightweight and can be parsed by JavaScript implementations very easily and makes it an ideal data exchange format for web (and mobile) applications like Sage CRM.

Every entity is fully documented with examples for inserting updating and deleting records all within the online Help.