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
Basic Components
Utility Components
References
Sailor
Component Descriptor
Covered in this article
Related articles
Contracts and Workspaces Understanding credentials Data Sample Overview Creating your first integration flow Getting Started What is an integration component? What is an integration flow? What is a tenant? Take a tour of the product Creating a webhook flow Building a component in Java Building a component in Node.js Content-Based Routing Deploying a component How-to Guides Managing flow history Managing OAuth Clients Managing user roles in a tenant Managing Workspaces Mapping data Building real-time flows Sending data to a list of recipients REST API component Managing your SSH keys Managing your Teams/Components Allmysms component Amazon MWS component AMQP component AppDirect Component AWS Lambda component AWS SNS component Bazaarvoice component ChannelAdvisor component Code component Configuration component CSV component Docusign component Dun-and-bradstreet component Ebay component Edifact-parser component Email component Exact Online component Filter component Google PubSub component Google-shopping component Google-translate component Goto-webinar component Google Spreadsheets component Components JDBC Component JDBC Component JDBC Component Jsonata component Key-value-component component Ldap component Lightspeed-ecom component Lightspeed-retail component Lionbridge-translation component Magento1 component Magento2 component Mailchimp component Mandrillapp component Mapper component Microsoft Dynamics CRM component MsSQL component NetSuite component ODATA component Outlook component Petstore-nodejs component Pipedrive component Postgresql component Quickbooks-component component Request-reply component Rest API component Router component Salesforce-cpq component Salesfoce Component Sdl-translate component Sftp component Shopify-admin component Shopware component Simple-trigger component Smarty-streets component Soap component Splitter component Stripe component Timer component Twitter component Webhook component Xml component Component Descriptor Structure References Sailor compatibility matrix View Classes

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