Platforms

Each platform offers a fixed set of tools. Dangerous tools wait for an approval or an armed connection; see Getting started.

Twilio

Credentials. Your Account SID (starts with AC, under Account info in the Twilio Console), and a Standard API key made for DylrDev alone: its SID (starts with SK) and secret. Revoking that key in Twilio cuts DylrDev off.

Tool What it does
list_phone_numbers The account’s numbers and where their calls go
list_flows Studio flows (IVRs and routing)
get_flow One Studio flow’s full definition
list_workspaces TaskRouter workspaces
list_task_queues A workspace’s task queues
list_workers A workspace’s workers and their activity
create_task_queue Adds a task queue
delete_task_queue Deletes a task queue. Dangerous

Five9

Credentials. A Five9 user made for DylrDev alone (never a person’s login), its password, and the data center your domain is in (US, CA, UK, or EU). Give it a password login and these roles, in VCC Administrator under Users, then the Roles tab:

  • Administrator, with web services access (User can use Administrator Services) and the permissions for what your AI should manage: campaigns and campaign profiles; lists, contact records, and the DNC list; users; dispositions, reason codes, IVR scripts, prompts, connectors, and variables. Leave off All administrators permissions.
  • Reporting, with the report folders the AI may run.
  • Supervisor, with the statistics views you want, only if you want live statistics. Each statistics call signs out any other statistics session of the same user, which is one more reason the user must be DylrDev’s alone.

Some writes are dangerous only sometimes: while the campaign they change is running, while a running campaign uses the list, profile, prompt, or IVR script, or when an IVR script calls out to an outside host.

Campaigns and profiles

Tool What it does
list_campaigns List campaigns.
get_campaign Get a campaign.
inspect_campaign Inspect a campaign.
create_campaign Create a campaign.
modify_campaign Modify a campaign. Dangerous while the campaign is running, and always for the recording upload (FTP) settings
rename_campaign Rename a campaign. Dangerous while the campaign is running
delete_campaign Delete a campaign. Dangerous
control_campaign Start or stop a campaign. Dangerous
manage_campaign_skills Add or remove campaign skills. Dangerous while the campaign is running
manage_campaign_dispositions Add or remove campaign dispositions. Dangerous while the campaign is running
manage_campaign_lists Attach or detach a dialing list. Dangerous while the campaign is running
manage_campaign_dnis Attach or detach inbound numbers. Dangerous while the campaign is running, or when a number to attach isn’t unassigned
list_campaign_profiles List campaign profiles.
create_campaign_profile Create a campaign profile.
modify_campaign_profile Modify a campaign profile. Dangerous while a running campaign uses the profile
delete_campaign_profile Delete a campaign profile. Dangerous
get_campaign_profile_filter Get a profile’s record filter.
set_campaign_profile_criteria Change a profile’s record filter. Dangerous while a running campaign uses the profile
set_campaign_profile_order Change a profile’s dialing order. Dangerous while a running campaign uses the profile

Lists, contacts, and do-not-call

Tool What it does
list_lists List dialing lists.
create_list Create a dialing list.
delete_list Delete a dialing list. Dangerous
add_record_to_list Add a record to a list. Dangerous while the list is attached to a running campaign
add_records_to_list Add records to a list. Dangerous
remove_record_from_list Remove a record from a list. Dangerous
get_import_result Check an import.
search_contacts Search contacts.
update_contact Update a contact. Dangerous unless it updates only a sole match
update_contacts Update contacts in bulk. Dangerous
delete_contact Delete a contact. Dangerous
list_contact_fields List contact fields.
create_contact_field Create a contact field.
modify_contact_field Modify a contact field. Dangerous when it changes the type or mapTo, which can cut or reject stored data
delete_contact_field Delete a contact field. Dangerous
check_dnc Check do-not-call.
add_to_dnc Add to do-not-call.
remove_from_dnc Remove from do-not-call. Dangerous

Users, skills, and agent groups

Tool What it does
list_users List users.
get_user Get a user.
create_user Create a user. Dangerous
modify_user Modify a user. Dangerous
delete_user Delete a user. Dangerous
set_user_roles Change a user’s roles. Dangerous
list_user_profiles List user profiles.
list_skills List skills.
get_skill_details List skills with their users.
create_skill Create a skill.
modify_skill Modify a skill.
delete_skill Delete a skill. Dangerous
manage_user_skills Give or take a user’s skill. Dangerous
list_agent_groups List agent groups.
create_agent_group Create an agent group.
delete_agent_group Delete an agent group. Dangerous
manage_agent_group_members Add or remove group members. Dangerous

