Publishing views to App Home
Home tabs are customizable surfaces accessible via the sidebar and search that allow apps to display views on a per-user basis. After enabling App Home within your app configuration, home tabs can be published and updated by passing a user_id
and view payload to the views.publish
method.
You can subscribe to the app_home_opened
event to listen for when users open your App Home.
Refer to the module document to learn the available listener arguments.
@app.event("app_home_opened")
def update_home_tab(client, event, logger):
try:
# Call views.publish with the built-in client
client.views_publish(
# Use the user ID associated with the event
user_id=event["user"],
# Home tabs must be enabled in your app configuration
view={
"type": "home",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Welcome home, <@" + event["user"] + "> :house:*"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Learn how home tabs can be more useful and interactive <https://api.slack.com/surfaces/tabs/using|*in the documentation*>."
}
}
]
}
)
except Exception as e:
logger.error(f"Error publishing home tab: {e}")