CallAgentWrite

  • Properties: 1
  • Properties: 1
  • The instructions for each call. Use $name or ${name} to insert a top-level input property. Declare every placeholder in input_schema.properties. Supply every referenced value in the call's inputs, even if the schema does not require it. Use $$ for a literal dollar sign. Nested property paths are not supported.

  • The additional participants calls using this Call Agent may bring on, keyed by each participant's name. Absent, calls using this agent are ordinary two-party calls and a request naming a participant is rejected. Present, a call may supply numbers for these names; the agent still decides during the call when to bring each one on.

  • Whether calls using this Call Agent should begin speaking as soon as the answered call connects. Null and false preserve the wait-for-caller behavior.

  • HTTPS URL Resia POSTs a call.ended event to each time a call this Call Agent places or answers reaches a terminal status — completed, error, or canceled. The body is a JSON WebhookEvent: {"type": "call.ended", "call": ...}, where call is the same CallDetail that GET /v1/calls/{call_id} returns, built from live data when the event is sent. Resia makes one immediate attempt when the call ends and retries a failed delivery on a fixed schedule (six attempts over about 8.6 hours); any 2xx response is success. The call's id repeats unchanged across retries, so treat a repeated call.id as a duplicate. Treat the complete URL as a credential: delivery authenticity is HTTPS plus URL secrecy, and you may embed your own token in the URL to authenticate Resia's requests. Null clears the webhook and stops pending deliveries.

  • The provider and model used for the live conversation. Use the exact model identifier published by the provider. Resia validates the selection when it saves the Call Agent. If omitted, calls use Resia's current default.

    Properties: 2
  • HTTPS URL Resia calls to fetch the inputs for each inbound call this Call Agent answers. Resia POSTs a call.incoming event — {"type": "call.incoming", "call": {"from_phone_number": , "to_phone_number": }}, the same thin WebhookEvent shape as call.ended — and waits up to 30 seconds for a single attempt — no retry. The 200 response body must be a flat JSON object satisfying this agent's input_schema, at most 1 MiB (1048576 bytes); it is stored as the call's inputs and rendered into the agent's instructions before the call is answered. On timeout, a non-200 status, an unreadable body, or a response the input schema rejects, an agent whose input schema accepts an empty object answers unpersonalized with empty inputs, and any other agent lets the call ring out. The webhook may be delivered more than once for the same call until the call record commits, so the endpoint must be read-only and tolerate duplicates. The URL is not a credential inside Resia: Resia stores it, returns it on reads, and logs it in the clear. Delivery authenticity to your endpoint is HTTPS; embed your own token in the URL if you want to authenticate Resia's requests. Inbound-only: outbound calls always supply inputs on POST /v1/calls and never consult this URL. Null clears the webhook.

  • What the primary party — the person at to_phone_number, or the inbound caller — is called in the transcript and in the agent's instructions, e.g. "patient". Required exactly when additional_participants is present, and forbidden otherwise.

  • Whether calls using this Call Agent should leave a message when they reach a voicemail box. Null and false hang up without speaking instead.

  • IANA time zone name, for example America/New_York. Every call's system prompt states today's date, computed when the call is placed or answered. Without a timezone the date is read in America/New_York and no time is given. With a timezone the date is read in that zone and the prompt also states the local time, for example "6:08 PM". Resia validates the name when it saves the Call Agent. Null clears it.

  • The voices this Call Agent's calls may speak in, each a provider and voice id taken from GET /v1/available-voices. Each call this agent places picks one entry from the list at random, so a list of one always uses that voice and every entry in a longer list has an equal chance on each call. At most 32 entries. Null or an empty list keeps the voice each deployment is configured with — the behavior every agent had before this field existed. To keep a persona name and its voice consistent, give the name one voice, or several voices of one gender; read each voice's gender from GET /v1/available-voices. Resia does not enforce this — a name and a voice of any gender are allowed.

    Properties: 2