# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Mapp Engage public Contact API version: 1.0.0 extends: openapi/mapp-contact-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: 8 - target: $.paths['/contact/anonymize'].get update: x-apievangelist-phrasing: intent: Anonymize a contact's personal data (GDPR) effect: destructive questions: - How do I handle a GDPR erasure request for a contact? - Can I strip a contact's personal data while keeping the record? instructions: - text: Anonymize contact {contactId} and notify {notificationRecipient} when done. slots: contactId: query.contactId notificationRecipient: query.notificationRecipient - text: Erase the PII of contact {contactId} under GDPR. slots: contactId: query.contactId method: generated generated: '2026-09-26' - target: $.paths['/contact/checkUpdateVersion'].get update: x-apievangelist-phrasing: intent: Check whether a profile update was saved effect: read questions: - Has a specific contact profile update made it into the Data Store yet? - Can I confirm an update with a given timestamp version was saved? instructions: - text: Check whether update version {updateVersion} for contact {contactIdentifier} is saved. slots: updateVersion: query.updateVersion contactIdentifier: query.contactIdentifier - text: Confirm contact {contactIdentifier} has the update stamped {updateVersion}. slots: contactIdentifier: query.contactIdentifier updateVersion: query.updateVersion method: generated generated: '2026-09-26' - target: $.paths['/contact/create'].post update: x-apievangelist-phrasing: intent: Create a contact effect: write questions: - How do I add a new contact with a first and last name? - Which identifiers can I use when creating a contact? instructions: - text: Create a contact for jane@example.com with first name Jane. - text: Add a new contact with these attributes. method: generated generated: '2026-09-26' - target: $.paths['/contact/delete'].post update: x-apievangelist-phrasing: intent: Delete a contact by identifier effect: destructive questions: - Can I delete a contact by passing its email or mobile identifier? - What identifier types work for removing a contact? instructions: - text: Delete the contact with email test@test.com. - text: Remove this contact using its mobile identifier. method: generated generated: '2026-09-26' - target: $.paths['/contact/export'].get update: x-apievangelist-phrasing: intent: Export a contact's data (GDPR) effect: read questions: - How do I fulfil a GDPR data access request for a contact? - Who gets the download link when a contact export finishes? instructions: - text: Export all data for contact {contactId} and send the link to {notificationRecipient}. slots: contactId: query.contactId notificationRecipient: query.notificationRecipient - text: Start a GDPR data export for contact {contactId}. slots: contactId: query.contactId method: generated generated: '2026-09-26' - target: $.paths['/contact/get'].post update: x-apievangelist-phrasing: intent: Get a contact by email or mobile identifier effect: read questions: - Can I fetch a contact by sending its email or mobile as an identifier object? - What does a contact record look like when I look it up by identifier type? instructions: - text: Get the contact whose EMAIL identifier is test@test.com. - text: Fetch the contact for MOBILE identifier 48505606707. method: generated generated: '2026-09-26' - target: $.paths['/contact/update'].post update: x-apievangelist-phrasing: intent: Update a contact effect: write questions: - Does updating a contact clear attributes I leave empty? - How do I update a contact's attributes using a chosen identifier type? instructions: - text: Update the contact using identifier type {identifierType} with these attributes. slots: identifierType: query.identifierType - text: Change the last name of the contact identified by {identifierType}. slots: identifierType: query.identifierType method: generated generated: '2026-09-26' - target: $.paths['/contact/updateMultichannelContact'].post update: x-apievangelist-phrasing: intent: Update a multichannel contact and its mobile alias effect: write questions: - How do I update a contact that has both email and mobile channels? - Can I set a contact's mobile alias correctly while updating profile data? instructions: - text: Update the multichannel contact matched by {identifierType}, keeping its mobile alias. slots: identifierType: query.identifierType - text: Update the email-and-SMS contact by {identifierType} with these attributes. slots: identifierType: query.identifierType method: generated generated: '2026-09-26'