Getting Started
Basic Concepts
Tutorials
Advanced Concepts
How-to Guides
Building integration flows
Data transformation
Integration patterns
Developing Components
Tenant Management
Components
CRM components
ERP components
E-Commerce components
Marketing-related components
Finance-related components
Office components
Protocol components
Service components
Database components
Utility components
References
Sailor
Component Descriptor
Covered in this article

Sugar-crm component

SugarCRM is a CRM system with a simple user interface, industry-leading customer experience, and an intuitive customization platform.

This is an open source component template for Sugar CRM which is developed specifically to run on elastic.io platform. You can clone it and change it as you wish.

Authentication

In order for the elastic.io platform to authenticate with SugarCRM, the following tasks need to be completed:

Creating an app on a SugarCRM instance

In order the platform to connect to your SugarCRM instance, an app needs to be created on that instance. Below are the steps to do so. Once that is done, you will provide a valid username and password to the elastic.io platform. The platform will exchange that username and password for a token. In a production system, the best practice is to create a dedicated user for the elastic.io platform. This user should have the minimum required permissions.

  1. As an admin on your SugarCRM instance, go to the Administration panel

    screenshot from 2017-09-21 10-16-21

  2. Select OAuth Keys

    screenshot from 2017-09-21 10-17-08

  3. In the top bar, select the dropdown for the now visible OAuth Keys option

    screenshot from 2017-09-21 10-17-45

  4. Select Create OAuth Key
  5. Fill in the following values:
    1. Consumer Key Name: Pick a name that is convenient to remember
    2. Consumer Key: Pick a strongly random string. You will need to provide this information as part of the SugarCRM component account information
    3. Consumer Secret: Pick a strongly random string. You will need to provide this information as part of the SugarCRM component account information
    4. OAuth Version: OAuth 2.0
    5. Client Type: Sugar User
    6. Description: Optional value for your convenience

    screenshot from 2017-09-21 10-18-21

  6. Click Save

Registering a New SugarCRM Platform Value through the UI

  1. As an admin on your SugarCRM instance, go to the Administration panel

    screenshot from 2017-09-21 10-16-21

  2. Select Configure API Platforms

    screenshot from 2018-05-04 11-58-04

  3. Enter a value of your choosing for the new platform and click Add and then Save.

    screenshot from 2018-05-04 12-03-31

Authentication on platform

Fill in the following for your account:

  • Name Your Account: Name to identify this account on elastic.io
  • Your SugarCRM domain: URL of your Sugar CRM instance
  • Your login: Username used to login to SugarCRM instance
  • Your password: Password used to login to SugarCRM instance
  • Your OAuth 2.0 Consumer Key: Value created in step 5ii.
  • Your OAuth 2.0 Consumer Secret: Value created in step 5iii.
  • Custom Platform Value: Platform value registered above.

For real-time tasks please use separate oauth keys to avoid login conflicts.

Parameter platform should be set to some custom string but should be unique per sugar component in order to avoid any potential login conflicts. So now platform is “$TASK_ID:$STEP_ID”.

Triggers

Fetching New and Updated Objects from SugarCRM - Polling

It is possible to fetch any type newly created and/or updated object in your SugarCRM instance. Select the trigger Fetch new and updated objects and then configure the following:

screenshot from 2017-09-21 11-20-40

  • SugarCRM module to fetch: Type of object to fetch
  • Number of records to fetch: Maximum number of records to fetch per call. If left blank then the default set on your SugarCRM instance.

Fetching New and Updated Objects from SugarCRM - Webhook

It is possible to have new and updated objects be pushed to the elastic.io platform via webhooks. In order to do so, select Fetch new and updated objects (getObjects - Webhook). When a flow with this trigger is started, the elastic.io platform will register webhooks on the SugarCRM instance. When the flow is stopped, this webhook will be destroyed by the platform.

Fetch Deleted Objects from SugarCRM - Webhook

It is possible to have the ids of deleted objects be pushed to the elastic.io platform via webhooks. In order to do so, select Fetch deleted objects (getDeletedObjects - Webhook). When a flow with this trigger is started, the elastic.io platform will register webhooks on the SugarCRM instance. When the flow is stopped, this webhook will be destroyed by the platform.

Actions

Lookup Object By ID

Given an object, looks up the object with that ID. You must select the type of object to lookup.

Delete Object By ID

Given an object, deletes the object with that ID. You must select the type of object to lookup.

Upsert Object By ID

Update an existing entry if the id provided. Otherwise create a new entry. You must select the type of object to lookup.

Version and compatibility information

This component interacts with version 10 of the SugarCRM REST API. It has been tested with the following versions:

SugarCRM Enterprise, Version 7.9.1.0 (Build 1074)
SugarCRM Enterprise, Version 8.0.0 (Build 211) (Spring '18).