User requested an app

Facts

Required scopes

Works with

Events API
{
  "type": "app_requested",
  "app_request":{
      "id": "1234",
      "app": {
        "id": "A5678",
        "name": "Brent's app",
        "description": "They're good apps, Bront.",
        "help_url": "brontsapp.com",
        "privacy_policy_url": "brontsapp.com",
        "app_homepage_url": "brontsapp.com",
        "app_directory_url": "https://slack.slack.com/apps/A102ARD7Y",
        "is_app_directory_approved": true,
        "is_internal": false,
        "additional_info": "none"
      },
      "previous_resolution": {
         "status": "approved",
         "scopes": [
          {
            "name": "app_requested",
            "description": "allows this app to listen for app install requests",
            "is_sensitive": false,
            "token_type": "user"
          }]
      },
      "user":{
        "id": "U1234",
        "name": "Bront",
        "email": "bront@brent.com"
      },
      "team": {
        "id": "T1234",
        "name": "Brant App Team",
        "domain": "brantappteam"
      },
      "enterprise": null,
      "scopes": [
        {
          "name": "app_requested",
          "description": "allows this app to listen for app install requests",
          "is_sensitive": false,
          "token_type": "user"
        }
      ],
      "message": "none"
  }
}

The app_requested event payload contains info about an app that a user on a team has requested to install.

Field Description
app Info on the app that the user has requested. Nested inside the app field, the help_url, privacy_policy_url, app_homepage_url, and app_directory_url fields contain links to more info.
previous_resolution Indicates whether the app was previously approved or restricted in this org. If the app installation has not been requested before, previous_resolution won't appear in the payload.
user User ID of the user requesting the install.
team Team ID of of the team that the app will be approved for. If null, then the approval request is for the whole enterprise.
enterprise If not null, conveys that the approval is for whole enterprise.
scopes The scopes that the app requests.
message An optional message from the app.

When an event occurs, we will send an HTTP POST request to your Request URL. The outer payload is uniform across all Events API methods, and contains fields like team_id and event. Learn more