---
title: "Resolve the approval mode that applies"
method: GET
path: "/outreach-tasks/settings/effective/"
tags: ["outreach"]
---

# Resolve the approval mode that applies

`GET /outreach-tasks/settings/effective/`

## Request

- Base URL: `https://api.getoneprofile.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getoneprofile.ai/outreach-tasks/settings/effective/`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

What one sender's channel actually does in one sequence, and which level said so. A page can then say 'this is the sender's own setting' rather than showing a value with no provenance. Two levels: the sender decides, and a sequence may only ever tighten it. Also answers how much email sends without a person approving it: for the sender when you pass `sender_profile_id`, and for the sequence as a whole plus each sender assigned to it when you pass `sequence_id`. Both ids are optional; with neither, the channel modes are the product defaults. Reads only: a sender's send mode is changed on the sender's own settings.

## Query parameters

- `sender_profile_id` string, uuid, nullable
- `sequence_id` string, uuid, nullable

## Response `200`

Successful Response

- EffectiveApprovalReadSchema: The mode that actually applies per channel, and which level set it.
  - `assigned_sender_send_modes` AssignedSenderSendModeReadSchema[], required: Each sender assigned to the sequence, by name, with their own send mode as it applies in this sequence. Empty unless `sequence_id` is given.
    - `email_send_mode` 'always_send' | 'send_when_confident' | 'always_ask', required: How much of this sender's agent-written email leaves without a person. ``ALWAYS_SEND``: agent-written email steps and replies go out unattended unless a defect is found in the message itself. ``SEND_WHEN_CONFIDENT``: they go out when the agent's confidence rule holds, and a person is asked when it does not. ``ALWAYS_ASK``: every agent-written email waits for a person, whatever the agent thinks of it. The three are ordered by strictness (ALWAYS_ASK strictest, then SEND_WHEN_CONFIDENT, then ALWAYS_SEND loosest), and that order is what ``service.strictest_send_mode`` folds a cadence's assigned senders down with. The order is the point: everything that combines two modes must resolve towards asking, never towards sending. Replaces ``EmailApprovalMode``'s two-way choice, which cannot express "send the ones the agent stands behind". That enum and its column stay until a release backfills this one; do not read both in one decision.
    - `sender_profile_id` string, uuid, required
    - `sender_profile_name` string, required: The sender as the Senders page names them.
  - `cadence_email_send_mode` 'always_send' | 'send_when_confident' | 'always_ask', required: How much of this sender's agent-written email leaves without a person. ``ALWAYS_SEND``: agent-written email steps and replies go out unattended unless a defect is found in the message itself. ``SEND_WHEN_CONFIDENT``: they go out when the agent's confidence rule holds, and a person is asked when it does not. ``ALWAYS_ASK``: every agent-written email waits for a person, whatever the agent thinks of it. The three are ordered by strictness (ALWAYS_ASK strictest, then SEND_WHEN_CONFIDENT, then ALWAYS_SEND loosest), and that order is what ``service.strictest_send_mode`` folds a cadence's assigned senders down with. The order is the point: everything that combines two modes must resolve towards asking, never towards sending. Replaces ``EmailApprovalMode``'s two-way choice, which cannot express "send the ones the agent stands behind". That enum and its column stay until a release backfills this one; do not read both in one decision.
  - `email_level` 'default' | 'sender' | 'sequence', required: Which level an effective mode came from, so the UI can say "inherited from" what. ``DEFAULT`` is the product's own answer for a sender that has never been set: manual for LinkedIn, automatic for email. There is no workspace level: a sender that had one would be governed by two settings pages at once, and the one a rep actually looks at is the sender's.
  - `email_mode` 'manual' | 'auto', required: Whether a channel's steps wait for a person or run on their own. The values mirror the sender's own settings exactly (``mailbox``'s ``LinkedInApprovalMode`` and ``EmailApprovalMode``): a sender's setting IS its sender-level override, and the strings cross over without a translation table between them.
  - `email_send_mode` 'always_send' | 'send_when_confident' | 'always_ask', required: How much of this sender's agent-written email leaves without a person. ``ALWAYS_SEND``: agent-written email steps and replies go out unattended unless a defect is found in the message itself. ``SEND_WHEN_CONFIDENT``: they go out when the agent's confidence rule holds, and a person is asked when it does not. ``ALWAYS_ASK``: every agent-written email waits for a person, whatever the agent thinks of it. The three are ordered by strictness (ALWAYS_ASK strictest, then SEND_WHEN_CONFIDENT, then ALWAYS_SEND loosest), and that order is what ``service.strictest_send_mode`` folds a cadence's assigned senders down with. The order is the point: everything that combines two modes must resolve towards asking, never towards sending. Replaces ``EmailApprovalMode``'s two-way choice, which cannot express "send the ones the agent stands behind". That enum and its column stay until a release backfills this one; do not read both in one decision.
  - `linkedin_level` 'default' | 'sender' | 'sequence', required: Which level an effective mode came from, so the UI can say "inherited from" what. ``DEFAULT`` is the product's own answer for a sender that has never been set: manual for LinkedIn, automatic for email. There is no workspace level: a sender that had one would be governed by two settings pages at once, and the one a rep actually looks at is the sender's.
  - `linkedin_mode` 'manual' | 'auto', required: Whether a channel's steps wait for a person or run on their own. The values mirror the sender's own settings exactly (``mailbox``'s ``LinkedInApprovalMode`` and ``EmailApprovalMode``): a sender's setting IS its sender-level override, and the strings cross over without a translation table between them.

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `422`: Invalid request made to the API.
- `500`: Internal server error.
- `502`: Bad gateway error.
- `503`: Service unavailable.

---

[API](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile.md) · [All operations](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/llms.txt) · [OpenAPI document](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/revisions/4a6bd71e3f02?raw)
