HighLevel: Update Followup Settings
HighLevel conversationAi.updateFollowupSettings: arguments, response, policy and SDK examples.
← Conversation AI operations · Get started
Operation gohighlevel.update_followup_settings
Provider route: PATCH /conversation-ai/agents/{agentId}/followup-settings. Alter supplies the connection’s credentials and routing.
Call through Alter
Section titled “Call through Alter”Install @alter-ai/sdk @alter-ai/gohighlevel with npm, or alter-sdk-gohighlevel with pip. Supply your connected customer’s grant ID and the arguments described below.
import { App } from "@alter-ai/sdk";import { HighLevelIntegration } from "@alter-ai/gohighlevel";
async function execute(input: Parameters<HighLevelIntegration["conversationAi"]["updateFollowupSettings"]>[0]) { const app = new App({ apiKey: process.env.ALTER_API_KEY! }); try { const provider = new HighLevelIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! }); const call = await provider.conversationAi.updateFollowupSettings(input); const result = await call.wait(); return result.bodyJson(); } finally { await app.close(); }}import osfrom alter_sdk import Appfrom alter_sdk_gohighlevel import HighLevelIntegration
async def execute(arguments): async with App(api_key=os.environ["ALTER_API_KEY"]) as app: provider = HighLevelIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]}) call = await provider.conversation_ai.update_followup_settings(arguments) result = await call.wait() return result.body_json()| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Additional keys: not allowed |
path | object | Required within parent | Additional keys: not allowed |
path.agentId | string | Required within parent | |
body | Model | Required within parent | Expand Update Followup Settings — request body — body |
Referenced models: Update Followup Settings — request body — body
Response
Section titled “Response”Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | Model | Root | Expand Update Action — response body |
Referenced models: Update Action — response body
Schemas
Section titled “Schemas”10 more schemas are linked from the tables above, on the schema pages.
Update Action — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
data | JSON | Required within parent | Updated action details |
data (allOf 1) | Model | All variants apply | Expand List Actions for an Agent — response body — data item |
success | boolean | Required within parent | Success status of the request |
Referenced models: List Actions for an Agent — response body — data item
Update Followup Settings — request body — body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
actionIds | array | Required within parent | |
actionIds[] | string | Each item | |
followupSettings | Model | Required within parent | Expand Update Followup Settings — request body — body followup Settings |
Referenced models: Update Followup Settings — request body — body followup Settings
List Actions for an Agent — response body — data item
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
agentId | string | Optional | Agent ID where the action belongs |
details | JSON | Required within parent | Action-specific details. The structure depends on the action type. For TRIGGER_WORKFLOW use triggerWorkflowDto, for UPDATE_CONTACT_FIELD use updateContactFieldDto, for APPOINTMENT_BOOKING use appointmentBookingDto, for STOP_BOT use stopBotDto, for HUMAN_HAND_OVER use humanHandOverDto, for ADVANCED_FOLLOWUP use advancedFollowupDto, and for TRANSFER_BOT use transferBotDto. |
details (anyOf 1) | Model | Alternative | Expand Update Action — request body — body details trigger Condition, trigger Message, workflow Ids |
details (anyOf 2) | Model | Alternative | Expand Update Action — request body — body details contact Field Id, contact Update Examples, description |
details (anyOf 3) | Model | Alternative | Expand List Actions for an Agent — response body — data / item / details / sleepTimeUnit: days, hours, minutes |
details (anyOf 4) | Model | Alternative | Expand List Actions for an Agent — response body — data / item / details / sleepTimeUnit: days, hours, minutes, stop Bot Detection Type: Goodbye, Custom |
details (anyOf 5) | Model | Alternative | Expand List Actions for an Agent — response body — data / item / details / handoverType: contact Request, lack Of Information, failed To Resolve Issue, custom, sleep Time Unit: days, hours, minutes |
details (anyOf 6) | Model | Alternative | Expand List Actions for an Agent — response body — data / item / details / scenarioId: contact Stopped Replying, contact Is Busy, contact Requested |
details (anyOf 7) | Model | Alternative | Expand List Actions for an Agent — response body — data / item / details / transferBotType: Default, Custom |
id | string | Required within parent | Unique identifier for the action |
name | string | Required within parent | Name of the action |
type | string | Required within parent | Type of the action Known values: triggerWorkflow, updateContactField, appointmentBooking, stopBot, humanHandOver, advancedFollowup, transferBot |
Referenced models: List Actions for an Agent — response body — data / item / details / scenarioId: contact Stopped Replying, contact Is Busy, contact Requested, List Actions for an Agent — response body — data / item / details / sleepTimeUnit: days, hours, minutes, List Actions for an Agent — response body — data / item / details / handoverType: contact Request, lack Of Information, failed To Resolve Issue, custom, sleep Time Unit: days, hours, minutes, List Actions for an Agent — response body — data / item / details / sleepTimeUnit: days, hours, minutes, stop Bot Detection Type: Goodbye, Custom, List Actions for an Agent — response body — data / item / details / transferBotType: Default, Custom, Update Action — request body — body details trigger Condition, trigger Message, workflow Ids, Update Action — request body — body details contact Field Id, contact Update Examples, description
Update Followup Settings — request body — body followup Settings
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
dynamicChannelSwitching | boolean | Required within parent | Whether to dynamically switch channels for followups Default: true |
followUpHours | boolean | Optional | Whether to respect working hours for followups |
timezoneToUse | string | Optional | Timezone to use for followups, contact or location One of: contact, business |
workingHours | array | Optional | Working hours configuration for followups |
workingHours[] | Model | Each item | Expand Update Followup Settings — request body — body followup Settings working Hours item |
Referenced models: Update Followup Settings — request body — body followup Settings working Hours item
List Actions for an Agent — response body — data / item / details / scenarioId: contact Stopped Replying, contact Is Busy, contact Requested
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
enabled | boolean | Required within parent | Whether advanced followup is enabled |
followupSequence | array | Required within parent | Sequence of followup actions to perform |
followupSequence[] | Model | Each item | Expand List Actions for an Agent — response body — data / item / details / scenarioId: contact Stopped Replying, contact Is Busy, contact Requested followup Sequence item |
followupSettings | JSON | Optional | Additional settings for followup behavior |
followupSettings (allOf 1) | Model | All variants apply | Expand List Actions for an Agent — response body — data / item / details / scenarioId: contact Stopped Replying, contact Is Busy, contact Requested followup Settings timezone To Use: contact, business |
scenarioId | string | Required within parent | ID of the followup scenario Known values: contactStoppedReplying, contactIsBusy, contactRequested |
Referenced models: List Actions for an Agent — response body — data / item / details / scenarioId: contact Stopped Replying, contact Is Busy, contact Requested followup Sequence item, List Actions for an Agent — response body — data / item / details / scenarioId: contact Stopped Replying, contact Is Busy, contact Requested followup Settings timezone To Use: contact, business
List Actions for an Agent — response body — data / item / details / sleepTimeUnit: days, hours, minutes
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
actionId | string | Optional | Optional action ID reference |
calendarId | string | Required within parent | Calendar ID for appointment booking |
cancelEnabled | boolean | Required within parent | Whether to allow appointment cancellation (cannot be true when onlySendLink is true) Default: false |
onlySendLink | boolean | Required within parent | If true, only sends the appointment link without booking |
rescheduleEnabled | boolean | Required within parent | Whether to allow appointment rescheduling (cannot be true when onlySendLink is true) Default: false |
sleepAfterBooking | boolean | Required within parent | Whether to put the agent to sleep after booking (cannot be true when onlySendLink is true) |
sleepTime | JSON | Optional | |
sleepTime (anyOf 1) | number | Alternative | Sleep duration (required when sleepAfterBooking is true) |
sleepTime (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
sleepTimeUnit | string | Optional | Unit for sleep time (required when sleepAfterBooking is true) Known values: days, hours, minutes |
transferAgent | string | Optional | Agent ID to transfer to (required when transferBot is true) |
transferBot | boolean | Required within parent | Whether to transfer to another agent after booking (cannot be true when onlySendLink is true) |
triggerWorkflow | boolean | Required within parent | Whether to trigger a workflow after booking (cannot be true when onlySendLink is true) |
workflowIds | array | Optional | Workflow IDs to trigger after booking (required when triggerWorkflow is true) |
workflowIds[] | string | Each item |
List Actions for an Agent — response body — data / item / details / transferBotType: Default, Custom
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
enabled | boolean | Required within parent | Whether this transfer action is enabled |
transferBotExamples | array | Optional | Example phrases that trigger transfer (required for Custom type, minimum 2) |
transferBotExamples[] | string | Each item | |
transferBotTriggerCondition | string | Optional | Condition that triggers the transfer (required for Custom type) |
transferBotType | string | Required within parent | Type of transfer - Default or Custom Known values: Default, Custom |
transferToBot | string | Required within parent | ID of the bot/agent to transfer to |
Policy, approvals and errors
Section titled “Policy, approvals and errors”SDK function policy ID: gohighlevel.update_followup_settings. Catalog operation: update-followup-settings. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.
Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.
Required provider scopes: ["conversation-ai.write"]
Pinned headers: {"Version": "v3"}