Categories
Digital Transformation Platform Migration & Modernization

How to Ensure API Reusability – Keeping A Product Mindset for API Design

You may be using MuleSoft Anypoint platform as a project accelerator but how are you ensuring reusability of the APIs you are building?

We have all been there; if we just had a bit more time we could really make this feature solve more problems than just this one…but the reality is projects have a scope, budget, and time. These elements of a project usually pull at one another, create friction and ultimately force tough decisions. 

The MuleSoft Anypoint platform complements an API-led design approach and promotes reuse as one of its key benefits. In order to tap into that benefit, you need to ensure you are having a product mindset when designing your APIs even when those APIs are being created for a specific project. Even when scope, budget, and time are pulling against you the following three tips will help you keep a product mindset when designing an API to deliver to a project’s requirements.

Create A Control Use Case

Enable the technical team to think beyond an initial project’s implementation by working with the product team or stakeholder to create a tightly constrained scenario that the API design team can bounce potential scenarios against to ensure some level of reusability. The scenario should be based on future functionality that the product team believes will need to be addressed for a new audience. This is by no means scope creeping your project, but instead gives you another vantage point while designing the API. It will help drive more ownership of the APIs within your organization as it is designed for more use beyond a single project use case.

Let’s take an example for an eCommerce site where you are creating APIs to unlock better order management tracking capabilities for a refreshed site or new mobile app experience. What about considering giving access to these capabilities to your customer service team? As you are decomposing the requirements for the new customer experience, you could validate your approach on whether a Process API should be used or not. Or you could check the level of search capabilities that may be needed to be exposed from a System API. 

One other tip when picking a control use case, it is always helpful using a scenario that is for internal process enablement – the user base is a bit more well known. The idea here is to avoid endless what-if analysis on what the API could be and instead focus on what it should be for your project and at least one other iteration.

Speak Your Language

Turning legacy and third-party information into a language your company speaks now is a form of enablement that can be lost when challenged with project timelines. Taking the time to do so in your project will pay dividends for your organization. Work with the product team to create business entities that the technical team can emulate in their model. Creating entity relationships can help a development team ensure that consistency is honored between different API layers. Beyond the entities, the data itself needs an area of focus to bring the voice of your organization and avoid letting other systems’ naming conventions creep into your APIs. Any analyst knows the “fun” of data mapping exercises but beyond just mapping – really take a look at how you are identifying the information within your own organization. Traditional point-to-point integrations have an input and an output that you need to connect. Challenge yourself to add one additional column to the middle of that mapping for what your organization calls it and have that be the language spoken in your internal API application network.

A simple example of the zip code, you may have a legacy system that just says ”Zip“ and another new third party that calls it ”Postal Code“ but what does your organization call it? Find out and make that a consistent approach for your lower-level APIs. Let the Experience APIs be the place to deviate but your Process and System APIs need to be in your organization’s language.

Celebrate Your APIs

As companies scale and teams become more remote, information tends to suffer. Within Anypoint Exchange, discovery and publishing of API information is centralized in the same place to ensure you have all your APIs at your fingertips. But these APIs are only as good as the documentation that comes with it. Have you ever started out a project and were told that this integration was built by another team last year? You hunt through documents created from past project teams to hopefully find something that informs you of exactly what they integrated with and no clue what is accurate. 

Once your project is complete, take the time to document your API in a way that others can tell what that API is doing, where the data is coming from and what the expectations are so they can build their solution by leveraging your hard work. Not to mention, make sure you take a peak before you go and build your own API. I probably should have mentioned that earlier…

Take the steps to think beyond your project and create a more product-focused API, then celebrate your success by giving the API more weight within Exchange by adding details on how to use it and some working examples. Promote the use of your API by giving others guidance on what this API can do and what it could do. Let others be creative with the APIs you create.

Summary

Hitting a project deadline is never easy. These tips are to aid in the discussion, design, and documentation of APIs; they are not meant to add complex requirements to your projects. In order to adopt an API-led approach and maximize the benefits of MuleSoft, you need to spend more time in your API design. By taking the time to test your design against another use case, translate the data, and create meaningful documentation you will unlock more reuse potential out of your project delivery. With the MuleSoft platform being a development accelerator, hopefully, you and your team can use that additional time to focus on creating a more product-minded API.

