diff --git a/examples/azure-devops/icon.svg b/examples/azure-devops/icon.svg
new file mode 100644
index 0000000..7682b0b
--- /dev/null
+++ b/examples/azure-devops/icon.svg
@@ -0,0 +1,20 @@
+
+
+
diff --git a/examples/azure-devops/index.js b/examples/azure-devops/index.js
new file mode 100644
index 0000000..c881a33
--- /dev/null
+++ b/examples/azure-devops/index.js
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = Franz => class MicrosoftTeams extends Franz {
+ overrideUserAgent() {
+ return window.navigator.userAgent.replace(/(Franz|Electron)([^\s]+\s)/g, '').replace(/(Chrome\/)([^ ]*)/g, '$163.0.3239.84');
+ }
+};
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1zdGVhbXMvaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56IiwiTWljcm9zb2Z0VGVhbXMiLCJvdmVycmlkZVVzZXJBZ2VudCIsIndpbmRvdyIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsInJlcGxhY2UiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBaUJDLFNBQVMsTUFBTUMsY0FBTixTQUE2QkQsS0FBN0IsQ0FBbUM7QUFDM0RFLHNCQUFvQjtBQUNsQixXQUFPQyxPQUFPQyxTQUFQLENBQWlCQyxTQUFqQixDQUEyQkMsT0FBM0IsQ0FBbUMsNkJBQW5DLEVBQWtFLEVBQWxFLEVBQXNFQSxPQUF0RSxDQUE4RSxvQkFBOUUsRUFBb0csZ0JBQXBHLENBQVA7QUFDRDtBQUgwRCxDQUE3RCIsImZpbGUiOiJtc3RlYW1zL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBGcmFueiA9PiBjbGFzcyBNaWNyb3NvZnRUZWFtcyBleHRlbmRzIEZyYW56IHtcbiAgb3ZlcnJpZGVVc2VyQWdlbnQoKSB7XG4gICAgcmV0dXJuIHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnJlcGxhY2UoLyhGcmFuenxFbGVjdHJvbikoW15cXHNdK1xccykvZywgJycpLnJlcGxhY2UoLyhDaHJvbWVcXC8pKFteIF0qKS9nLCAnJDE2My4wLjMyMzkuODQnKTtcbiAgfVxufTtcbiJdfQ==
\ No newline at end of file
diff --git a/examples/azure-devops/package.json b/examples/azure-devops/package.json
new file mode 100644
index 0000000..ce7a08d
--- /dev/null
+++ b/examples/azure-devops/package.json
@@ -0,0 +1,15 @@
+{
+ "id": "azure-devops",
+ "name": "Azure Devops",
+ "version": "1.0.0",
+ "description": "Azure Devops",
+ "main": "index.js",
+ "author": "Angelo Belchior ",
+ "license": "MIT",
+ "config": {
+ "serviceURL": "https://dev.azure.com/{teamId}",
+ "hasNotificationSound": false,
+ "hasTeamId": true,
+ "urlInputSuffix": "https://dev.azure.com/"
+ }
+}
\ No newline at end of file
diff --git a/examples/azure-devops/service.css b/examples/azure-devops/service.css
new file mode 100644
index 0000000..533004f
--- /dev/null
+++ b/examples/azure-devops/service.css
@@ -0,0 +1,3 @@
+notification-banner {
+ display: none !important;
+}
diff --git a/examples/azure-devops/webview.js b/examples/azure-devops/webview.js
new file mode 100644
index 0000000..752d2dd
--- /dev/null
+++ b/examples/azure-devops/webview.js
@@ -0,0 +1,14 @@
+'use strict';
+
+const path = require('path');
+
+module.exports = Franz => {
+ const getMessages = () => {
+ };
+
+ // inject franz.css stylesheet
+ Franz.injectCSS(path.join(__dirname, 'service.css'));
+
+ Franz.loop(getMessages);
+};
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1zdGVhbXMvd2Vidmlldy5qcyJdLCJuYW1lcyI6WyJwYXRoIiwicmVxdWlyZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiIsImdldE1lc3NhZ2VzIiwiYWxlcnRzIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiY2hhdHMiLCJ0ZWFtcyIsImFsZXJ0Q291bnQiLCJjaGF0Q291bnQiLCJ0ZWFtc0NvdW50IiwicGFyc2VJbnQiLCJpbm5lckhUTUwiLCJsZW5ndGgiLCJtZXNzYWdlcyIsInNldEJhZGdlIiwiaW5qZWN0Q1NTIiwiam9pbiIsIl9fZGlybmFtZSIsImxvb3AiXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEsT0FBT0MsUUFBUSxNQUFSLENBQWI7O0FBRUFDLE9BQU9DLE9BQVAsR0FBa0JDLEtBQUQsSUFBVztBQUMxQixRQUFNQyxjQUFjLE1BQU07QUFDeEIsVUFBTUMsU0FBU0MsU0FBU0MsYUFBVCxDQUF1QiwrQkFBdkIsQ0FBZjtBQUNBLFVBQU1DLFFBQVFGLFNBQVNDLGFBQVQsQ0FBdUIsNkJBQXZCLENBQWQ7QUFDQSxVQUFNRSxRQUFRSCxTQUFTQyxhQUFULENBQXVCLDhCQUF2QixDQUFkOztBQUVBLFFBQUlHLGFBQWEsQ0FBakI7QUFDQSxRQUFJQyxZQUFZLENBQWhCO0FBQ0EsUUFBSUMsYUFBYSxDQUFqQjs7QUFFQSxRQUFJUCxNQUFKLEVBQVk7QUFDVkssbUJBQWFHLFNBQVNSLE9BQU9TLFNBQWhCLEVBQTJCLEVBQTNCLENBQWI7QUFDRDs7QUFFRCxRQUFJTixLQUFKLEVBQVc7QUFDVEcsa0JBQVlFLFNBQVNMLE1BQU1NLFNBQWYsRUFBMEIsRUFBMUIsQ0FBWjtBQUNEOztBQUVELFFBQUlMLEtBQUosRUFBVztBQUNURyxtQkFBYUMsU0FBU0osTUFBTU0sTUFBZixFQUF1QixFQUF2QixDQUFiO0FBQ0Q7O0FBRUQsVUFBTUMsV0FBV04sYUFBYUMsU0FBYixHQUF5QkMsVUFBMUM7O0FBRUE7QUFDQVQsVUFBTWMsUUFBTixDQUFlRCxRQUFmO0FBQ0QsR0F6QkQ7O0FBMkJBO0FBQ0FiLFFBQU1lLFNBQU4sQ0FBZ0JuQixLQUFLb0IsSUFBTCxDQUFVQyxTQUFWLEVBQXFCLGFBQXJCLENBQWhCOztBQUVBakIsUUFBTWtCLElBQU4sQ0FBV2pCLFdBQVg7QUFDRCxDQWhDRCIsImZpbGUiOiJtc3RlYW1zL3dlYnZpZXcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IChGcmFueikgPT4ge1xuICBjb25zdCBnZXRNZXNzYWdlcyA9ICgpID0+IHtcbiAgICBjb25zdCBhbGVydHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuQWxlcnRzIC5hY3Rpdml0eS1iYWRnZS1jb3VudCcpO1xuICAgIGNvbnN0IGNoYXRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLkNoYXQgLmFjdGl2aXR5LWJhZGdlLWNvdW50Jyk7XG4gICAgY29uc3QgdGVhbXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuVGVhbXMgLmFjdGl2aXR5LWJhZGdlLWNvdW50Jyk7XG5cbiAgICBsZXQgYWxlcnRDb3VudCA9IDA7XG4gICAgbGV0IGNoYXRDb3VudCA9IDA7XG4gICAgbGV0IHRlYW1zQ291bnQgPSAwO1xuXG4gICAgaWYgKGFsZXJ0cykge1xuICAgICAgYWxlcnRDb3VudCA9IHBhcnNlSW50KGFsZXJ0cy5pbm5lckhUTUwsIDEwKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhdHMpIHtcbiAgICAgIGNoYXRDb3VudCA9IHBhcnNlSW50KGNoYXRzLmlubmVySFRNTCwgMTApO1xuICAgIH1cblxuICAgIGlmICh0ZWFtcykge1xuICAgICAgdGVhbXNDb3VudCA9IHBhcnNlSW50KHRlYW1zLmxlbmd0aCwgMTApO1xuICAgIH1cblxuICAgIGNvbnN0IG1lc3NhZ2VzID0gYWxlcnRDb3VudCArIGNoYXRDb3VudCArIHRlYW1zQ291bnQ7XG5cbiAgICAvLyBzZXQgRnJhbnogYmFkZ2VcbiAgICBGcmFuei5zZXRCYWRnZShtZXNzYWdlcyk7XG4gIH07XG5cbiAgLy8gaW5qZWN0IGZyYW56LmNzcyBzdHlsZXNoZWV0XG4gIEZyYW56LmluamVjdENTUyhwYXRoLmpvaW4oX19kaXJuYW1lLCAnc2VydmljZS5jc3MnKSk7XG5cbiAgRnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XG59O1xuIl19
\ No newline at end of file