diff --git a/.github/history.json b/.github/history.json
index 0432606b99e0034cfb4792889c755e9668e60747..1ed2f1a3061c56285592e8077784a11f053bba30 100644
--- a/.github/history.json
+++ b/.github/history.json
@@ -93753,6 +93753,28 @@
           ]
         }
       ]
+    },
+    "5.1.4": {
+      "node_version": "14.19.3",
+      "npm_version": "6.14.17",
+      "mongo_versions": [
+        "4.2",
+        "4.4",
+        "5.0"
+      ],
+      "pull_requests": [
+        {
+          "pr": "26909",
+          "title": "[FIX] Adjusted livechat fallbacks to take null values into account",
+          "userLogin": "aleksandernsilva",
+          "milestone": "5.1.4",
+          "contributors": [
+            "aleksandernsilva",
+            "tassoevan",
+            "web-flow"
+          ]
+        }
+      ]
     }
   }
-}
+}
\ No newline at end of file
diff --git a/HISTORY.md b/HISTORY.md
index c1ab84f74dddb0625d71fb03006661c8a93c311a..9db7d9b7833daf78540eb3c536dbb602a7fb49db 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -1,6 +1,24 @@
 
+# 5.1.4
+`2022-09-27  ·  1 🐛  ·  2 👩‍💻👨‍💻`
+
+### Engine versions
+- Node: `14.19.3`
+- NPM: `6.14.17`
+- MongoDB: `4.2, 4.4, 5.0`
+
+### 🐛 Bug fixes
+
+
+- Adjusted livechat fallbacks to take null values into account ([#26909](https://github.com/RocketChat/Rocket.Chat/pull/26909))
+
+### 👩‍💻👨‍💻 Core Team 🤓
+
+- [@aleksandernsilva](https://github.com/aleksandernsilva)
+- [@tassoevan](https://github.com/tassoevan)
+
 # 5.1.3
-`2022-09-23  ·  4 🐛  ·  4 👩‍💻👨‍💻`
+`2022-09-24  ·  4 🐛  ·  4 👩‍💻👨‍💻`
 
 ### Engine versions
 - Node: `14.19.3`
diff --git a/apps/meteor/.docker/Dockerfile.rhel b/apps/meteor/.docker/Dockerfile.rhel
index 88c66e1f6ef61008b09550b6cc1f0bba0dadce5d..11e648aa32eb59e6bacf932947741f8d8a683f7a 100644
--- a/apps/meteor/.docker/Dockerfile.rhel
+++ b/apps/meteor/.docker/Dockerfile.rhel
@@ -1,6 +1,6 @@
 FROM registry.access.redhat.com/ubi8/nodejs-12
 
-ENV RC_VERSION 5.1.3
+ENV RC_VERSION 5.1.4
 
 MAINTAINER buildmaster@rocket.chat
 
diff --git a/apps/meteor/app/utils/rocketchat.info b/apps/meteor/app/utils/rocketchat.info
index 105f5415bd38714def095f4d42f23ba844f7b98e..5335235fb70744ac4d42e93b1c6a64b731bf97e9 100644
--- a/apps/meteor/app/utils/rocketchat.info
+++ b/apps/meteor/app/utils/rocketchat.info
@@ -1,3 +1,3 @@
 {
-	"version": "5.1.3"
+	"version": "5.1.4"
 }
diff --git a/apps/meteor/package.json b/apps/meteor/package.json
index 64260b1370eeaf03c19fd5cfce028241079f8139..0b5e4bcc15a3d91cca16ca971d2dedcf17d8d560 100644
--- a/apps/meteor/package.json
+++ b/apps/meteor/package.json
@@ -1,7 +1,7 @@
 {
 	"name": "@rocket.chat/meteor",
 	"description": "The Ultimate Open Source WebChat Platform",
-	"version": "5.1.3",
+	"version": "5.1.4",
 	"private": true,
 	"author": {
 		"name": "Rocket.Chat",
diff --git a/package.json b/package.json
index 6444b32d065d06b64d6cc1f8556edbb2f2474f62..5587b79c49dc07c816f90a4cb486fba2e0df81be 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
 	"name": "rocket.chat",
-	"version": "5.1.3",
+	"version": "5.1.4",
 	"description": "Rocket.Chat Monorepo",
 	"main": "index.js",
 	"private": true,
diff --git a/packages/livechat/src/components/App/App.js b/packages/livechat/src/components/App/App.js
index 957f882d13419816d27be620d8362ebd77ef80e3..f79cd2ad565bf87840bf0a8278a9cec7f47a0f07 100644
--- a/packages/livechat/src/components/App/App.js
+++ b/packages/livechat/src/components/App/App.js
@@ -202,17 +202,13 @@ export class App extends Component {
 		}
 	}
 
-	render = ({
-		sound,
-		undocked,
-		minimized,
-		expanded,
-		alerts,
-		modal,
-	}, { initialized, poppedOut }) => {
+	render = ({ sound, undocked, minimized, expanded, alerts, modal, iframe }, { initialized, poppedOut }) => {
 		if (!initialized) {
 			return null;
 		}
+
+		const { department, name, email } = iframe.guest || {};
+
 		const screenProps = {
 			notificationsEnabled: sound && sound.enabled,
 			minimized: !poppedOut && (minimized || undocked),
@@ -221,6 +217,9 @@ export class App extends Component {
 			sound,
 			alerts,
 			modal,
+			nameDefault: name,
+			emailDefault: email,
+			departmentDefault: department,
 			onEnableNotifications: this.handleEnableNotifications,
 			onDisableNotifications: this.handleDisableNotifications,
 			onMinimize: this.handleMinimize,
diff --git a/packages/livechat/src/lib/hooks.js b/packages/livechat/src/lib/hooks.js
index 584a29f27fc3e5209e3eaef7f69879011d243d6b..d7de66bed4bae2bb914e5a017a561e46c448c9ff 100644
--- a/packages/livechat/src/lib/hooks.js
+++ b/packages/livechat/src/lib/hooks.js
@@ -34,8 +34,14 @@ const api = {
 			Triggers.processRequest(info);
 		}
 
-		const { token, room: { _id: rid } = {} } = store.state;
-		const { change, title, location: { href } } = info;
+		const { token, room } = store.state;
+		const { _id: rid } = room || {};
+
+		const {
+			change,
+			title,
+			location: { href },
+		} = info;
 
 		Livechat.sendVisitorNavigation({ token, rid, pageInfo: { change, title, location: { href } } });
 	},
@@ -62,12 +68,22 @@ const api = {
 	},
 
 	async setDepartment(value) {
-		const { config: { departments = [] }, user: { department: existingDepartment } = {} } = store.state;
+		const {
+			user,
+			config: { departments = [] },
+			defaultAgent,
+		} = store.state;
+
+		const { department: existingDepartment } = user || {};
 
 		const department = departments.find((dep) => dep._id === value || dep.name === value)?._id || '';
 
 		updateIframeGuestData({ department });
 
+		if (defaultAgent && defaultAgent.department !== department) {
+			store.setState({ defaultAgent: null });
+		}
+
 		if (department !== existingDepartment) {
 			await loadConfig();
 			await loadMessages();
diff --git a/packages/livechat/src/lib/room.js b/packages/livechat/src/lib/room.js
index a15256ca4f42324e09c3f96e6e52759f4fba67ae..74c48070a3eb22f8a73be7b04b91e56097c7a326 100644
--- a/packages/livechat/src/lib/room.js
+++ b/packages/livechat/src/lib/room.js
@@ -297,7 +297,8 @@ export const loadMessages = async () => {
 };
 
 export const loadMoreMessages = async () => {
-	const { room: { _id: rid } = {}, messages = [], noMoreMessages = false } = store.state;
+	const { room, messages = [], noMoreMessages = false } = store.state;
+	const { _id: rid } = room || {};
 
 	if (!rid || noMoreMessages) {
 		return;
diff --git a/packages/livechat/src/lib/triggers.js b/packages/livechat/src/lib/triggers.js
index 98c1bf9e65ab2752fcfce32a1e64b31219b09387..b29320824b238706977610bb4066b4b29c78bde1 100644
--- a/packages/livechat/src/lib/triggers.js
+++ b/packages/livechat/src/lib/triggers.js
@@ -33,7 +33,7 @@ const getAgent = (triggerAction) => {
 				return reject(error);
 			}
 
-			store.setState({ defaultAgent: { ...agent, ts: Date.now() } });
+			store.setState({ defaultAgent: { ...agent, department, ts: Date.now() } });
 			resolve(agent);
 		} else if (params.sender === 'custom') {
 			resolve({
diff --git a/packages/livechat/src/routes/Chat/container.js b/packages/livechat/src/routes/Chat/container.js
index c13c95d9d0fc7d803dd5dab4c8627f096e14343b..e4984599af5d8265fb02403e49b53bff6d3d5c99 100644
--- a/packages/livechat/src/routes/Chat/container.js
+++ b/packages/livechat/src/routes/Chat/container.js
@@ -184,7 +184,8 @@ class ChatContainer extends Component {
 			return;
 		}
 
-		const { alerts, dispatch, room: { _id: rid } = {} } = this.props;
+		const { alerts, dispatch, room } = this.props;
+		const { _id: rid } = room || {};
 
 		await dispatch({ loading: true });
 		try {
diff --git a/packages/livechat/src/routes/Register/component.js b/packages/livechat/src/routes/Register/component.js
index 941809b049bacfa038fe6b4af40ad3c7523a47c7..383aefb241acbe8f26b26a582f495303ef2b069b 100644
--- a/packages/livechat/src/routes/Register/component.js
+++ b/packages/livechat/src/routes/Register/component.js
@@ -137,34 +137,26 @@ class Register extends Component {
 	}
 
 	static getDerivedStateFromProps(nextProps, state) {
-		const { hasNameField, hasEmailField, hasDepartmentField, departmentDefault, departments, nameDefault, emailDefault } = nextProps;
+		const { hasNameField, hasEmailField, hasDepartmentField, nameDefault, emailDefault, departmentDefault } = nextProps;
+		const { name, email, department } = state;
+		const newState = {};
 
-		const nameValue = nameDefault || '';
-		if (hasNameField && (!state.name || state.name !== nameValue)) {
-			state = { ...state, name: { ...state.name, value: nameValue } };
-		} else if (!hasNameField) {
-			state = { ...state, name: null };
+		if (hasNameField && nameDefault && nameDefault !== name?.value) {
+			const error = validate(this.props, { name: 'name', value: nameDefault, regexp: name?.regexp });
+			newState.name = { ...name, value: nameDefault, error };
 		}
 
-		const emailValue = emailDefault || '';
-		if (hasEmailField && (!state.email || state.name !== emailValue)) {
-			state = { ...state, email: { ...state.email, value: emailValue } };
-		} else if (!hasEmailField) {
-			state = { ...state, email: null };
+		if (hasEmailField && emailDefault && emailDefault !== email?.value) {
+			const error = validate(this.props, { name: 'email', value: emailDefault, regexp: email?.regexp });
+			newState.email = { ...email, value: emailDefault, error };
 		}
 
-		const departmentValue = departmentDefault || getDefaultDepartment(departments);
-		const showDepartmentField = hasDepartmentField && departments && departments.length > 1;
-		if (showDepartmentField && (!state.department || state.department !== departmentValue)) {
-			state = { ...state, department: { ...state.department, value: departmentValue } };
-		} else if (!showDepartmentField) {
-			state = { ...state, department: null };
+		if (hasDepartmentField && departmentDefault && departmentDefault !== department?.value) {
+			const error = validate(this.props, { name: 'department', value: departmentDefault, regexp: department?.regexp });
+			newState.department = { ...department, value: departmentDefault, error };
 		}
 
-		for (const { fieldName: name, value, regexp } of getValidableFields(state)) {
-			const error = validate(nextProps, { name, value, regexp });
-			state = { ...state, [name]: { ...state[name], value, error, showError: false } };
-		}
+		return newState;
 	}
 
 	state = {