---
title: Browser Detection in JavaScript
description: Browser Detection in JavaScript
---

[![(877) 224-7768 <>](https://no-cache.hubspot.com/cta/default/1708946/5d9809e1-1922-4e3e-b06b-d359616d29bd.png)](https://cta-redirect.hubspot.com/cta/redirect/1708946/5d9809e1-1922-4e3e-b06b-d359616d29bd)

[![sales@profoundlogic.com <mailto:sales@profoundlogic.com>](https://no-cache.hubspot.com/cta/default/1708946/4fc30eb7-f66d-4552-81e2-49cc209a5ead.png)](https://cta-redirect.hubspot.com/cta/redirect/1708946/4fc30eb7-f66d-4552-81e2-49cc209a5ead)

[![Share on facebook](https://7528309.fs1.hubspotusercontent-na1.net/hub/7528309/hubfs/raw_assets/public/mV0_d-web-default-modules_hubspot/img/facebook-color.png?width=24&name=facebook-color.png)](https://www.facebook.com/share.php?u=https%3A%2F%2Fblog.profoundlogic.com%2Fbrowser-detection-in-javascript%2F%3Futm_medium%3Dsocial%26utm_source%3Dfacebook) [![Share on twitter](https://7528304.fs1.hubspotusercontent-na1.net/hub/7528304/hubfs/raw_assets/public/mV0_d-web-default-modules_hubspot/img/twitter-color.png?width=24&name=twitter-color.png)](https://twitter.com/intent/tweet?original_referer=https%3A%2F%2Fblog.profoundlogic.com%2Fbrowser-detection-in-javascript%2F%3Futm_medium%3Dsocial%26utm_source%3Dtwitter&url=https%3A%2F%2Fblog.profoundlogic.com%2Fbrowser-detection-in-javascript%2F%3Futm_medium%3Dsocial%26utm_source%3Dtwitter&source=tweetbutton&text=)

[![Profound Logic](https://blog.profoundlogic.com/hs-fs/hubfs/PLS_Logo.jpg?width=150&height=52&name=PLS_Logo.jpg "Profound Logic")](https://www.profoundlogic.com/)

- AI-Enhanced Products 
    - [Profound AI](https://www.profoundlogic.com/ai/)
    - [Profound UI](https://www.profoundlogic.com/profoundui/)
    - [Profound.js](https://www.profoundlogic.com/profoundjs/)
    - [Profound API](https://www.profoundlogic.com/api/)
- Services 
    - Futurization and Transformation 
          - [Profound 360 Analysis](https://www.profoundlogic.com/services/profound-360-analysis/)
          - [Flexible IBM i Code Transformation](https://www.profoundlogic.com/services/flexible-code-transformation/)
          - [IBM i UX Modernization Service](https://www.profoundlogic.com/services/ibm-i-ux-modernization-service/)
          - [Database Modernization](https://www.profoundlogic.com/services/database-modernization/)
    - Integration & API Development 
          - [System Integration](https://www.profoundlogic.com/services/systems-integration/)
          - [Cloud Migration Services](https://www.profoundlogic.com/services/cloud-migration-services/)
    - [Rapid Application Development](https://www.profoundlogic.com/services/application-development/) 
          - [Application Development](https://www.profoundlogic.com/services/application-development/)
          - [Mobile Application Development](https://www.profoundlogic.com/services/mobile-application-development/)
- [Company](https://www.profoundlogic.com/about-profound-logic/) 
    - [About Us](https://www.profoundlogic.com/about-profound-logic/)
    - [Press Releases](https://www.profoundlogic.com/press-releases/)
    - [Careers](https://www.profoundlogic.com/careers/)
    - [Contact Us](https://www.profoundlogic.com/contact/)
- Resources 
    - [Blog](https://www.profoundlogic.com/blog/)
    - [Case Studies](https://www.profoundlogic.com/case-studies/)
    - [On-Demand Webinars](https://www.profoundlogic.com/webinars/)
    - [White Papers](https://www.profoundlogic.com/white-papers/)
    - [Product Documentation](https://profoundlogicsupport.atlassian.net/wiki/spaces/PUI/overview)
    - [User Forum](https://forum.profoundlogic.com/)
    - [Contact Support](https://profoundlogicsupport.atlassian.net/servicedesk/customer/portal/1)

[![Contact Us](https://no-cache.hubspot.com/cta/default/1708946/interactive-172756632938.png)](https://blog.profoundlogic.com/hs/cta/wi/redirect?encryptedPayload=AVxigLKu2wTeA3rXIIbfx9IbOQWprqeLj1VvMZ6Rw1d3mqRj6Dq9WOVll4arnlLQ0BGIFcpFNoURMoiPiMkaPjfbUsjEJztxus%2BGAd3YyiSchja1HoFFl47r8tC8ArB5Qzuvxj5QJ8RcuxK%2FwxeLGWUsBAwLNOyIppK3LaKjycCWCk0kloKdt0X2ml7w&webInteractiveContentId=172756632938&portalId=1708946)

# iModernize - The Profound Logic Software Blog

# Browser Detection in JavaScript

Posted by [DRusso](https://blog.profoundlogic.com/author/drusso) on Dec 30, 2013 12:37:30 AM

- [Tweet](https://twitter.com/share)

In web development, a sometimes useful (but often misused) capability is to detect which browser the user is accessing the site or application with. This is commonly done in client-side (JavaScript) coding to get around browser quirks or bugs, or to present a different experience to users of one browser or another.

In a lot of cases, a developer will become interested in detecting what browser is used when he finds that feature 'X' does not work in browser 'Y' (more likely, browser 'IE'), or that feature 'X' does work, but must be gone about in different way. If the script is aware of what browser is being used, it can employ techniques that will allow the application to function normally (maybe with reduced features) in the troublesome browser.

I say that browser detection is often misused, as there is usually a much better way to go about things. In most cases, rather than worrying about what browser is being used, a script should concern itself with checking what features are / are not available. This is a much more reliable technique, and will cover 99% of cases where browser differences are a factor.

Feature detection can usually be accomplished in JavaScript by checking if the desired method or property is defined. A classic example of this is in detecting which event model the browser supports:

```
if (myButton.addEventListener) {

  // This works in standards-compliant browsers.
  myButton.addEventListener("click", myHandler);

}
else if (myButton.attachEvent) {

  // This works in older versions of IE.
  myButton.attachEvent("onclick", myHandler);

}
```

Rather than checking to see what web browser is used, the script determines which event model is supported by checking for the existence of the appropriate methods. The idea is that the script will be more robust, as it does not take the chance of making any mistakes with browser detection -- we'll see why this can be dodgy next. Also, the code is greatly simplified as it doesn't have to be concerned with the multitude of different browsers and versions currently in use, or even the arrival of a brand new web browser on the scene, such as Chrome in recent years.

Now that we've looked at why not to use browser detection, let's look at how it is accomplished, and what it is useful for.

Every web browser has what is called a "user agent string". The term "agent" is used in the sense that the browser is the user's representative, or agent, in the HTTP communication process. The string contains information that identifies the user agent. This includes the name of the browser, the version, and sometimes details about the operating system the browser is running on. The user agent string is sent to an HTTP server when the browser makes a page request (server-side coding can look at this, too), and it also makes it available to JavaScript coding on the page through the property "navigator.userAgent".

For example, here is the current (as of this writing) user agent string for Chrome on Windows 7:

```
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.41 Safari/537.36
```

As you can see, the user agent string is cryptic at best, and at worst purposefully misleading.

Chrome's user agent string mentions Mozilla? Why? This is probably due to the overuse and/or misuse of browser detection by web developers in the mid-1990s. At that time, browsers that did not identify as Mozilla were seen as older/obsolete browsers by a lot of early web sites, and sent a plain vanilla, stripped down version of the website. So, browser vendors quickly got in the habit of including 'Mozilla' in the user agent string. The appearance of 'Apple', 'WebKit', and 'Safari' are due to Chrome's shared pedigree with Safari -- Chrome was initially based on the open-source WebKit browser engine, which powers Safari. To identify Chrome, you would look for the 'Chrome/' token in the string, and the number following is the version.

Internet Explorer user agent strings looked like this through version 10:

```
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)
```

Older versions were very similar -- you would identify Internet Explorer by finding the 'MSIE' token, and the version number follows.

But, with Internet Explorer 11, Microsoft decided to intentionally break years worth of browser detection scripts by removing the 'MSIE' token:

```
Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
```

This was done as Microsoft has made a big effort to make IE more standards-compliant, and to catch up with features available in other browsers. So, the idea was to intentionally break browser detection scripts which would cause web sites to present a stripped down user experience to IE.

As you're probably concluded by now, browser detection can be highly complicated, and is often a moving target. Also, in Profound UI, there is even much less need for browser detection than if you were hand coding HTML and a lot of JavaScript. Profound UI's widgets, along with their JavaScript APIs, are designed to perform consistently across all supported browsers.

With all of this in mind, the only recommended use case for browser detection, is to get around bugs or quirks in the browser that cannot be handled with Profound UI's APIs, or with feature detection as described above. Typically this comes up only in highly advanced JavaScript coding.

As of version 4.7.2, Profound UI includes pre-set JavaScript flags that can be used in your scripts, should the need arise. Our developers have interpreted the user agent strings of the supported browsers for you, and keep them up to date as browsers 'change the rules'. This includes recent changes to IE11 mentioned above.

The following Boolean-type flags are available:

```
pui.is_ie;
pui.ie_mode;    // Defined only if (is_ie == true)
pui.ie_version; // Defined only if (is_ie == true)

pui.is_android;
pui.is_chrome;
pui.is_firefox;
pui.is_opera;
pui.is_safari;
```

You'll notice that version numbers are included only for Internet Explorer. This is because it's very common for users to be locked into an older version of IE, and also IE updates are fewer and farther between, with more changes. Users of other browsers typically receive automatic updates and are fairly up to date. Also these other browsers are updated more frequently, and the changes are not so drastic. So, it's highly unusual to have to distinguish between different versions of these browsers.

The additional flags for IE distinguish between the page mode (pui.ie\_mode), and the actual version of IE (pui.ie\_version) being used, as recent versions of IE include the capability to display the page as in older versions, for backwards compatibility. In most cases, you'll want to use 'pui.ie\_mode'. These flags are only defined if 'pui.is\_ie' is true.

For example:

```
if (pui.is_ie &amp;&amp; pui.ie_mode &lt; 8) {

  alert("Really?!");
  doNotMuch();
  return;

}
```

Now, here is an example where browser detection is recommended, as it's the only solution. This has gotten a lot better in recent browser versions, but in the past it's been tricky to calculate the width of an element consistently. Some browser versions simply report different widths for an 'identical' element, depending on borders, padding, etc. Take for example the following script that uses the 'clientWidth' property of an element to determine its width. In this example, the width reported by IE versions prior to 9 is greater than that reported by other browsers, by 4 pixels. In this case, there would be no other way to handle the situation, other than browser detection, since it would be impossible to test for this condition in any other way. In this example, the script detects the browser version and adjusts the calculated width accordingly.

```
var elem = document.getElementById("myElement");
var width = elem.clientWidth;

if (pui["is_ie"] &amp;&amp; pui["ie_mode"] &lt; 9) {

  width -= 4;

}
```

Hopefully this gives you a good idea on when / when not to employ browser detection in your scripts. Happy coding!

 Topics: [Development](https://blog.profoundlogic.com/topic/development)

Search Blog

### Subscribe to Blog Updates

**....and get our "How to Get Full Business Buy-In for Your Modernization Project" ebook!**

![business buy-in ebook](https://blog.profoundlogic.com/hs-fs/hubfs/mockup.png?width=621&name=mockup.png "business buy-in ebook")

### Recent Posts

### Posts by Topic

- [Events & Education (203)](https://blog.profoundlogic.com/topic/events-education)
- [Application modernization (173)](https://blog.profoundlogic.com/topic/application-modernization)
- [IBM i Modernization (169)](https://blog.profoundlogic.com/topic/ibm-i-modernization)
- [IBM i applications (169)](https://blog.profoundlogic.com/topic/ibm-i-applications)
- [Profound.js (165)](https://blog.profoundlogic.com/topic/profound-js)
- [Node.js (164)](https://blog.profoundlogic.com/topic/node-js)
- [Agile modernization (162)](https://blog.profoundlogic.com/topic/agile-modernization)
- [IBM i (161)](https://blog.profoundlogic.com/topic/ibm-i)
- [RPG (158)](https://blog.profoundlogic.com/topic/rpg)
- [AS400 modernization (157)](https://blog.profoundlogic.com/topic/as400-modernization)
- [iSeries (149)](https://blog.profoundlogic.com/topic/iseries)
- [Legacy Modernization (141)](https://blog.profoundlogic.com/topic/legacy-modernization)
- [RPG Development (85)](https://blog.profoundlogic.com/topic/rpg-development)
- [AS 400 (58)](https://blog.profoundlogic.com/topic/as-400)
- [Profound UI (54)](https://blog.profoundlogic.com/topic/profound-ui)
- [Profound Logic (50)](https://blog.profoundlogic.com/topic/profound-logic)
- [AS\_400 (49)](https://blog.profoundlogic.com/topic/as_400)
- [New Features (28)](https://blog.profoundlogic.com/topic/new-features)
- [Tips and Tricks (26)](https://blog.profoundlogic.com/topic/tips-and-tricks)
- [Development (20)](https://blog.profoundlogic.com/topic/development)
- [green screen modernization (15)](https://blog.profoundlogic.com/topic/green-screen-modernization)
- [Mobile Development (14)](https://blog.profoundlogic.com/topic/mobile-development-2)
- [5250 (12)](https://blog.profoundlogic.com/topic/5250)
- [IBM Watson (10)](https://blog.profoundlogic.com/topic/ibm-watson)
- [Press Release (9)](https://blog.profoundlogic.com/topic/press-release)
- [Product Announcement (9)](https://blog.profoundlogic.com/topic/product-announcement)
- [Scott Klement Health (7)](https://blog.profoundlogic.com/topic/scott-klement-health)
- [Partnerships (6)](https://blog.profoundlogic.com/topic/partnerships)
- [PLUS 2018 (5)](https://blog.profoundlogic.com/topic/plus-2018)
- [Prime UI (5)](https://blog.profoundlogic.com/topic/prime-ui)
- [Case Study (4)](https://blog.profoundlogic.com/topic/case-study)
- [Enterprise Modernization (3)](https://blog.profoundlogic.com/topic/enterprise-modernization)
- [Year in review (3)](https://blog.profoundlogic.com/topic/year-in-review)
- [PLUS 2019 (2)](https://blog.profoundlogic.com/topic/plus-2019)
- [mobile applications (2)](https://blog.profoundlogic.com/topic/mobile-applications)
- [mobile mondernization (2)](https://blog.profoundlogic.com/topic/mobile-mondernization)
- [2016 Survey (1)](https://blog.profoundlogic.com/topic/2016-survey)
- [2019 Survey (1)](https://blog.profoundlogic.com/topic/2019-survey)
- [Conversion Service (1)](https://blog.profoundlogic.com/topic/conversion-service)
- [Model 3 (1)](https://blog.profoundlogic.com/topic/model-3)
- [Tesla (1)](https://blog.profoundlogic.com/topic/tesla)
- [connectria (1)](https://blog.profoundlogic.com/topic/connectria)
- [node (1)](https://blog.profoundlogic.com/topic/node)

see all

### Archive

- [September 2014 (17)](https://blog.profoundlogic.com/archive/2014/09)
- [March 2017 (14)](https://blog.profoundlogic.com/archive/2017/03)
- [May 2017 (10)](https://blog.profoundlogic.com/archive/2017/05)
- [April 2019 (10)](https://blog.profoundlogic.com/archive/2019/04)
- [May 2019 (10)](https://blog.profoundlogic.com/archive/2019/05)
- [February 2013 (9)](https://blog.profoundlogic.com/archive/2013/02)
- [June 2017 (9)](https://blog.profoundlogic.com/archive/2017/06)
- [August 2017 (9)](https://blog.profoundlogic.com/archive/2017/08)
- [September 2017 (9)](https://blog.profoundlogic.com/archive/2017/09)
- [October 2017 (9)](https://blog.profoundlogic.com/archive/2017/10)
- [July 2017 (8)](https://blog.profoundlogic.com/archive/2017/07)
- [June 2018 (8)](https://blog.profoundlogic.com/archive/2018/06)
- [January 2019 (8)](https://blog.profoundlogic.com/archive/2019/01)
- [March 2019 (8)](https://blog.profoundlogic.com/archive/2019/03)
- [June 2019 (8)](https://blog.profoundlogic.com/archive/2019/06)
- [August 2014 (7)](https://blog.profoundlogic.com/archive/2014/08)
- [August 2015 (7)](https://blog.profoundlogic.com/archive/2015/08)
- [December 2017 (7)](https://blog.profoundlogic.com/archive/2017/12)
- [January 2018 (7)](https://blog.profoundlogic.com/archive/2018/01)
- [July 2018 (7)](https://blog.profoundlogic.com/archive/2018/07)
- [August 2018 (7)](https://blog.profoundlogic.com/archive/2018/08)
- [October 2018 (7)](https://blog.profoundlogic.com/archive/2018/10)
- [June 2014 (6)](https://blog.profoundlogic.com/archive/2014/06)
- [October 2014 (6)](https://blog.profoundlogic.com/archive/2014/10)
- [September 2015 (6)](https://blog.profoundlogic.com/archive/2015/09)
- [April 2017 (6)](https://blog.profoundlogic.com/archive/2017/04)
- [November 2017 (6)](https://blog.profoundlogic.com/archive/2017/11)
- [March 2018 (6)](https://blog.profoundlogic.com/archive/2018/03)
- [November 2018 (6)](https://blog.profoundlogic.com/archive/2018/11)
- [December 2018 (6)](https://blog.profoundlogic.com/archive/2018/12)
- [February 2019 (6)](https://blog.profoundlogic.com/archive/2019/02)
- [January 2014 (5)](https://blog.profoundlogic.com/archive/2014/01)
- [April 2014 (5)](https://blog.profoundlogic.com/archive/2014/04)
- [October 2015 (5)](https://blog.profoundlogic.com/archive/2015/10)
- [February 2018 (5)](https://blog.profoundlogic.com/archive/2018/02)
- [April 2018 (5)](https://blog.profoundlogic.com/archive/2018/04)
- [July 2020 (5)](https://blog.profoundlogic.com/archive/2020/07)
- [January 2013 (4)](https://blog.profoundlogic.com/archive/2013/01)
- [March 2013 (4)](https://blog.profoundlogic.com/archive/2013/03)
- [April 2013 (4)](https://blog.profoundlogic.com/archive/2013/04)
- [July 2014 (4)](https://blog.profoundlogic.com/archive/2014/07)
- [May 2018 (4)](https://blog.profoundlogic.com/archive/2018/05)
- [September 2018 (4)](https://blog.profoundlogic.com/archive/2018/09)
- [July 2019 (4)](https://blog.profoundlogic.com/archive/2019/07)
- [September 2013 (3)](https://blog.profoundlogic.com/archive/2013/09)
- [March 2014 (3)](https://blog.profoundlogic.com/archive/2014/03)
- [July 2015 (3)](https://blog.profoundlogic.com/archive/2015/07)
- [November 2015 (3)](https://blog.profoundlogic.com/archive/2015/11)
- [January 2016 (3)](https://blog.profoundlogic.com/archive/2016/01)
- [March 2016 (3)](https://blog.profoundlogic.com/archive/2016/03)
- [April 2016 (3)](https://blog.profoundlogic.com/archive/2016/04)
- [September 2016 (3)](https://blog.profoundlogic.com/archive/2016/09)
- [October 2019 (3)](https://blog.profoundlogic.com/archive/2019/10)
- [June 2020 (3)](https://blog.profoundlogic.com/archive/2020/06)
- [August 2020 (3)](https://blog.profoundlogic.com/archive/2020/08)
- [November 2013 (2)](https://blog.profoundlogic.com/archive/2013/11)
- [February 2014 (2)](https://blog.profoundlogic.com/archive/2014/02)
- [May 2014 (2)](https://blog.profoundlogic.com/archive/2014/05)
- [November 2014 (2)](https://blog.profoundlogic.com/archive/2014/11)
- [January 2015 (2)](https://blog.profoundlogic.com/archive/2015/01)
- [April 2015 (2)](https://blog.profoundlogic.com/archive/2015/04)
- [February 2016 (2)](https://blog.profoundlogic.com/archive/2016/02)
- [June 2016 (2)](https://blog.profoundlogic.com/archive/2016/06)
- [July 2016 (2)](https://blog.profoundlogic.com/archive/2016/07)
- [October 2016 (2)](https://blog.profoundlogic.com/archive/2016/10)
- [December 2016 (2)](https://blog.profoundlogic.com/archive/2016/12)
- [February 2017 (2)](https://blog.profoundlogic.com/archive/2017/02)
- [March 2020 (2)](https://blog.profoundlogic.com/archive/2020/03)
- [April 2020 (2)](https://blog.profoundlogic.com/archive/2020/04)
- [May 2020 (2)](https://blog.profoundlogic.com/archive/2020/05)
- [September 2020 (2)](https://blog.profoundlogic.com/archive/2020/09)
- [October 2020 (2)](https://blog.profoundlogic.com/archive/2020/10)
- [January 2021 (2)](https://blog.profoundlogic.com/archive/2021/01)
- [November 2012 (1)](https://blog.profoundlogic.com/archive/2012/11)
- [December 2012 (1)](https://blog.profoundlogic.com/archive/2012/12)
- [May 2013 (1)](https://blog.profoundlogic.com/archive/2013/05)
- [June 2013 (1)](https://blog.profoundlogic.com/archive/2013/06)
- [July 2013 (1)](https://blog.profoundlogic.com/archive/2013/07)
- [August 2013 (1)](https://blog.profoundlogic.com/archive/2013/08)
- [October 2013 (1)](https://blog.profoundlogic.com/archive/2013/10)
- [December 2013 (1)](https://blog.profoundlogic.com/archive/2013/12)
- [December 2014 (1)](https://blog.profoundlogic.com/archive/2014/12)
- [March 2015 (1)](https://blog.profoundlogic.com/archive/2015/03)
- [May 2015 (1)](https://blog.profoundlogic.com/archive/2015/05)
- [May 2016 (1)](https://blog.profoundlogic.com/archive/2016/05)
- [November 2016 (1)](https://blog.profoundlogic.com/archive/2016/11)
- [January 2017 (1)](https://blog.profoundlogic.com/archive/2017/01)
- [August 2019 (1)](https://blog.profoundlogic.com/archive/2019/08)
- [December 2019 (1)](https://blog.profoundlogic.com/archive/2019/12)
- [November 2020 (1)](https://blog.profoundlogic.com/archive/2020/11)
- [December 2020 (1)](https://blog.profoundlogic.com/archive/2020/12)

see all

#### Related Resources

- [\[fa icon="caret-right"\] Benefits of Modernizing Legacy Systems](https://www.profoundlogic.com/benefits-of-modernizing-legacy-systems/)
- [\[fa icon="caret-right"\] Customer Satisfaction and Supply Chains](https://www.profoundlogic.com/customer-satisfaction-and-supply-chains/)
- [\[fa icon="caret-right"\] Why Your Business Must Modernize Its Legacy Applications](https://www.profoundlogic.com/why-your-business-must-modernize-its-legacy-applications/)
- \[fa icon="caret-right"\] Coding in 2021 and Beyond: Is Node.js Dead?

#### Recommended for you

- [\[fa icon="caret-right"\] The Importance of API Security to Protect Sensitive Business Data](https://info.profoundlogic.com/the-importance-of-api-security-to-protect-sensitive-business-data)
- [\[fa icon="caret-right"\] Why API Matters for Enterprise Development](https://info.profoundlogic.com/why-api-matters-for-business-development-whitepaper)
- [\[fa icon="caret-right"\] The Cost of Technical Debt to Business on IBM i](https://info.profoundlogic.com/technical-debt)
- [\[fa icon="caret-right"\] Node.js for Enterprise IBM i Modernization](https://info.profoundlogic.com/node)

#### Watch now on demand

- [\[fa icon="caret-right"\] What is Code Transformation?](https://info.profoundlogic.com/code-transformation-stage-one)
- [\[fa icon="caret-right"\] Transform IBM i/AS400 Now](https://www.profoundlogic.com/transform-ibm-i-as400-now/)
- [\[fa icon="caret-right"\] Profound API, Low-Code and Product Updates Announced at PLUS 2020](https://info.profoundlogic.com/plus2020)
- [\[fa icon="caret-right"\] IBM i Transformation Risks Every Business Leader Should Know](https://info.profoundlogic.com/transformation-risks-wod)

#### Company

- [\[fa icon="caret-right"\] About Us](https://www.profoundlogic.com/about-profound-logic/)
- [\[fa icon="caret-right"\] Press Releases](https://www.profoundlogic.com/press-releases/)
- [\[fa icon="caret-right"\] Events and Webinars](https://www.profoundlogic.com/events/)
- [\[fa icon="caret-right"\] Careers](https://www.profoundlogic.com/careers/)
- [\[fa icon="caret-right"\] Partnerships](https://www.profoundlogic.com/partnerships/)
- [\[fa icon="caret-right"\] Contact Us](https://www.profoundlogic.com/contact/)

[Sign up for our newsletter](https://www.profoundlogic.com/newsletter-signup-profound-logic/) | [Developers](https://docs.profoundlogic.com/) | [Blog](https://www.profoundlogic.com/blog/) | [Privacy](https://www.profoundlogic.com/privacy-policy) | [Contact](https://www.profoundlogic.com/contact/) | [1-877-224-7768](tel:877-224-7768)

 Copyright © 2026 Profound Logic Software | [Sitemap](https://www.profoundlogic.com/sitemap.xml)

\[fa icon="chevron-up"\]

![](https://www.facebook.com/tr?id=237478240316292&ev=PageView&noscript=1)