Showing posts with label API Services. Show all posts
Showing posts with label API Services. Show all posts

Monday, October 21, 2019

How Business Automation Is Shaping Digital Transformation for Retail Industry


Business automation is usually a function of how fast a company is growing or maturing. Customers are moving from old desktop/server apps with limited connectivity into more modern apps with APIs enabled.

Now it’s more a “must have” rather than “nice to have.” APIs are built for improving automation and user experience, and it’s already happening. To give an example, Salesforce gets more API transactional traffic than from Browser or mobile UI.

Manual updating is at its peril: Scale-up
Manual updating and reconciling between systems will not sustain long-term growth. Think Facebook – if they had to approve or set up each person joining Facebook, where would they be? You get the point. If businesses want to move fast, they need to get manual steps out of the process.
Scaling up is the best way to compete.  It requires focusing the team’s efforts on growth, not maintaining current operations.  Also, the more there are links in the chain, the more it is prone to break, and this is even truer when humans are involved.
Businesses must take their team and let them spend that time creatively, figuring out how to take the company to the next level.  

A market tendency towards SaaS or Cloud-based applications
Software implementation helps to improve processes, not merely map current processes into the new software. It takes a little more time but is worth it.  We do see trends that clients who focus on getting the processes in place scale much faster.

The growth of Cloud is undoubtedly tremendous.
The tendency towards cloud-based applications came mostly from the years of heartache caused by on-site servers.

We also see the growth of eCommerce as integral. Earlier, warehouse data was used for internal purposes only. But now when a scan happens, that data is automatically reflected publicly to the whole world.
Software as a Service has inherently built-in demand for increasingly complex integration. If you have two SaaS apps, you have two integration points. If you have three SaaS apps, you have six integration points.

Evolution of Business Automation
Automation is evolving.
First, it was getting an application to expose APIs, then came orchestration of business processes.
The third phase would be intelligent automation, where business processes learn and adapt over some time. Much work has been done, and there is a lot to be done.
To improve process automation, it takes planning, implementation, and usually a bit of back and forth.  As technologies evolve, time to execute process automation tends to decrease and will continue to do so.  
Let’s compare an EDI setup to API integration.  API integration takes a fraction of the time, breaks less often, and is much faster to fix. It will continue to improve and speed up.  It only means that the time and cost to execute will become trivial.
All of our time and efforts can be spent on the planning stage, substantially increasing and speeding up our iterations, therefore speeding up our improvements, growth, and success.

Industry trends towards Business Automation
Two of the most talked about trends are – Artificial Intelligence (AI) and Blockchain.
While Blockchain is still trying to find a foothold and would take some time, AI is getting embedded in all parts of our lives, many of what we don’t even notice.
Businesses should start actively looking at AI on all aspects of what they do, including business process automation and often reducing manual labor. In a recent article, it was mentioned that there is a shortage of candidates, and many jobs are going unfilled.
With current immigration policies, it is to get worse, and this is where we feel businesses need to start thinking about removing manual work.
Digital integration and AI to play an active role in most software we build.
In the retail industry, retailers are moving towards private labels versus reselling models.
This is happening as the MAP becomes more prevalent, and brands themselves are going direct.  
With this, we see a lot of blurring of the traditional supply chain lines and an increase in 3PL as retailers compete with Amazon’s standards.
As the supply chain consolidates, EDI will die out. We can have fast, easy, stable, and inexpensive integrations that achieve standards with APIs instead.

Best Practices for organizations to implement Business Automation

Disciplined approach with Data: Flourish or perish
Focusing on business automation will enable organizations to compete in the digital age.  Companies that start down this path now are the ones that will survive over the next 5-10 years, but also are the ones who will thrive.
One of the things we notice with our most successful clients is that they pay attention to the data and use it to gain critical insights.
Companies beat out their competition over time with data insights. Getting the ideas and having the systems to execute them with pig-headed discipline is the key.

Transform error-prone manual approach into automation
Companies should look at each of their processes and manual touchpoints. Then to figure out which touchpoints are causing the most pain or error.
They can use Six Sigma or other methods to identify errors within business processes.
Take the one that is most impactful and automate it and then move to the next. I don’t mind going slow as long as organizations are tackling those process hiccups first that cause the most pain.

Why businesses need to work towards Digital Transformation and Integration
Businesses that are thinking digital today are the ones going to succeed in the future.
Many traditional retailers have already started their digital transformation, and this is just the tip of the iceberg.
It is an absolute necessity to have their systems work together seamlessly along with their suppliers’ and clients’ system. Not to mention capturing the data and getting the insights are also needed to decimate the competition.
There are two camps of thought.
Purchase an all-inclusive package to run your business end to end
Or,
Get the best of breed application.
While most “all inclusive” ERP packages are well integrated, companies have started to look for the best of the breed.
With this type of integration, they can maximize productivity for their businesses and minimize risks with vendor lock-in.
For example, Salesforce is mostly chosen for CRM,  even if the businesses have SAP, Oracle, or Microsoft. When organizations are looking at such business architectures, they need to be digitally integrated and provide their end customers a seamlessly integrated experience.