Dispositions, prompts, and domain setup

Tool What it does
list_dispositions List dispositions.
create_disposition Create a disposition.
modify_disposition Modify a disposition. Dangerous when it changes the type, typeParameters, or resetAttemptsCounter, which change how every campaign using it redials
rename_disposition Rename a disposition.
delete_disposition Delete a disposition. Dangerous
list_call_variables List call variables.
create_call_variable Create a call variable.
delete_call_variable Delete a call variable. Dangerous
get_reason_code Get a reason code.
create_reason_code Create a reason code.
modify_reason_code Modify a reason code.
delete_reason_code Delete a reason code. Dangerous
list_speed_dials List speed dials.
create_speed_dial Create a speed dial.
delete_speed_dial Delete a speed dial. Dangerous
list_web_connectors List web connectors.
create_web_connector Create a web connector. Dangerous
delete_web_connector Delete a web connector. Dangerous
list_prompts List prompts.
create_tts_prompt Create a text-to-speech prompt.
modify_tts_prompt Modify a text-to-speech prompt. Dangerous while a running campaign, its IVR script, or a skill queue they route to uses the prompt
create_wav_prompt Create a recorded prompt.
modify_wav_prompt Modify a recorded prompt. Dangerous while a running campaign, its IVR script, or a skill queue they route to uses the prompt
delete_prompt Delete a prompt. Dangerous
list_dnis List inbound numbers.
get_dialing_rules Get dialing rules.
get_vcc_configuration Get the domain configuration.
get_api_usage Get API usage.

IVR scripts

Tool What it does
list_ivr_scripts List IVR scripts.
get_ivr_script Get an IVR script.
create_ivr_script Create an IVR script. Dangerous when the definition calls out to any URL, host or web service (also inside encoded prompt payloads)
modify_ivr_script Replace an IVR script’s definition. Dangerous when the definition calls out to any URL, host or web service (also inside encoded prompt payloads), or while a running campaign uses the script
delete_ivr_script Delete an IVR script. Dangerous
validate_ivr_flow Check an IVR flow.
render_ivr_flow Draw an IVR flow.
build_ivr_script Build an IVR script. Dangerous when the script calls out to a URL or host (a URL in prompt text counts), or when it replaces a script a running campaign uses; a dry run never is

Reports and statistics

Tool What it does
run_report Run a report.
get_report_result Get a report.
get_realtime_stats Get real-time statistics.

Genesys Cloud

Credentials. The region (the domain in your login address: login.mypurecloud.com means mypurecloud.com), and an OAuth client made for DylrDev alone, with grant type Client Credentials: its client ID and secret. Create it in Admin under Integrations, then OAuth, with a custom role from Admin under Roles / Permissions. Never give it Master Admin. Assign the role in every division, or DylrDev treats what it can’t see as possibly live.

Give the role the permissions for what your AI should do:

  • Queues, skills, users, schedules: routing:queue:view, routing:queue:add, routing:wrapupCode:view, routing:wrapupCode:add, routing:skill:view, routing:skill:create, directory:user:view, routing:schedule:view, routing:schedule:add, routing:scheduleGroup:view, routing:scheduleGroup:add. Assigning skills to users also needs routing:skill:assign.
  • Outbound: outbound:contactList:view, outbound:attemptLimits:view, outbound:callableTimeSet:view, outbound:dncList:view, outbound:campaign:view, outbound:campaignSequence:view, outbound:responseSet:view, scripter:publishedScript:view, and outbound:contactList:add, outbound:attemptLimits:add, outbound:callableTimeSet:add, outbound:dncList:add, outbound:dnc:add, outbound:campaign:add, outbound:campaignSequence:add. Adding contacts needs outbound:contact:add, and so DylrDev can see whether the list feeds anything live: outbound:messagingCampaign:view, outbound:emailCampaign:view, outbound:whatsAppCampaign:view, outbound:schedule:view, outbound:messagingCampaignSchedule:view, outbound:emailCampaignSchedule:view, outbound:whatsAppCampaignSchedule:view, outbound:campaignRule:view. Don’t grant outbound:campaign:edit: no tool turns a campaign on.
  • Architect flows: architect:flow:view, architect:flow:add, architect:flow:edit, architect:flow:publish, architect:flow:unlock, architect:userPrompt:view, architect:job:create, architect:job:view, architect:jobExport:create, architect:jobExport:view, architect:dependencyTracking:view.
  • Virtual agents: agentic:virtualAgent:view, agentic:virtualAgent:add, agentic:virtualAgentVersionJob:add.
  • Knowledge: knowledge:knowledgebase:view, knowledge:source:view, knowledge:knowledgeSetting:view, knowledge:synchronization:view, knowledge:source:add, knowledge:knowledgeSetting:add, knowledge:knowledgeSetting:edit. Uploading documents also needs knowledge:synchronization:add, knowledge:synchronization:upload, and knowledge:synchronization:edit.
  • Data actions: integrations:integration:view, integrations:action:view, and integrations:action:add and integrations:action:edit to create one.
  • DID pools (optional): telephony:plugin:all.

