Skip to main content

Admin Portal

The simplest way to give your customers a UI to manage their organization and member settings is using Stytch’s pre-built Admin Portal. Admin Portal provides:
  • AdminPortalMemberManagement - allows of the to invite new Members and manage existing Members
  • AdminPortalOrgSettings - allows Members of the Organization to manage their own Organization settings, including authentication methods and JIT provisioning settings.
  • AdminPortalSSO - allows Members of the Organization to manage their own SSO connections
  • AdminPortalSCIM - allows Members of the Organization to manage their own SCIM connections
Admin Portal Member Management UI

Custom organization management UI

If you need more control over your org management ui, you can build custom flows for managing members and organization settings using the Stytch API.

Search Members

Use Search Members to display all Members in the Organization.

Update Member

Use Update Member to update a Member’s Roles.

Invite a New Member

Use Invite Member to invite a new Member to the Organization.
1

Display all Members

Use Search Members to display all Members in the Organization.
import { useStytchB2BClient } from '@stytch/react/b2b';

const stytch = useStytchB2BClient();

export const MemberTable = () => {
  const [members, setMembers] = useState([]);
  const stytch = useStytchB2BClient();

  useEffect(() => {
    const fetchMembers = async () => {
      const response = await stytch.members.search();
      setMembers(response.members);
    };
    fetchMembers();
    setMembers(response.members);
  }, [stytch]);

  return (
    <table>
      <thead>
        <tr>
          <th>Name</th>
          <th>Email</th>
          <th>Roles</th>
        </tr>
      </thead>
      <tbody>
        {members.map((member) => (
          <tr key={member.member_id}>
            <td>{member.name}</td>
            <td>{member.email_address}</td>
            <td>{member.roles.map((role) => role.role_id).join(', ')}</td>
          </tr>
        ))}
      </tbody>
    </table>
  );
};
2

Update a Member Information

Use Update Member to update a Member from the table.
import { useStytchB2BClient } from '@stytch/react/b2b';

export const UpdateMember = ({ memberId }) => {
  const stytch = useStytchB2BClient();
  const [name, setName] = useState('');

  const handleUpdate = async () => {
    await stytch.members.update({ member_id: memberId, name });
  };

  return (
    <div>
      <input
        value={name}
        onChange={(e) => setName(e.target.value)}
        placeholder="Enter member name"
      />
      <button onClick={handleUpdate}>Update Member</button>
    </div>
  );
};
3

Invite a New Member

Add an Invite Member button to allow inviting new Members to the Organization.
import { useStytchB2BClient } from '@stytch/react/b2b';

const stytch = useStytchB2BClient();

export const InviteMember = () => {
  const stytch = useStytchB2BClient();
  const [email, setEmail] = useState('');

  const handleInvite = async () => {
    await stytch.members.invite({ email_address: email });
  };

  return (
    <div>
      <input
        value={email}
        onChange={(e) => setEmail(e.target.value)}
        placeholder="Enter email address"
      />
      <button onClick={handleInvite}>Invite Member</button>
    </div>
  );
};