diff --git a/modules/salesforce_mapping_ui/src/Controller/MappedObjectController.php b/modules/salesforce_mapping_ui/src/Controller/MappedObjectController.php
index f3a7ddc48c5e2da4e7b17e5fe09676b96e0d3832..687e452bcf2bf236ddf3a347448bcbe1d5f65b48 100644
--- a/modules/salesforce_mapping_ui/src/Controller/MappedObjectController.php
+++ b/modules/salesforce_mapping_ui/src/Controller/MappedObjectController.php
@@ -44,8 +44,14 @@ class MappedObjectController extends ControllerBase {
       return AccessResult::forbidden();
     }
 
-    // There must be a better way to get the entity from a route match.
-    $param = current($this->route->getParameters()->all());
+    $param = null;
+    $parameter_info = $this->route->getRouteObject()->getOption('parameters');
+    foreach ($parameter_info as $name => $options) {
+      if (isset($options['type']) && str_starts_with($options['type'], 'entity:')) {
+        $param = $this->route->getParameter($name);
+        continue 1;
+      }
+    }
     if (!is_object($param)) {
       return AccessResult::forbidden();
     }