Categories
Digital Transformation Platform Migration & Modernization

Why We Love MuleSoft

Light some candles. Turn the lights down low. Put on your most effective slow jams and set the mood just right. February 14th is the day of love and allows us time to focus on the importance love plays in our lives. Here at Green Irony we are well past the dating stages and are in a committed relationship with MuleSoft. There are lots of fish in the sea, but MuleSoft really stood out as the perfect catch. Today we give out Valentine’s cards to our most loved features.

“I Be-Weave In You”

Everyone has most likely heard of the 5 love languages, but our love language is DataWeave. DataWeave, one of the most powerful offerings from MuleSoft, gives us the ability to easily transform data within our integrations. Complex data integrations could be the life or death of a project and usually involve a huge time investment. Through writing code in the DataWeave language or by using the GUI drag and drop to generate code for us, we’re able to simplify previously complex integrations. Simpler transformations like one-to-one or more complex mappings such as filtering and functional programming can transform request payloads to response output as simple values, arrays, XML, JSON, CSV, and Java.

“You’re Just My Speed”

Most of us are familiar with the old adage, “It’s a marathon, not a sprint”. Developing with MuleSoft gives us the ability to handle both by setting us up to deliver in a short timeframe, but also allows us to have a well-architected network for all future needs and sustainability. MuleSoft allows us to rapidly reduce the time to market of new applications being developed and offers us a way to quickly build APIs or POCs and get deliverables out the door in a speedy fashion. By providing us with Anypoint Studio, we are able to leverage the many out-of-the-box features that are offered to build our flows, components, and transformers to handle any necessary use case.

“Will You ESB Mine”

Mule ESB is the runtime engine of Anypoint Platform. Because Mule ESB is built on an open-source platform, we are given access to numerous benefits of open-source. We are able to have more flexibility as we manage the features we do want as opposed to the overhead of controlling things we don’t. There is never a good time to discuss weight in a relationship, but in this case the rule doesn’t apply. Mule is an extremely lightweight integration platform that lets us make changes to integrations or functionality in a manner that is more time and cost effective. Mule offers community connectors and transports to make instant connectivity possible within our applications and even gives us the option to create our own connectors or reuse from a long list of previously created system connectors. In the words of Buzz Lightyear, “To infinity and beyond!”. Who knew that Buzz was talking about the vertical and horizontal scalability capabilities that Mule ESB offers to make sure there is rarely a need for a huge redesign of the application.

“We Test Out As The Perfect Pair”

Testing within an application is an extremely important factor in the long-term success or failure of a project. Integrated within Anypoint Studio is a Mule application testing framework named MUnit. MUnit gives us the ability to build automated tests to run against all of our Mule integrations and APIs. Easily installable through Anypoint Studio, we’re able to build Mule tests using Mule or Java code. These capabilities allow us to mock up message processors and outbound endpoints, debug tests, and view coverage reports with ease.

Every day we continue to find new and exciting reasons to love MuleSoft and all that the platform has to offer. This new love allows us to better strengthen all of our other relationships and commitments around the product. So, for all fans of The Notebook out there, I leave you with this, “If you’re a mule, I’m a mule”.

Categories
Platform Migration & Modernization

Salesforce Spring ’20 Release Notes Highlights

We’ve done it again! Green Irony has scoured the pages of the Spring ‘20 Release Notes to highlight the “need to know right now” for your Admin skimming pleasure. There were a lot of updates with Einstein across the board — both in Analytics, areas of Service Cloud, and even sprinkled in the Community Cloud. Also, Salesforce didn’t stop with the Mobile App in the last release — they carried that momentum into Spring ’20 with more updates there, as well. So, without further adieu, let’s dive in!

Sales Cloud

