   /// - Parameter action: An action string, as defined by SkedGo's backend
   /// - Returns: Whether the action can be handled, i.e., triggering `performExternalAction` will succeed.
   public func canHandleExternalAction(_ action: String) -> Bool {
-    return titleForExternalAction(action) != nil
+    return handlers.contains { $0.canHandle(action) }
   }
   
   /// Determines external actions for the provided segment

  @objc(canHandleExternalActions:)
  public func canHandleExternalActions(for segment: TKSegment) -> Bool {
    guard let actions = segment.bookingExternalActions() else { return false }
    return actions.first { self.titleForExternalAction($0) != nil } != nil
  }
  
  /// Checks if the communication can handle the provided action, which depends both on whether

    // First we build the actions, sorting them priority and dealing with the
    // case where multiple actions can be handled by the same handler (and
    // we'd only want to show one then)
    let bookingTitle = segment.bookingTitle()
    return self.handlers
      .compactMap { $0.handledAction(outOf: externalActions, bookingTitle: bookingTitle) }
      .sorted { $0.handler.priority.rawValue > $1.handler.priority.rawValue }
  }
  
  /// This will handle the external actions of the specified segments either by launching the external app (if there's only one action) or by presenting a sheet of actions to take for the user.