How automation has changed the way of work
Our client’s focus shift from maintaining the business to working on growing the business. When you have your systems and processes set up, then you have the framework or scaleup.  As you scale up, your systems can hopefully adapt to the change, but you will need to either update processes within your system as you grow or upgrade to ones that can scale with you.
It’s like hiring. Hire for the size you are now and will realistically be soon, but you always want some room for growth. The lucky part is that the right systems could take you through more business phases than a person usually can.   

Conclusion
From a software vendor standpoint, our goal is to “delight” our customers.
Our vision focuses around improving visibility and efficiencies in the supply chain. There are still lots of inefficiencies that we see in day-to-day activities that we will be working hard to eliminate.  Companies that take the customer feedback loop to heart will partner with similar companies, and these alliances will improve the experience of end consumers exponentially.
All-in-one software systems will struggle as best of breed becomes the norm again.  Throughout the past, the software has seen a few cycles from the best of a kind to the all-in-one.
Today, the ease of system integrations matched with stability dominates. We will see all-in-one systems that are hard to use, expensive, and impossible to set up, slowly die off even for large enterprises.


Thursday, February 22, 2018

Speed up connectors’ turnaround with swagger specification

What is Swagger
Swagger is the world’s most popular and largest framework of API’s developer tools for the open API specification, enabling development across the entire API lifecycle, from design and documentation to test and deployment.

How Swagger Specifications Have Revolutionized API Ecosystem
In the developer community, with the growing popularity of RESTFUL web services over SOAP there’s a need to have one common standard for designing, developing and documenting APIs. The Swagger specifications come very handy in connecting engineers through their API’s to communicate with each other in a semantic fashion irrespective of the language used to design an API.
Swagger is an framework for describing a common language that everyone can understand. The OpenAPI (Swagger) Specification is a standard, language-agnostic interface to RESTful APIs that allows humans and computers to discover and understand the capabilities of a service without having to access the source code, documentation or through network traffic inspection.
Even though there are few other frameworks like RAML, API Blueprint which have gained some popularity, Swagger is still most popular framework in documenting APIs due to the following factors.

  • Open source. Swagger being the first Open Source API framework is great and it’s simple to get started with the OpenAPI Specification. It’s clean, efficient, armed with number of powerful features and helps you to design and document your RESTful interfaces straight out of the box.
  • Smart feedback. You can validate your Syntax for Swagger Compliance as you write it with concise error feedback and error handling capabilities. You can also render your API specification visually and interact with your API while you are still defining it.

  • Fully customisable. Easy to configure and customize anything, from line-spacing to themes. You can also generate server stubs and client libraries for your API in any popular language.

The above benefits not only make developer’s life easier but also provide users with smoothly consumable APIs. Any API that adheres to the Swagger Specification are easy to read, iterate and readily consumed. Recently the Swagger Specifications has been moved to Linux Foundation under the name the Open API Initiative, as well as backed by IT giants like Microsoft, Google, Intuiti, Atlassian that focus on creating, evolving and promoting a vendor neutral description format.
In the following section of the article I outline one such use-case in building custom connector, JIRA Service Desk.

Use Case
DBSync uses Swagger Specification through its API connector to build JIRA Service Desk connector that has considerably reduced the whole build cycle in releasing a new connector to the market.
The DBSync’s API connector can effectively integrate with any external system such as JIRA Service Desk by implementing the necessary Swagger Specifications and ApiCode interface. API connector is the fastest way to build any application connector which readily exposes its APIs to the public that may or may not adhere to Swagger or any other API specifications.

Integration is done by documenting all the JIRA Service Desk APIs in JSON object adhering to the Swagger Specifications.
Developing Jira Service Desk connector is as simple as creating a new Swagger JSON object that contains all the endpoints along with the parameters and return types that you would like to expose through the connector (this would fetch all the API metadata that will help in establishing the connection). This JSON object is internally consumed by API connector to expose JIRA Service Desk as an individual connector that can be used in Integration life cycle within the iPaaS.

Leveraging DBSync iPaaS for making API calls with JIRA Service Desk
DBSync’s JIRA Service Desk connector uses JIRA Service Desk APIs along with JIRA Core API’s to move data in and out of the application. This integration consists of REST calls using a JSON request/response made over an HTTPS connection. Therefore all of HTTP methods like, get, post, put and delete are supported as a part of the implementation.
Trigger section is used to fetch data from the source application within the platform. Using JIRA Service Desk connector we expose GET endpoints of the APIs that will equip the user to read data in a controlled way.
Rule section within platform is used to define the manner in a way the user want to write data to the target application which can be either a single data source or multiple data sources. In this section of the platform we expose, post, put API endpoints to pass the data to the desired API. The endpoint names alone are not enough to manage the entire integration life cycle in the iPaaS. Additionally the platform should also know the parameters that need to be passed to an API endpoint and return type parameters that are required for field mappings in transformation process.