DylrDev keeps the OAuth access token between calls, sealed with the connection’s own key. Deleting the connection, or the OAuth client in Genesys, ends it.

Some writes are dangerous only sometimes: adding contacts to a list something live uses, publishing over a published or locked flow, publishing an AVA to production, and syncing knowledge that a published AVA or flow answers from. Names in writes must match exactly (or pass the id); a near match is refused, never guessed.

Org, queues, users, and schedules

Tool What it does
list_divisions List divisions.
list_did_pools List DID pools.
list_queues List queues.
get_queue Get a queue.
create_queue Create a queue.
list_wrapup_codes List wrap-up codes.
create_wrapup_code Create a wrap-up code.
list_users List users.
get_user Get a user.
list_skills List skills.
create_skill Create a skill.
assign_user_skill Assign a skill to a user. Dangerous
list_schedules List schedules.
create_schedule Create a schedule.
create_schedule_group Create a schedule group.

Outbound

Tool What it does
list_contact_lists List contact lists.
get_contact_list Get a contact list.
create_contact_list Create a contact list.
add_contacts Add contacts. Dangerous when the list feeds a campaign, sequence, schedule, or rule that isn’t off, or that can’t be ruled out
create_attempt_limits Create attempt limits.
create_callable_time_set Create a callable time set.
create_dnc_list Create a DNC list.
list_campaigns List campaigns.
get_campaign Get a campaign.
create_campaign Create a campaign.
create_campaign_sequence Create a campaign sequence.
list_outbound_assets List outbound building blocks.
render_cadence Render a cadence.

Architect flows

Tool What it does
list_flows List flows.
get_flow Get a flow.
get_flow_configuration Get a flow’s configuration.
list_prompts List prompts.
render_flow Draw a flow.
export_flow Export a flow.
build_flow Build a flow.
publish_flow Publish a flow. Dangerous when it could replace a published, active, or locked flow
get_flow_job Check a flow job.
unlock_flow Unlock a flow. Dangerous

Virtual agents (AVA), knowledge, and data actions

Tool What it does
ava_playbook Load an AVA playbook.
list_avas List AVAs.
get_ava Get an AVA.
create_ava Create an AVA.
get_ava_version Get an AVA version.
create_ava_version Create an AVA version.
publish_ava_version Publish an AVA version. Dangerous when publishing to production
get_ava_publish_job Check an AVA publish job.
list_data_actions List data actions.
get_data_action_schema Get a data action’s schemas.
create_data_action Create a data action. Dangerous
list_knowledge_assets List knowledge assets.
ava_chat_start Start an AVA test chat. Dangerous
ava_chat_send Send an AVA test chat message. Dangerous
ava_chat_end End an AVA test chat.
ava_run_scripted_scenario Run a scripted AVA scenario. Dangerous
ava_validate_trajectory Check an attempt’s trajectory.
validate_knowledge Validate knowledge cards.
ensure_knowledge_source Ensure a knowledge source.
upload_knowledge_documents Upload knowledge documents. Dangerous for a Full sync, or an Incremental one into a source something published answers from (or that can’t be ruled out)
get_knowledge_sync Check a knowledge synchronization.
ensure_knowledge_setting Ensure a knowledge configuration. Dangerous when it changes the language of one something published answers from (or that can’t be ruled out)
build_ava_bot_flow Compose an AVA bot flow.