def METHOD_NAME(organization, integration_id, name):
    integrations = integration_service.get_integrations(
        providers=["msteams"],
        organization_id=organization.id,
        integration_ids=[integration_id],
    )
    if not integrations:
        return None
    assert len(integrations) == 1, "Found multiple msteams integrations for org!"
    integration = integrations[0]
    team_id = integration.external_id
    client = MsTeamsClient(integration)
    # handle searching for channels first
    channel_list = client.get_channel_list(team_id)
    filtered_channels = list(filter(lambda x: channel_filter(x, name), channel_list))
    if len(filtered_channels) > 0:
        return filtered_channels[0].get("id")
    # handle searching for users
    members = client.get_member_list(team_id, None)
    for i in range(MSTEAMS_MAX_ITERS):
        member_list = members.get("members")
        continuation_token = members.get("continuationToken")
        filtered_members = list(
            filter(lambda x: x.get("name").lower() == name.lower(), member_list)
        )
        if len(filtered_members) > 0:
            # TODO: handle duplicate username case
            user_id = filtered_members[0].get("id")
            tenant_id = filtered_members[0].get("tenantId")
            return client.get_user_conversation_id(user_id, tenant_id)
        if not continuation_token:
            return None
        members = client.get_member_list(team_id, continuation_token)
    return None