Likewise, one can leverage the DBSync iPaaS for connecting with JIRA Service Desk and any other application to facilitate the data flow between them. By including API connector to its catalogue, DBSync has made process of building, publishing and deploying new connectors easier, within just a few days by following Swagger Specification. The platform has the ability to connect with legacy application or SaaS based application that have their API exposed.

Wednesday, February 21, 2018

How to download attachments outside salesforce

Many times we were asked from various social media platform including Linkedin, Twitter, Pinterest but not limited to tech forums like Salesforce Stack Exchange, Stack Overflow for a Salesforce app to download attachments. I remember one question from a user where he posted asking: “Is there a possibility of getting associated attachments of opportunities, quotes to other teams that are outside Salesforce?” In other words, for the teams who are not the users of Salesforce, but are working for the same company.
The answer is yes. Recently DBSync has released an app which, when installed on a specific user instance of Salesforce, can download the attachment of any standard or custom object of Salesforce to a designated folder of  FTP or SFTP or FTPS server.

In this article, I would be demonstrating how to download the file to a designated file path of an FTP server using DBSync Salesforce package for downloading attachments.  To do so, you must have the latest package of the app installed on your Salesforce instance and follow these three steps.

Step 1: Add a Connector tab within Salesforce
Once after you login to your Salesforce Instance, you should click on the “All Tabs” icon located on the Menu Bar, which will open the below screen. Follow the below listed steps to add the Connectors Tab to your view in Salesforce. By doing so will ensure quick access of the configuration screen for FTP connector from Salesforce menu.
  • Click on “Customize My Tabs” button located on top right corner of the All Tabs page.
  • Choose the App from the Custom App drop down to add to the selected app.
  • From the Available Tabs combo box , select the Connector Tab and Click Add as shown in the image #1.
  • This action will move the Connectors to Selected Tabs combo box
  • Now Hit the “Save” button that will show up connector tab on the Menu of your Salesforce instance.



Image #1

Step 2: Setup the FTP connection parameters from DBSync Connector tab
The Connectors tab is the functionality from where you can set up your desired FTP \ SFTP \ FTPS connection so that the attachments get downloaded. To set up the FTP parameters, click on Connectors tab will open up the FTP\FTPS connector settings page as shown in the following image #2.



Image #2

  • Click on > Icon  adjacent to FTP label from Connector combo box, which will show up it’s connection parameters.
  • Click on the Edit button from the FTP Connection combo box as shown in the image i.e. on the right hand section which will make the fields editable.
  • Now Input Field FTP Host, FTP Port, FTP Username , FTP Password which are indicated by red * (Mandatory fields to save the connection parameters) and hit Save to save the connection parameters.
  • If you would like to change the FTP to FTPS, you can do so by choosing the FTPS value from the field “FTP Type” and Save the connection parameters.
Similarly, you can connect to any FTPS or SFTP host server so as to download the attachments directly to the saved host from the connectors screen of the package.

Step 3: Direct API
Alternatively if you want to use the API method to access the file, and download it to the designated FTP server, you can use this sftofilesytem API call to connect with an Salesforce instance and an FTP server, and pass a query to download the file. Try the API using the following link: http://api.mydbsync.com/api/api-docs/v1/sftofilesystem
The below is the sample call from the endpoint. This would make the API call more predictable for the reader.

curl -X POST –header ‘Content-Type: application/json’ –header ‘Accept: text/html’ -d ‘
{
“sfConfig”:{
“username”:”john@avankia.com”,
“password”:”@test123″,
“securityToken”:”fbEw74CxeC8kcxLK2zUnAlcp3″,
“endpointURL”:”string”},
“targets”:[{
“host”:”account.avankia.com”,”port”:”21″,
“filesystemType”:”ftp”,
“username”:”anil.b@avankia.com”,
“password”:”123456″,
“folder”:”testFiles”,
“bucket”:””,
“targetFileName”:””,
“region”:””
}],
“queryToTheAttachment”:”select Name,Body from attachment where id = ’00P2800000lT3mq”

}’

Conclusion
As explained in this article, I have saved the connection parameters to an FTP server containing the ip 107.180.12.272 so whenever a file is attached in the Salesforce, the same file gets downloaded to the FTP host. Upon which any team outside Salesforce can access the file just by logging to FTP server. Moreover, you also have the ability to define the directory structures and pass them from FTP File Location for all the files to download to defined path.