DEEPLINKX / use case

Join Zoom meetings and open Slack channels

Validate destination identifiers and hand off meeting or workspace navigation to external applications.

DeeplinkX 1.5.8 · Source

An event or community screen can offer a meeting join action and a workspace channel destination. DeeplinkX builds the actions; the provider controls authentication, membership, admission, and access to the destination.

Reusable Flutter example

import 'package:deeplink_x/deeplink_x.dart';

Future<bool> joinZoomMeeting({
  required String meetingId,
  String? password,
  String? displayName,
}) {
  final id = meetingId.trim();
  if (id.isEmpty) return Future.value(false);

  final cleanPassword = password?.trim();
  final cleanDisplayName = displayName?.trim();

  return DeeplinkX().launchAction(
    Zoom.joinMeeting(
      meetingId: id,
      password: cleanPassword == null || cleanPassword.isEmpty
          ? null
          : cleanPassword,
      displayName: cleanDisplayName == null || cleanDisplayName.isEmpty
          ? null
          : cleanDisplayName,
    ),
  );
}

Future<bool> openSlackChannel({
  required String teamId,
  required String channelId,
}) {
  final workspace = teamId.trim();
  final channel = channelId.trim();
  if (workspace.isEmpty || channel.isEmpty) return Future.value(false);

  return DeeplinkX().launchAction(
    Slack.openChannel(teamId: workspace, channelId: channel),
  );
}

Show validation messages in the host UI so invalid input is distinguishable from a failed handoff.

Current example inputs and behavior

  • Zoom meeting ID and password start empty; display name defaults to DeeplinkX Guest.
  • The meeting field's 0000000000 is a placeholder to replace before launching, not a working meeting.
  • Slack workspace and channel fields start empty. T00000000 and C00000000 are placeholder formats, not working destinations.
  • Trim required fields. Reject an empty meeting ID or either missing Slack identifier. Convert empty optional password/display name to null.
  • The screen prevents simultaneous launch requests and shows the final Boolean outcome.

Configuration and limits

  • Consult the Zoom guide and Slack guide, plus the example Android manifest and iOS Info.plist.
  • Use a real meeting or channel only when you have access. Do not publish private credentials or actual meeting passwords in the public hub.
  • Use valid meeting IDs and a workspace/channel the user can access.
  • A successful launch request does not establish that the user joined a meeting, was admitted, or viewed a channel. The destination app manages admission and channel access.

UI behavior

  • Empty required values are rejected before constructing a launch request.
  • Trimmed IDs reach ZoomJoinMeetingAction and SlackOpenChannelAction.
  • Empty optional Zoom values become null; a supplied display name and password are preserved after trimming.
  • Placeholder destinations are clearly labeled and never advertised as live demo access.
  • Pending requests prevent repeat taps; failure feedback does not claim a network or permission diagnosis that the Boolean cannot provide.

Source code

All use cases · Sharing and messaging · Social support links