Cvent Event Cloud · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Cvent REST Contacts API
29 actions
29 updates
phrasing
extends
openapi/cvent-event-cloud-contacts-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Cvent Event Cloud's API. It is a proposal applied on top of the contract, not a document Cvent Event Cloud publishes.
What the actions change
x-apievangelist-phrasing
Targets 29 · first 16 shown; the file carries all of them
$.info
$.paths['/contact-groups'].get
$.paths['/contact-groups'].post
$.paths['/contact-groups/{id}'].get
$.paths['/contact-groups/{id}'].put
$.paths['/contact-groups/{id}'].delete
$.paths['/contact-groups/{id}/contacts'].get
$.paths['/contact-groups/{id}/contacts/{contactId}'].put
$.paths['/contact-groups/{id}/contacts/{contactId}'].delete
$.paths['/contact-types'].get
$.paths['/contacts'].get
$.paths['/contacts'].put
$.paths['/contacts'].post
$.paths['/contacts'].patch
$.paths['/contacts/filter'].post
$.paths['/contacts/obfuscate/{obfuscateId}/status'].get
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Cvent REST Contacts API
version: 1.0.0
extends: openapi/cvent-event-cloud-contacts-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: 28
- target: $.paths['/contact-groups'].get
update:
x-apievangelist-phrasing:
intent: List contact groups
effect: read
questions:
- What contact groups exist in my address book?
- Can I filter contact groups or page through them by date?
instructions:
- text: List all contact groups.
- text: List contact groups matching {filter}.
slots:
filter: query.filter
method: generated
generated: '2026-09-26'
- target: $.paths['/contact-groups'].post
update:
x-apievangelist-phrasing:
intent: Create a contact group
effect: write
questions:
- Can I create a new group to organize contacts, like a distribution list?
- What do I need to supply to make a contact group?
instructions:
- text: Create a contact group named {name} with ID {id}.
slots:
name: requestBody.name
id: requestBody.id
- text: Make a new contact group {name} (ID {id}) described as {description}.
slots:
name: requestBody.name
id: requestBody.id
description: requestBody.description
method: generated
generated: '2026-09-26'
- target: $.paths['/contact-groups/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get a contact group
effect: read
questions:
- Can I see the details of one contact group, like its type and note?
- What is the description of a particular contact group?
instructions:
- text: Get contact group {group}.
slots:
group: path.id
- text: Show the settings of contact group {group}.
slots:
group: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/contact-groups/{id}'].put
update:
x-apievangelist-phrasing:
intent: Update a contact group
effect: write
questions:
- Can I rename an existing contact group?
- How do I change the description or note on a contact group?
instructions:
- text: Rename contact group {group} to {name}.
slots:
group: path.id
name: requestBody.name
- text: Update the note on contact group {group} to {note}.
slots:
group: path.id
note: requestBody.note
method: generated
generated: '2026-09-26'
- target: $.paths['/contact-groups/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a contact group
effect: destructive
questions:
- Can I delete a contact group I no longer use?
- Is removing a whole contact group reversible?
instructions:
- text: Delete contact group {group}.
slots:
group: path.id
- text: Remove the contact group {group} from the address book.
slots:
group: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/contact-groups/{id}/contacts'].get
update:
x-apievangelist-phrasing:
intent: List contact IDs in a group
effect: read
questions:
- Which contacts belong to a given contact group?
- Can I get just the contact IDs that are members of a group?
instructions:
- text: List the contact IDs in contact group {group}.
slots:
group: path.id
- text: Show who is a member of contact group {group}.
slots:
group: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/contact-groups/{id}/contacts/{contactId}'].put
update:
x-apievangelist-phrasing:
intent: Add a contact to a group
effect: write
questions:
- Can I put a single contact into a contact group?
- How do I add someone to one of my contact groups?
instructions:
- text: Add contact {contactId} to contact group {group}.
slots:
contactId: path.contactId
group: path.id
- text: Put contact {contactId} in group {group}.
slots:
contactId: path.contactId
group: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/contact-groups/{id}/contacts/{contactId}'].delete
update:
x-apievangelist-phrasing:
intent: Remove a contact from a group
effect: destructive
questions:
- Can I take one contact out of a contact group without deleting them?
- Does removing someone from a group keep them in the address book?
instructions:
- text: Remove contact {contactId} from contact group {group}.
slots:
contactId: path.contactId
group: path.id
- text: Take contact {contactId} out of group {group}.
slots:
contactId: path.contactId
group: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/contact-types'].get
update:
x-apievangelist-phrasing:
intent: List contact types
effect: read
questions:
- What contact types are defined in my account?
- Can I filter the list of contact types?
instructions:
- text: List all contact types.
- text: List contact types matching {filter}.
slots:
filter: query.filter
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts'].get
update:
x-apievangelist-phrasing:
intent: List contacts in the address book
effect: read
questions:
- How do I page through all the contacts in my Cvent address book?
- Can I include purged contacts when listing contacts?
- Can I list contacts changed after a certain date?
instructions:
- text: List contacts matching filter {filter}.
slots:
filter: query.filter
- text: 'List contacts modified after {after}, including purged ones: {includePurged}.'
slots:
after: query.after
includePurged: query.includePurged
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts'].put
update:
x-apievangelist-phrasing:
intent: Update several contacts at once
effect: write
questions:
- Can I replace the details of many contacts in one bulk request?
- What should I watch for when bulk-updating de-duplication fields on contacts?
instructions:
- text: Bulk update these contacts with the full records I provide.
- text: Overwrite the listed contacts in one batch with their new values.
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts'].post
update:
x-apievangelist-phrasing:
intent: Create contacts in bulk
effect: write
questions:
- Can I add a list of new contacts to the address book in one call?
- Is there an upsert option when creating contacts so existing ones get updated?
instructions:
- text: Create these new contacts in the address book.
- text: Create the contacts I provide with upsert set to {upsert}.
slots:
upsert: query.upsert
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts'].patch
update:
x-apievangelist-phrasing:
intent: Partially update several contacts
effect: write
questions:
- Can I change just a few fields on many contacts and leave the rest intact?
- Which endpoint patches a batch of contacts without overwriting untouched values?
instructions:
- text: Patch only the provided fields on this batch of contacts.
- text: Apply a partial update to multiple contacts, keeping all other values as they are.
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/filter'].post
update:
x-apievangelist-phrasing:
intent: Search contacts with a body filter
effect: read
questions:
- Can I search contacts with a filter longer than a URL allows?
- Is there a POST search that returns the same data as listing contacts?
instructions:
- text: Search contacts using the body filter {filter}.
slots:
filter: requestBody.filter
- text: Search contacts with filter {filter}, {limit} per page.
slots:
filter: requestBody.filter
limit: query.limit
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/obfuscate/{obfuscateId}/status'].get
update:
x-apievangelist-phrasing:
intent: Check a contact obfuscation status
effect: read
questions:
- Has my request to anonymize a contact finished yet?
- Where can I check the progress of a contact obfuscation?
instructions:
- text: Check the status of obfuscation {obfuscateId}.
slots:
obfuscateId: path.obfuscateId
- text: Tell me whether obfuscation request {obfuscateId} has completed.
slots:
obfuscateId: path.obfuscateId
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/{contactId}/history'].get
update:
x-apievangelist-phrasing:
intent: Get a contact's change history
effect: read
questions:
- Who changed a contact's record and when?
- Can I see the edit history of one contact within a date range?
instructions:
- text: Show the change history for contact {contactId}.
slots:
contactId: path.contactId
- text: List changes to contact {contactId} made after {after}.
slots:
contactId: path.contactId
after: query.after
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get a contact
effect: read
questions:
- Can I look up one contact's full record by ID?
- Which sensitive fields like passport number need an extra scope to read on a contact?
instructions:
- text: Get contact {contact}.
slots:
contact: path.id
- text: Show the address book record for contact {contact}.
slots:
contact: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/{id}'].put
update:
x-apievangelist-phrasing:
intent: Replace a contact's details
effect: write
questions:
- Can I overwrite a single contact's record with new values?
- What happens to fields I leave out when I fully update one contact?
instructions:
- text: Replace the record of contact {contact} with the values I provide.
slots:
contact: path.id
- text: Fully update contact {contact} and set its parent contact to {parentId}.
slots:
contact: path.id
parentId: requestBody.parentId
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a contact from the address book
effect: destructive
questions:
- Can I delete a contact from the address book but keep them on events?
- Does deleting a contact remove them from events they registered for?
instructions:
- text: Delete contact {contact} from the address book.
slots:
contact: path.id
- text: Remove contact {contact} from my contacts.
slots:
contact: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/{id}'].patch
update:
x-apievangelist-phrasing:
intent: Change some fields on one contact
effect: write
questions:
- Can I change just one contact's company or title without touching other fields?
- How do I clear a single field on a contact by setting it to null?
instructions:
- text: Update the company of contact {contact} to {company}.
slots:
contact: path.id
company: requestBody.company
- text: Change contact {contact}'s job title to {title}.
slots:
contact: path.id
title: requestBody.title
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/{id}/custom-fields/{customFieldId}/answers'].put
update:
x-apievangelist-phrasing:
intent: Set a contact's custom field answer
effect: write
questions:
- Can I record an answer to a custom field on a contact?
- How do I update a single custom question value for one contact?
instructions:
- text: Set custom field {customFieldId} on contact {contact} to {value}.
slots:
customFieldId: path.customFieldId
contact: path.id
value: requestBody.value
- text: Update contact {contact}'s answer to custom field {customFieldId} with {value}.
slots:
contact: path.id
customFieldId: path.customFieldId
value: requestBody.value
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/{id}/merge'].post
update:
x-apievangelist-phrasing:
intent: Merge duplicate contacts
effect: destructive
questions:
- Can I combine duplicate contacts into one record?
- How many contacts can be merged together at once?
instructions:
- text: Merge contacts {secondaryContacts} into contact {contact}.
slots:
secondaryContacts: requestBody.secondaryContacts
contact: path.id
- text: Merge duplicates {secondaryContacts} into primary contact {contact} using conflict resolution {conflictResolution}.
slots:
secondaryContacts: requestBody.secondaryContacts
contact: path.id
conflictResolution: requestBody.conflictResolution
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/{id}/obfuscate'].post
update:
x-apievangelist-phrasing:
intent: Obfuscate a contact's personal data
effect: destructive
questions:
- Can I anonymize a contact to honor a privacy or data erasure request?
- How do I start obfuscating a contact's personal information?
instructions:
- text: Obfuscate contact {contact}.
slots:
contact: path.id
- text: Start anonymizing the personal data of contact {contact}.
slots:
contact: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/{id}/profile-images'].put
update:
x-apievangelist-phrasing:
intent: Set a contact's profile picture
effect: write
questions:
- Can I give a contact a profile photo from an uploaded file?
- Does assigning a new contact picture replace the existing one?
instructions:
- text: Set uploaded file {file} at {href} as the profile picture for contact {contact}.
slots:
file: requestBody.file
href: requestBody.href
contact: path.id
- text: Replace contact {contact}'s photo with file {file} ({href}).
slots:
contact: path.id
file: requestBody.file
href: requestBody.href
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/{id}/profile-images'].delete
update:
x-apievangelist-phrasing:
intent: Remove a contact's profile picture
effect: destructive
questions:
- Can I delete the photo on a contact's profile?
- How do I clear a contact's profile image?
instructions:
- text: Delete the profile picture of contact {contact}.
slots:
contact: path.id
- text: Remove contact {contact}'s profile photo.
slots:
contact: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/{id}/related-contacts'].get
update:
x-apievangelist-phrasing:
intent: List a contact's related contacts
effect: read
questions:
- Which other contacts are related to this person, like a guest or assistant?
- Can I get the IDs of all contacts linked to one contact?
instructions:
- text: List contacts related to contact {contact}.
slots:
contact: path.id
- text: Get the related contact IDs for {contact}.
slots:
contact: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/{id}/related-contacts/{relatedContactId}'].put
update:
x-apievangelist-phrasing:
intent: Relate two contacts
effect: write
questions:
- Can I link two contacts together as related?
- How do I record that two people in my address book are connected?
instructions:
- text: Link contact {contact} with related contact {relatedContactId}.
slots:
contact: path.id
relatedContactId: path.relatedContactId
- text: Add a relationship between contacts {contact} and {relatedContactId}.
slots:
contact: path.id
relatedContactId: path.relatedContactId
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/{id}/related-contacts/{relatedContactId}'].delete
update:
x-apievangelist-phrasing:
intent: Unlink two related contacts
effect: destructive
questions:
- Can I remove the link between two related contacts?
- Does deleting a contact relationship delete either contact?
instructions:
- text: Remove the relationship between contact {contact} and {relatedContactId}.
slots:
contact: path.id
relatedContactId: path.relatedContactId
- text: Unlink related contact {relatedContactId} from contact {contact}.
slots:
relatedContactId: path.relatedContactId
contact: path.id
method: generated
generated: '2026-09-26'