# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Admin API V1 User Profiles API version: 1.0.0 extends: openapi/optimizely-user-profiles-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-26' generator: build-phrasing.py label: Generated by API Evangelist operations: 33 - target: $.paths['/api/v1/admin/UserProfiles'].get update: x-apievangelist-phrasing: intent: List user profiles effect: read questions: - How do I pull a list of every user profile in the commerce admin? - Can I filter user profiles by last name or activation status and page through them? instructions: - text: List all user profiles. - text: List user profiles matching {filter}, sorted by {orderby}, first {top} only. slots: filter: query.$filter orderby: query.$orderby top: query.$top method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/UserProfiles'].post update: x-apievangelist-phrasing: intent: Create a user profile effect: write questions: - What fields are required to add a new user profile to the storefront admin? - Can I create a buyer account with a default customer and warehouse already set? instructions: - text: Create a user profile for {firstName} {lastName} with email {email} and username {userName}. slots: firstName: requestBody.firstName lastName: requestBody.lastName email: requestBody.email userName: requestBody.userName - text: Add a new user {userName} at company {company} linked to customer {defaultCustomerId}. slots: userName: requestBody.userName company: requestBody.company defaultCustomerId: requestBody.defaultCustomerId method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/UserProfiles({id})'].get update: x-apievangelist-phrasing: intent: Get a user profile by id effect: read questions: - How can I look up a single user profile when I know its id? - Can I expand related records inline when fetching one user profile? instructions: - text: Get user profile {id}. slots: id: path.id - text: Fetch user profile {id} and expand {expand}. slots: id: path.id expand: query.$expand method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/UserProfiles({id})'].put update: x-apievangelist-phrasing: intent: Replace a user profile effect: write questions: - Is there a way to overwrite an entire user profile record in one call? - What happens to fields I leave out when I fully replace a user profile? instructions: - text: Replace user profile {id} entirely with a new record for {email}. slots: id: path.id email: requestBody.email - text: Overwrite the whole user profile {id}, setting position to {position}. slots: id: path.id position: requestBody.position method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/UserProfiles({id})'].delete update: x-apievangelist-phrasing: intent: Delete a user profile effect: destructive questions: - Can I permanently remove one user profile by its id? - Does deleting a single user profile support an If-Match concurrency check? instructions: - text: Delete user profile {id}. slots: id: path.id - text: Delete user profile {id} only if its ETag still matches {etag}. slots: id: path.id etag: header.If-Match method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/UserProfiles({id})'].patch update: x-apievangelist-phrasing: intent: Update fields on a user profile effect: write questions: - How do I change just a user's phone number without resending the whole profile? - Can I deactivate a user by patching their profile? instructions: - text: Change the phone number on user profile {id} to {phone}. slots: id: path.id phone: requestBody.phone - text: 'Mark user profile {id} as deactivated: {isDeactivated}.' slots: id: path.id isDeactivated: requestBody.isDeactivated method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/UserProfiles/Default.Default()'].get update: x-apievangelist-phrasing: intent: Get a blank user profile template effect: read questions: - What default values does a brand-new user profile start with? - Is there an empty user profile template I can fill in before creating one? instructions: - text: Get the default user profile template. - text: Show me the default field values for a new user profile. method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/UserProfiles({id})/Default.Roles()'].get update: x-apievangelist-phrasing: intent: Get a user's roles via the Roles function effect: read questions: - Which roles are attached to a user profile, using the Default.Roles() function? - Can I call the OData Roles function on a user profile id to see its permissions? instructions: - text: Call the Roles function for user profile {id}. slots: id: path.id - text: Run Default.Roles() on user {id} and filter to {filter}. slots: id: path.id filter: query.$filter method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/UserProfiles/Default.Current()'].get update: x-apievangelist-phrasing: intent: Get the signed-in user via the Current function effect: read questions: - Which user profile am I signed in as, using the Default.Current() OData function? - Can the Current function tell me the calling admin's own profile? instructions: - text: Call Default.Current() to get my own user profile. - text: Run the Current function and select only {select}. slots: select: query.$select method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles/current'].get update: x-apievangelist-phrasing: intent: Get the signed-in user from the current route effect: read questions: - Is there a plain /userprofiles/current route that returns my own profile? - What does the lowercase current-user route return for the caller? instructions: - text: Fetch my profile from the userprofiles/current route. - text: Get the current user record from the current route and expand {expand}. slots: expand: query.$expand method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles({key})/roles'].get update: x-apievangelist-phrasing: intent: List roles assigned to a user effect: read questions: - Where can I read the role list for a user from the roles sub-route? - Can I see which admin roles a specific user currently holds? instructions: - text: List the roles on user profile {key} from its roles route. slots: key: path.key - text: Show roles for user {key}, first {top}. slots: key: path.key top: query.$top method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles({key})/roles'].put update: x-apievangelist-phrasing: intent: Replace a user's roles (PUT) effect: write questions: - Can I overwrite the full set of roles a user has with a PUT? - How are a user's roles replaced rather than appended? instructions: - text: Replace the role set on user profile {key} using PUT. slots: key: path.key - text: PUT a new role list onto user {key}. slots: key: path.key method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles({key})/roles'].post update: x-apievangelist-phrasing: intent: Assign roles to a user (POST) effect: write questions: - Is there a POST route for assigning roles to a user? - Can I grant roles to a user profile by posting to its roles endpoint? instructions: - text: POST roles to user profile {key}. slots: key: path.key - text: Grant roles to user {key} through the POST roles route. slots: key: path.key method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles({key})/roles'].delete update: x-apievangelist-phrasing: intent: Remove roles from a user effect: destructive questions: - Can I strip roles off a user profile? - What removes the roles a user has been granted? instructions: - text: Remove the roles from user profile {key}. slots: key: path.key - text: Revoke role assignments for user {key}. slots: key: path.key method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles({key})/allowedwebsites'].get update: x-apievangelist-phrasing: intent: List websites a user may access effect: read questions: - Which storefront websites is a given user allowed to sign in to? - Can I check the allowed websites for a user profile? instructions: - text: List the allowed websites for user {key}. slots: key: path.key - text: Show which websites user {key} can access, filtered by {filter}. slots: key: path.key filter: query.$filter method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles({key})/approvers'].get update: x-apievangelist-phrasing: intent: List a user's order approvers effect: read questions: - Who can approve orders for a particular user? - What approvers are available to a buyer's user profile? instructions: - text: List the approvers for user profile {key}. slots: key: path.key - text: Show possible order approvers for user {key}. slots: key: path.key method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles({key})/availablecustomers'].get update: x-apievangelist-phrasing: intent: List customers a user can be assigned to effect: read questions: - Which customers could still be assigned to this user? - Can I get the available bill-to customers for a user profile? instructions: - text: List available customers for user {key}. slots: key: path.key - text: Show the first {top} customers user {key} could be linked to. slots: key: path.key top: query.$top method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles/delete'].delete update: x-apievangelist-phrasing: intent: Bulk delete user profiles effect: destructive questions: - Can I delete several user profiles at once by passing a list of ids? - Is there a bulk delete route for user accounts? instructions: - text: Bulk delete user profiles {ids}. slots: ids: query.ids - text: 'Remove all of these users in one call: {ids}.' slots: ids: query.ids method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles({key})/customers({customerKey})'].get update: x-apievangelist-phrasing: intent: Get a customer linked to a user effect: read questions: - Can I read one specific customer assigned to a user profile? - Is a given customer account attached to this user? instructions: - text: Get customer {customerKey} assigned to user {key}. slots: customerKey: path.customerKey key: path.key - text: Show the customer record {customerKey} under user profile {key}. slots: customerKey: path.customerKey key: path.key method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles({key})/customproperties({custompropertyKey})'].get update: x-apievangelist-phrasing: intent: Get a custom property on a user effect: read questions: - How do I read a custom property stored on a user profile? - Can I fetch one extended attribute from a user record? instructions: - text: Get custom property {custompropertyKey} on user {key}. slots: custompropertyKey: path.custompropertyKey key: path.key - text: Read user {key}'s custom field {custompropertyKey}. slots: key: path.key custompropertyKey: path.custompropertyKey method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles({key})/dashboardpanelpositions({dashboardpanelpositionKey})'].get update: x-apievangelist-phrasing: intent: Get a user's dashboard panel position effect: read questions: - Where is a given dashboard panel placed for a user? - Can I read one saved dashboard layout position for a user profile? instructions: - text: Get dashboard panel position {dashboardpanelpositionKey} for user {key}. slots: dashboardpanelpositionKey: path.dashboardpanelpositionKey key: path.key - text: Show where user {key} placed dashboard panel {dashboardpanelpositionKey}. slots: key: path.key dashboardpanelpositionKey: path.dashboardpanelpositionKey method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles({key})/emaillists({emaillistKey})'].get update: x-apievangelist-phrasing: intent: Get an email list a user is on effect: read questions: - Is a user subscribed to a particular email list? - Can I look up one email list membership on a user profile? instructions: - text: Get email list {emaillistKey} for user {key}. slots: emaillistKey: path.emaillistKey key: path.key - text: Check user {key}'s membership in email list {emaillistKey}. slots: key: path.key emaillistKey: path.emaillistKey method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles({key})/messagestatuses({messagestatusKey})'].get update: x-apievangelist-phrasing: intent: Get a message status for a user effect: read questions: - Has a user read a particular site message? - What is the status of one message delivered to a user profile? instructions: - text: Get message status {messagestatusKey} for user {key}. slots: messagestatusKey: path.messagestatusKey key: path.key - text: Show whether user {key} has seen message status {messagestatusKey}. slots: key: path.key messagestatusKey: path.messagestatusKey method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles({key})/odppersonas({personaKey})'].get update: x-apievangelist-phrasing: intent: Get a user's ODP persona effect: read questions: - Which Optimizely Data Platform persona is attached to a user? - Can I read one ODP persona record from a user profile? instructions: - text: Get ODP persona {personaKey} for user {key}. slots: personaKey: path.personaKey key: path.key - text: Show the data platform persona {personaKey} linked to user {key}. slots: personaKey: path.personaKey key: path.key method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles({key})/salespersons({salespersonKey})'].get update: x-apievangelist-phrasing: intent: Get a salesperson tied to a user effect: read questions: - Who is the sales rep assigned to a user profile? - Can I read one salesperson record linked to a user? instructions: - text: Get salesperson {salespersonKey} for user {key}. slots: salespersonKey: path.salespersonKey key: path.key - text: Show sales rep {salespersonKey} associated with user {key}. slots: salespersonKey: path.salespersonKey key: path.key method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles({key})/userpaymentprofiles({userpaymentprofileKey})'].get update: x-apievangelist-phrasing: intent: Get a user's saved payment profile effect: read questions: - Can I see a stored payment method saved on a user's profile? - What does one saved payment profile for a user contain? instructions: - text: Get payment profile {userpaymentprofileKey} for user {key}. slots: userpaymentprofileKey: path.userpaymentprofileKey key: path.key - text: Show user {key}'s saved card {userpaymentprofileKey}. slots: key: path.key userpaymentprofileKey: path.userpaymentprofileKey method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles({key})/userprofilepasswords({userprofilepasswordKey})'].get update: x-apievangelist-phrasing: intent: Get a user's password history record effect: read questions: - Can I read a stored password history entry for a user? - Where is one previous-password record for a user profile kept? instructions: - text: Get password record {userprofilepasswordKey} for user {key}. slots: userprofilepasswordKey: path.userprofilepasswordKey key: path.key - text: Show password history entry {userprofilepasswordKey} of user {key}. slots: userprofilepasswordKey: path.userprofilepasswordKey key: path.key method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles({key})/userprofilewishlistfavorites({userprofilewishlistfavoriteKey})'].get update: x-apievangelist-phrasing: intent: Get a user's favorited wish list effect: read questions: - Which wish lists has a user marked as favorite? - Can I read one wish list favorite flag for a user profile? instructions: - text: Get wish list favorite {userprofilewishlistfavoriteKey} for user {key}. slots: userprofilewishlistfavoriteKey: path.userprofilewishlistfavoriteKey key: path.key - text: Show favorited list entry {userprofilewishlistfavoriteKey} of user {key}. slots: userprofilewishlistfavoriteKey: path.userprofilewishlistfavoriteKey key: path.key method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles({key})/userprofilewishlisthides({userprofilewishlisthideKey})'].get update: x-apievangelist-phrasing: intent: Get a wish list a user has hidden effect: read questions: - Has a user hidden a shared wish list from view? - Can I look up one hidden wish list record for a user? instructions: - text: Get hidden wish list record {userprofilewishlisthideKey} for user {key}. slots: userprofilewishlisthideKey: path.userprofilewishlisthideKey key: path.key - text: Show wish list hide entry {userprofilewishlisthideKey} of user {key}. slots: userprofilewishlisthideKey: path.userprofilewishlisthideKey key: path.key method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles({key})/userprofilewishlisttags({userprofilewishlisttagKey})'].get update: x-apievangelist-phrasing: intent: Get a wish list tag on a user effect: read questions: - What tags has a user applied to their wish lists? - Can I fetch one wish list tag belonging to a user profile? instructions: - text: Get wish list tag {userprofilewishlisttagKey} for user {key}. slots: userprofilewishlisttagKey: path.userprofilewishlisttagKey key: path.key - text: Show list tag {userprofilewishlisttagKey} created by user {key}. slots: userprofilewishlisttagKey: path.userprofilewishlisttagKey key: path.key method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles({key})/websites({websiteKey})'].get update: x-apievangelist-phrasing: intent: Get a website assigned to a user effect: read questions: - Is a specific website assigned to this user profile? - Can I read one website record from a user's assigned sites? instructions: - text: Get website {websiteKey} assigned to user {key}. slots: websiteKey: path.websiteKey key: path.key - text: Show assigned site {websiteKey} on user profile {key}. slots: websiteKey: path.websiteKey key: path.key method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles({key})/wishlistproducts({wishlistproductKey})'].get update: x-apievangelist-phrasing: intent: Get a wish list product for a user effect: read questions: - Can I read one product a user has saved to a wish list? - What quantity and details does a user's wish list item have? instructions: - text: Get wish list product {wishlistproductKey} for user {key}. slots: wishlistproductKey: path.wishlistproductKey key: path.key - text: Show saved item {wishlistproductKey} on user {key}'s lists. slots: wishlistproductKey: path.wishlistproductKey key: path.key method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/userprofiles({key})/wishlists({wishlistKey})'].get update: x-apievangelist-phrasing: intent: Get a wish list owned by a user effect: read questions: - Can I pull up one of a user's wish lists by its id? - What does a single wish list belonging to a user look like? instructions: - text: Get wish list {wishlistKey} owned by user {key}. slots: wishlistKey: path.wishlistKey key: path.key - text: Open user {key}'s wish list {wishlistKey}. slots: key: path.key wishlistKey: path.wishlistKey method: generated generated: '2026-09-26'