There are a number of core concepts involved in the Opkit platform. It’s important for you to be familiar with these in order to understand how Opkit works and how best to leverage it for your use-case.


Task are the most important resource within Opkit. They are the primary unit of work. A task represents a job-to-be-done which necessitates one or more outbound phone calls. A single task usually corresponds to a single real-world phone call, however this is not always the case. A few examples of tasks include:

  • Calling a patient’s insurance company to verify their coverage and benefits
  • Calling a patient’s insurance company to secure prior authorization for a medical procedure
  • Calling an insurance company to check the status of an outstanding claim
  • Calling an insurance company to appeal a denied claim
  • Calling a patient to collect demographic and insurance information
  • Calling a patient to remind them about an upcoming appointment
  • Calling a patient to schedule a follow-up appointment

A task is made up of four components:

  1. Target
  2. Context
  3. Objectives
  4. Results

You can read more about these components in the sections below.

Lastly: an important concept relating to tasks is “templates”. When you create a task, you must pass a reference to an existing template - in other words, a template ID. This template defines the context and objectives that should be included on the task. If your task context and objectives do not match the template, the task will not be created and your POST /tasks request will receive an error response!


Calls are the smallest unit of work within Opkit. They are equivalent to real-world phone calls. Calls are spawned by tasks. A task may be associatedd with one or more calls. For example, if the initial call associated with task gets disconnected, the task will spawn a second call. A call, however, can only be associated with one task.

A call is made up of the same four components as a task:

  1. Target
  2. Context
  3. Objectives
  4. Results


Targets represent unique phone numbers than can be contacted through the Opkit platform. (Opkit only allows users to contact certain approved phone numbers.) A few examples of targets include:

  • United Healthcare
  • Cigna
  • Anthem
  • Humana
  • John Smith, a patient at your medical practice

If you need to contact a target that is not already available in Opkit, contact Opkit support.


Context is any information that may be required to successfully complete a task. For example, if the task involves calling a patient’s insurance company, context might include the subscriber’s name, date of birth, and member ID, as well as the provider’s NPI number. Opkit’s AI has access to context while executing tasks.


Objectives are data points that should be collected during a task. For example, if the task is to verify a patient’s insurance coverage and benefits, objectives might include plan status, coverage start and end dates, deductibles, out-of-pocket maximums, coinsurances, and other benefits relating to specific procedure codes. Opkit’s AI will seek out objectives while executing tasks.


Results are captured objectives. Every objective will have a corresponding result. However, not every result will contain a truthy value. For example, if one of the task objectives was a patient’s copayment for CPT code 99201, but the patient’s insurance plan was inactive, the result will be null.

Results only appear on calls and tasks after they have been completed. They will be absent from calls and tasks that are pending or in-progress.


Templates are like “blueprints” for tasks. They are used during task creation. A template has three components:

  • A description
  • A context “schema”
  • A list of objectives

You must pass a template ID during task creation. If the task you are creating does not match the template provided, your request will fail and the task will not be created.

It can be helpful to think of templates as “task types”. You can have as many templates as you want, and each template defines a particular “task type”. It is common to have one template per use-case. For example:

  • Template 1: Call to Verify Patient Insurance Eligibiliy and Benefits
  • Template 2: Call to Enroll New Patient and Schedule First Appointment
  • Template 3: Call to Confirm Patient’s Upcoming Appointment


Recordings are audio recordings of real-world phone calls. Every call should have a corresponding recording resource.


Transcripts are written transcriptions of real-world phone calls. Every call should have a corresponding transcript resource.


Batches represent groups of tasks. A batch can contain one or more tasks. The batch resource is useful for identifying tasks that were created in bulk, e.g. by uploading a spreadsheet or CSV file.