There weren’t as many changes this time around relating to Sales, but it doesn’t mean that what they produced won’t have an impact. The ability to hover on calendar events is surely a time saver, and choosing a specific time to send an email can increase the likelihood of closing that sale!

  • Now you can see the related account when searching for Contacts on Opportunities
  • Schedule High-Velocity Sales emails to send at a specific time, when a customer is more likely to read
    Salesforce Spring '20 Release Highlights
  • Manage email templates using list view on the email templates home page
  • Assign tasks to a shared sales queue
  • Hover over a calendar event for more details without clicking into each event
    Salesforce Sprint '20 Release Notes Highlights

Services Cloud

We weren’t kidding when we said how much your Services department has to gain from what’s coming in Spring ‘20! Here we’ve grouped some of the general changes for Services Cloud.

  • Omni-Channel Supervisor Filters are now sticky, so they remain when you log out
  • Omni-Channel widget can now be minimized when you accept work
  • You can route chats to agents who aren’t members of the Omni-Channel queue
  • Case merge is finally here! This works similarly to account merges
    Salesforce Sprint '20 Release Notes Highlights
  • View and edit case details from list view with Case hover in Lightning Experience
  • Decide whether Closed Status is visible to agents
  • You can now insert code snippets into case feed emails
  • Increase productivity with bulk macros and run macros faster on record home page

Services Cloud – Einstein

Salesforce stepped up Einstein efficiencies for Service Cloud, including a lot of improvements for Bots. This is an exciting area to be a part of, and it looks like it’s only getting better with each release.

  • Using Einstein Reply Recommendations (Pilot) can help you respond more quickly and efficiently
    Salesforce Spring '20 Release Highlights
  • Tailor Chat Bot with Conditional Messaging using built-in logic
  • Train Bot with Upgraded model management dashboard
  • Granular Conversation Logs to show every move the bot makes, for future improvement
  • Increase Customer Engagement with the Chat Bot Typing Indicator
  • WhatsApp is now available in 180 countries for Einstein Bots
  • The session window has been shortened from 24 hours to 2 hours
  • AND you can try Einstein Case Classification for FREE!

Knowledge

There are a lot of cool changes coming to Knowledge to help make your Services or Communities more efficient.

  • You can now compare versions of an article to see what changed (Beta)
  • Link articles in Chat & Messaging
  • Show or hide field labels and skip related files from inserted articles
  • Grab edges to resize images in Rich Text Fields using Google Chrome
    Salesforce Spring '20 Release Highlights
  • Set default access for the files attached to the article
  • Increased number of data categories from 25 to 50

Industry Clouds

Although not thick in volume, the changes that are coming for Industry Clouds will pack a punch! Don’t miss the two beta features (and more) available for Field Service Lightning!

  • Commerce Cloud – Salesforce Order Management is now Generally Available, to allow you to manage, fulfill, and service orders at scale
  • Sustainability Cloud – Streamline carbon footprint data for auditing purposes with reference data from gov’t agencies
  • Health Cloud – Easier setup for care plans and more options for finding the right care provider
  • Consumer Goods Cloud – Optimized Visit Sequences, Stock Level Monitoring, and Improved Business Performance
  • Manufacturing Cloud – Offers account managers greater control and improved visibility into sales agreements and account forecasts
  • Financial Services Cloud – More visibility into distributors and a new API for creating mortgages
  • Field Service Lightning:
    • Flex your field service scheduling with Ad Hoc Shifts (beta)
    • Schedule an Appt time that immediately follows another (beta)
    • Assign work to the minimally/most skilled resource
    • You can now generate work orders from maintenance plans

Lightning Flow & Process Builder Changes

There were a whole host of updates for Lightning Flow, so be sure to check those out in the release notes as well!

  • Record-Triggered Flows for Before-Save Updates in Flow
  • Configure Action and Create Records Elements without creating Variables
  • Run flows with System Mode, without worrying about user permissions
  • Categorize Actions, making it easier for location by Admins
  • Opportunity Contact Role Record types are now available in Process Builder
    Salesforce Spring '20 Release Highlights
  • Now view Processes that are subscribed to a platform event

Communities

