SmartOffice is a web-based Customer Relationship Management application with a relational database containing all of the data. Access is not allowed directly through the database. Access is only allowed through the user interface of our application server, and from our web-service API (aka SmartIntegrator?) to interface applications with SmartOffice. The SmartIntegrator? will allow you to accomplish the same tasks that can be accomplished through the user interface. This is done by posting an XML request to SmartIntegrator?, which sends back a response. Posts can be regular low level requests that can be done through the user interface such as insert, update, delete, and search. Posts can even be encapsulated at a high level such as getting all of the data from a dynamic report. In this case the response would include the content of the dynamic report that is processed dynamically in your request.

There are two ways to send requests to SmartIntegrator?. This depends on how you will be interfacing with an application:

Proxy: The Proxy will be utilized when writing applications that are outside SmartOffice. Although the application needs to interact with data in SmartOffice the workflow is run from outside SmartOffice. In this case you would send requests through the Proxy; it would speak to SmartIntegrator? and respond back.

Adapter: You can create a button/side-menu item in SmartOffice that will initiate a script that you develop. You're going to need to understand a little about XHTML, XSLT's, and possibly some JavaScript?. The button will send requests directly to SmartIntegrator?.


E-Z Data hosts multiple SmartOffice servers for our user community. To allow for a better user experience for our development partners and to enable a gateway that controls who you are interfacing with, E-Z Data has a centralized hub called a Proxy in which all our partners must use to interface with SmartIntegrator?.

The Proxy provides an extra layer of security in which E-Z Data provides the following:
  • Partner-level credentials.
  • Synchronize our SmartOffice user list with our DXO Website.
  • Create relations specifying whether a partner can speak to a subset of SmartOffice users.
Once you receive your partner-level credential and establish the subset of users you can speak to from E-Z Data you can then begin posting requests through the Proxy using your credentials. The Proxy will first verify your credentials and that you are allowed to speak to the user(s). Once verified it will forward your request to SmartIntegrator? and send back the responses.

If you are writing applications that are outside of SmartOffice, your application needs to interact with SmartOffice data, and the workflow running outside of SmartOffice; that is how you do it. You talk to the Proxy, it makes a request to SmartIntegrator?, and it sends a response back.


The second way you can send a request is that you can develop an adapter which will add a button in SmartOffice. The adapter is installed in SmartOffice and runs JavaScript?. The button will be made available in certain modules of SmartOffice, such as contact. When the user clicks the button it will take the active record(s), run the data specified in the adapter, and pass the data off to JavaScript? which is written in the adapter.

The following are scenarios in which you would want to develop an adapter:
  • Posting data outside of SmartOffice.
  • Writing a file locally and launching it through the MIME type.

Proxy vs. Adapter
There are some commonalities between both ways of performing requests, but if you can determine that the solution you want to develop falls under only one, you can focus on those technical details instead of learning both.

The following will help you determine if you should use the Adapter:
  • Does your workflow involve the SmartOffice user manually initiating anything from inside SmartOffice? If yes, you will need to create a button or side menu item which the SmartOffice user can manually use to execute the request.
The following will help you determine if you should use the Proxy:
  • Does your workflow involve an external application independently accessing your user data from an interface that is not in SmartOffice? If yes, you will need to use the Proxy which you can send the request to via your outside interface in order for the API to process the request.
Topic revision: 02 Aug 2012, DavidEshelbrenner

This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback