Class: Revox::Resources::Campaigns

Inherits:
Object
  • Object
show all
Defined in:
lib/revox/resources/campaigns.rb,
sig/revox/resources/campaigns.rbs

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ Campaigns

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Campaigns.

Parameters:



302
303
304
# File 'lib/revox/resources/campaigns.rb', line 302

def initialize(client:)
  @client = client
end

Instance Method Details

#cancel(id, request_options: {}) ⇒ Revox::Models::CampaignCancelResponse

Cancel a running or scheduled campaign. Pending and queued calls will be aborted, while in-progress calls will be allowed to finish. Unlike deletion, the campaign and its rows are preserved for historical reference.

Parameters:

Returns:

See Also:



163
164
165
166
167
168
169
170
# File 'lib/revox/resources/campaigns.rb', line 163

def cancel(id, params = {})
  @client.request(
    method: :post,
    path: ["campaigns/%1$s/cancel", id],
    model: Revox::Models::CampaignCancelResponse,
    options: params[:request_options]
  )
end

#create(assistant_id:, contacts:, launch:, name:, type:, call_retry_config: nil, from_phone_number: nil, max_concurrent_calls: nil, scheduled_at: nil, request_options: {}) ⇒ Revox::Models::CampaignCreateResponse

Some parameter documentations has been truncated, see Models::CampaignCreateParams for more details.

Create a new outbound calling campaign. By default the campaign launches immediately. Set launch to false to save as a draft for later review.

Parameters:

  • assistant_id (String)

    The ID of the assistant to use

  • contacts (Array<Revox::Models::CampaignCreateParams::Contact>)

    The list of contacts to call

  • launch (Boolean)

    Whether to launch the campaign immediately. Set to false to save as a draft.

  • name (String)

    The name of the campaign

  • type (Symbol, Revox::Models::CampaignCreateParams::Type)

    Campaign type. 'jump_in' campaigns only dial while someone is on the campaign pa

  • call_retry_config (Revox::Models::CampaignCreateParams::CallRetryConfig)

    Override retry configuration for calls in this campaign. If not provided, uses t

  • from_phone_number (String)

    The phone number to use for outbound calls (E.164 format, e.g., +1234567890)

  • max_concurrent_calls (Float)

    Maximum number of concurrent calls allowed for this campaign

  • scheduled_at (Time, Object)

    Schedule all calls in this campaign to start at a specific date and time (ISO 86

  • request_options (Revox::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



37
38
39
40
41
42
43
44
45
46
# File 'lib/revox/resources/campaigns.rb', line 37

def create(params)
  parsed, options = Revox::CampaignCreateParams.dump_request(params)
  @client.request(
    method: :post,
    path: "campaigns",
    body: parsed,
    model: Revox::Models::CampaignCreateResponse,
    options: options
  )
end

#delete(id, request_options: {}) ⇒ Revox::Models::CampaignDeleteResponse

Permanently delete a campaign and all its associated rows. This action is irreversible. In-progress calls will not be affected, but no new calls will be placed.

Parameters:

Returns:

See Also:



142
143
144
145
146
147
148
149
# File 'lib/revox/resources/campaigns.rb', line 142

def delete(id, params = {})
  @client.request(
    method: :delete,
    path: ["campaigns/%1$s", id],
    model: Revox::Models::CampaignDeleteResponse,
    options: params[:request_options]
  )
end

#export_rows(id, request_options: {}) ⇒ Revox::Models::CampaignExportRowsResponse

Export all rows of a campaign as a CSV file for offline analysis or reporting.

Parameters:

Returns:

See Also:



182
183
184
185
186
187
188
189
# File 'lib/revox/resources/campaigns.rb', line 182

def export_rows(id, params = {})
  @client.request(
    method: :get,
    path: ["campaigns/%1$s/export", id],
    model: Revox::Models::CampaignExportRowsResponse,
    options: params[:request_options]
  )
end

#get_rows(id, request_options: {}) ⇒ Revox::Models::CampaignGetRowsResponse

Retrieve all contact rows for a campaign. Useful for loading draft campaign data for editing.

Parameters:

Returns:

See Also:



202
203
204
205
206
207
208
209
# File 'lib/revox/resources/campaigns.rb', line 202

def get_rows(id, params = {})
  @client.request(
    method: :get,
    path: ["campaigns/%1$s/rows", id],
    model: Revox::Models::CampaignGetRowsResponse,
    options: params[:request_options]
  )
end

#launch(id, request_options: {}) ⇒ Revox::Models::CampaignLaunchResponse

Launch a previously saved draft campaign. This starts all calls immediately (or queues them if scheduled_at is set). The campaign must be in draft status.

Parameters:

Returns:

See Also:



222
223
224
225
226
227
228
229
# File 'lib/revox/resources/campaigns.rb', line 222

def launch(id, params = {})
  @client.request(
    method: :post,
    path: ["campaigns/%1$s/launch", id],
    model: Revox::Models::CampaignLaunchResponse,
    options: params[:request_options]
  )
end

#list(request_options: {}) ⇒ Revox::Models::CampaignListResponse

Retrieve all campaigns for your organization, including both active and completed ones.

Parameters:

Returns:

See Also:



121
122
123
124
125
126
127
128
# File 'lib/revox/resources/campaigns.rb', line 121

def list(params = {})
  @client.request(
    method: :get,
    path: "campaigns",
    model: Revox::Models::CampaignListResponse,
    options: params[:request_options]
  )
end

#pause(id, request_options: {}) ⇒ Revox::Models::CampaignPauseResponse

Pause a running campaign so no further calls are placed. In-progress calls are allowed to finish; pending and scheduled calls are held until the campaign is resumed. Scheduled retry timers keep counting down, so a call resumed before its time fires on schedule, while one resumed after its time fires at the next available calling window.

Parameters:

Returns:

See Also:



245
246
247
248
249
250
251
252
# File 'lib/revox/resources/campaigns.rb', line 245

def pause(id, params = {})
  @client.request(
    method: :post,
    path: ["campaigns/%1$s/pause", id],
    model: Revox::Models::CampaignPauseResponse,
    options: params[:request_options]
  )
end

#resume(id, request_options: {}) ⇒ Revox::Models::CampaignResumeResponse

Resume a paused campaign. Held calls continue from where they left off; calls whose scheduled time passed during the pause are placed at the next available calling window.

Parameters:

Returns:

See Also:



266
267
268
269
270
271
272
273
# File 'lib/revox/resources/campaigns.rb', line 266

def resume(id, params = {})
  @client.request(
    method: :post,
    path: ["campaigns/%1$s/resume", id],
    model: Revox::Models::CampaignResumeResponse,
    options: params[:request_options]
  )
end

#retrieve(id, request_options: {}) ⇒ Revox::Models::CampaignRetrieveResponse

Retrieve the full details of a single campaign by its unique ID. Can be used to poll for campaign completion.

Parameters:

Returns:

See Also:



59
60
61
62
63
64
65
66
# File 'lib/revox/resources/campaigns.rb', line 59

def retrieve(id, params = {})
  @client.request(
    method: :get,
    path: ["campaigns/%1$s", id],
    model: Revox::Models::CampaignRetrieveResponse,
    options: params[:request_options]
  )
end

#statistics(id, request_options: {}) ⇒ Revox::Models::CampaignStatisticsResponse

Retrieve the "Statistiques" report for a campaign: the four-tile cascade funnel (appelés → eus en ligne → réels échanges → leads chauds), two secondary tiles, the distribution of exchanges by outcome, the list of hot leads, and data-extraction coverage. All counts are over distinct E.164-normalized phone numbers, and the outcome-based categories derive exclusively from calls.outcome. Cascade percentages are null when their denominator is zero.

Parameters:

Returns:

See Also:



290
291
292
293
294
295
296
297
# File 'lib/revox/resources/campaigns.rb', line 290

def statistics(id, params = {})
  @client.request(
    method: :get,
    path: ["campaigns/%1$s/statistics", id],
    model: Revox::Models::CampaignStatisticsResponse,
    options: params[:request_options]
  )
end

#update(id, assistant_id: nil, call_retry_config: nil, contacts: nil, from_phone_number: nil, max_concurrent_calls: nil, name: nil, scheduled_at: nil, type: nil, request_options: {}) ⇒ Revox::Models::CampaignUpdateResponse

Some parameter documentations has been truncated, see Models::CampaignUpdateParams for more details.

Update editable fields on a campaign. Draft campaigns support updating all fields including assistant, contacts, and settings. Non-draft campaigns only support renaming.

Parameters:

Returns:

See Also:



100
101
102
103
104
105
106
107
108
109
# File 'lib/revox/resources/campaigns.rb', line 100

def update(id, params = {})
  parsed, options = Revox::CampaignUpdateParams.dump_request(params)
  @client.request(
    method: :patch,
    path: ["campaigns/%1$s", id],
    body: parsed,
    model: Revox::Models::CampaignUpdateResponse,
    options: options
  )
end