There are a handful of Communities changes as well, varying from features available for use, to developer productivity, guest user sharing and general security.

  • Drag and Drop sections in Flexible layout pages, making re-organization a cinch
  • Create and Publish Communities in Scratch Orgs faster with Experience Bundle
  • New LWC-Based Template helps to build faster and more efficiently
  • An Enforced Security Alert now enables the “Secure Guest user record access” setting effective March 1, 2020
  • Community Users can now log in with Apple ID
    Salesforce Spring '20 Release Highlights
  • Lightning Locker can now be switched On and Off in the UI
  • An embedded Channel Menu allows customers to select how they want to communicate with Services
  • Community Users can now see a warning when accessing with an unsupported browser
  • Partner Community and Customer Community Plus licenses can see records of external users in account hierarchy
  • Use a Permission set instead of a specially created profile for Delegated External User Administrator permissions

Einstein & Einstein Analytics

There were a ton of Analytics changes for Spring ’20, including being able to attach formatted spreadsheets to Report subscriptions (beta) for reports and dashboards. Fun Fact: The word “Einstein” appears 991 times in the Spring ’20 release notes!

  • Try Einstein Prediction Builder at NO ADDITIONAL COST!!
  • Einstein Next Best Action: Create recommendations from the records of any Salesforce object and Launch Flows when Recommendations are Rejected
    Salesforce Spring '20 Release Highlights
  • Get more done on the run with Einstein Voice Assistant (Beta) – note, this is also a mobile feature!
  • In Einstein Discovery, get the best prediction from three different models (Pilot)
  • Ability to get 10x more data with the Einstein Analytics Plus License
  • Connect to your data with more connectors, including – but not limited to – SugarCRM, Zendesk, Google Cloud Storage, etc (Pilot)
  • Connect to External Salesforce Object Data with Specialized Connectors (Pilot)

Salesforce Mobile App

Back in Winter ‘20, the new Mobile App was released, and how excited we were! In Spring ’20, all active Salesforce Mobile App users get upgraded to the new, recently released app. Although they’ve done more upgrades, it is worth noting that there were only certain devices tested — multiple versions of the Google pixel, Samsung Galaxy, and iPhone, along with Samsung Tab and iPads. It’s also worth noting, that the operating systems and mobile browser requirements should be up to date on your devices, should you expect customer support to be able to fully assist with any issues.

With that being said, it’s hard to overlook some of the mobile changes, especially in regards to Einstein.

  • You can now customize the first four items of the navigation menu
  • See more details when you search, so you can make a more informed choice (to be released the week of February 17th, 2020)
  • Recommended Results on Mobile (Beta) highlight the most likely option as a top
    Salesforce Spring '20 Release Highlights
  • Customize Account and Opportunity Team Related Lists
  • Update paths with Dependent Picklists
  • You can now link share with your colleagues using a new icon
    Salesforce Spring '20 Release Highlights

Critical Updates and Security Alerts

We’ve listed these out as they appear in the Release Notes, but be sure to take a deeper look to see how your org will be affected!

  • Generate Valid HTML Output from Formulas in Processes and Flows
  • Enforce Data Access in Flow Formulas
  • Make Flows Respect Access Modifiers for Legacy Apex Actions
  • Require Permission to View Record Names in Lookup Fields (Summer ’20)
  • Enable New Salesforce Mobile App
  • Enable Dependency Access Checks in Lightning Components
  • Restrict Reflective Access to Non-Global Controller Constructors in Packages
  • Enable Improved Caching of Org Schema
  • Require Secure HTTPS Connections
  • Restrict Access to @AuraEnabled Apex Methods for Guest and Portal Users Based on User Profile
  • Restrict Access to @AuraEnabled Apex Methods for Authenticated Users based on user Profile

It’s a lot to take in, but there’s a lot to gain, especially for Services. As always, this is just an abbreviated list of what’s coming, so make sure to check out the Release Notes for those areas that can elevate your efficiencies and take your company to the next level! Don’t forget to check out the Trailhead for Spring ’20 Release Highlights for a shiny new badge AND 900 points!