'How to trigger Modal in an event within slack api's?

I'd like to create a modal that instantly pops up when a new user joins the channel. My thought process was to use an @app.event to trigger when a new member joins, then somehow activate my slash command. But unfortunately app.event doesn't have a trigger_id so i can't just create a modal in an event method. I'm not married to using a slash command either, but it was all I found that could get users to use checkboxes and submit the checked responses for a modal. Any help connecting the two would be great, or other suggestions would be appreciated.

@app.event("member_joined_channel")
def modal_event(event, say, body):
    usr_id = event["user"],
    user_id = usr_id[0]
    channel_id = event["channel"]
    pprint.pprint(body)
    say(text=f"Welcome to the channel, <@{user_id}>! 🎉 You can introduce yourself in this channel.")
    app.client.chat_postMessage(
        channel=channel_id,
    )


@app.command("/cmd")
def modal(body):
    pprint.pprint(body)
    result = app.client.views_open(
        trigger_id=body['trigger_id'],
        view={
            "title": {
                "type": "plain_text",
                "text": "My App",
                "emoji": True
            },
            "submit": {
                "type": "plain_text",
                "text": "Submit",
                "emoji": True
            },
            "type": "modal",
            "close": {
                "type": "plain_text",
                "text": "Cancel",
                "emoji": True
            },
            "blocks": [
                {
                    "type": "section",
                    "text": {
                        "type": "mrkdwn",
                        "text": "Hello, Assistant to the Regional Manager Dwight! *Michael Scott* wants to know where you'd like to take the Paper Company investors to dinner tonight.\n\n"
                    }
                },
                {
                    "type": "input",
                    "element": {
                        "type": "checkboxes",
                        "options": [
                            {
                                "text": {
                                    "type": "plain_text",
                                    "text": "Gary Danko",
                                    "emoji": True
                                },
                                "value": "value-0"
                            },
                            {
                                "text": {
                                    "type": "plain_text",
                                    "text": "Chipotle",
                                    "emoji": True
                                },
                                "value": "value-1"
                            },
                            {
                                "text": {
                                    "type": "plain_text",
                                    "text": "Slack Cafe",
                                    "emoji": True
                                },
                                "value": "value-2"
                            }
                        ]
                    },
                    "label": {
                        "type": "plain_text",
                        "text": "Please select all restaurants you'd be willing to eat at:",
                        "emoji": True
                    }
                }
            ]
        }
    )


Solution 1:[1]

Unfortunately, you need a trigger_id to open a modal. I don't know of a way you can open one without it. What you could do is listen for the [member_joined_channel][1]event and then have your app send the user an ephemeral message in the channel prompting them to click a button which would then open a modal.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 sandra