apps/docs/content/apis/actions/code-examples.mdx
Actions are a powerful tool to extend ZITADEL, and you might wonder what use cases actions can be used for.
This page provides a non-exhaustive list of possibilities which is provided by examples. If a use case is missing, feel free to contribute an issue or pull request to the repository, thanks in advance 🤗.
Append claims returned on OIDC requests.
Extend the claims by a hardcoded value.
<details open=""> <summary>Code example</summary>https://github.com/zitadel/actions/blob/main/examples/add_claim.js
Extend the claims by dynamically reading metadata from a user and sets the picture-claim if idpPicture-metadata value is present.
<details open=""> <summary>{props.summary ? props.summary : 'Code example'}</summary>https://github.com/zitadel/actions/blob/main/examples/add_picture_claim_from_idp_metadata.js
Extend the claims by dynamically reading metadata from an organization and sets the present metadata.
<details open=""> <summary>Code example</summary>https://github.com/zitadel/actions/blob/main/examples/org_metadata_claim.js
Some products require specific role mapping from ZITADEL, no worries we got you covered 😉
<details open=""> <summary>Code example</summary>https://github.com/zitadel/actions/blob/main/examples/custom_roles.js
There's even a possibility to use the metadata of organizations the user is granted to
<details open=""> <summary>Code example</summary>https://github.com/zitadel/actions/blob/main/examples/custom_roles_org_metadata.js
Append attributes returned on SAML requests.
Some products require specific role mapping from ZITADEL, no worries we got you covered 😉
<details open=""> <summary>Code example</summary>https://github.com/zitadel/actions/blob/main/examples/set_custom_attribute.js
Extend the attributes by dynamically reading metadata from an organization and sets the present metadata.
<details open=""> <summary>Code example</summary>https://github.com/zitadel/actions/blob/main/examples/org_metadata_attribute.js
You can automate manual tasks such as assigning default roles during user creation.
Useful if you trust the provided information or don't want the users to verify their e-mail addresses.
https://github.com/zitadel/actions/blob/main/examples/verify_email.js
Allows you to assign default roles to a user after the user was created or federated.
https://github.com/zitadel/actions/blob/main/examples/add_user_grant.js
Adding metadata to users allows you to set default metadata on users.
https://github.com/zitadel/actions/blob/main/examples/add_metadata.js
If you want to ensure that the data of a user are always up to date, you can automatically update user fields during authentication and save time of your customers and your team.
If you use Okta as an identity provider, you can improve the onboarding experience of new users by prefilling some basic information during authentication.
<details open=""> <summary>Code example</summary>https://github.com/zitadel/actions/blob/main/examples/okta_identity_provider.js
If you use Gitlab as an identity provider, you can improve the onboarding experience of new users by prefilling some basic information during authentication.
<details open=""> <summary>Code example</summary>https://github.com/zitadel/actions/blob/main/examples/gitlab_identity_provider.js
If you use GitHub as an identity provider, you can improve the onboarding experience of new users by prefilling some basic information during authentication.
<details open=""> <summary>Code example</summary>https://github.com/zitadel/actions/blob/main/examples/github_identity_provider.js
If you use a generic OIDC identity provider, you can improve the onboarding experience of new users by prefilling some basic information during authentication.
<details open=""> <summary>Code example</summary>https://github.com/zitadel/actions/blob/main/examples/set_idp_picture_metadata.js
If you use Okta as an identity provider, you can improve the onboarding experience of new users by prefilling some basic information during authentication.
<details open=""> <summary>Code example</summary>https://github.com/zitadel/actions/blob/main/examples/okta_saml_prefil_register_form.js
If you use Microsoft Entra as SAML identity provider, you can improve the onboarding experience of new users by prefilling some basic information during authentication.
<details open=""> <summary>Code example</summary>https://github.com/zitadel/actions/blob/main/examples/entra_id_saml_prefil_register_form.js
If you use a SAML identity provider like mocksaml, you can improve the onboarding experience of new users by prefilling some basic information during authentication.
<details open=""> <summary>Code example</summary>https://github.com/zitadel/actions/blob/main/examples/post_auth_saml.js
Based on the context, the execution path of an action can change. ZITADEL allows complex execution paths, of course. 😎
Execution paths might change based on the application initiating the authentication.
https://github.com/zitadel/actions/blob/main/examples/execute_action_on_specific_app.js
This example uses zitadel's log module
Your action can also check for errors during the login process.
https://github.com/zitadel/actions/blob/main/examples/post_auth_log.js
This example uses zitadel's log module
Allows you to limit the user interaction. The error thrown will be shown to the user if the action is not allowed to fail.
<details open=""> <summary>Code example</summary>https://github.com/zitadel/actions/blob/main/examples/throw_error.js