Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .fern/metadata.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"cliVersion": "3.47.5",
"cliVersion": "3.64.2",
"generatorName": "fernapi/fern-typescript-sdk",
"generatorVersion": "3.36.0",
"generatorConfig": {
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@elevenlabs/elevenlabs-js",
"version": "v2.34.0",
"version": "v2.35.0",
"private": false,
"repository": "github:elevenlabs/elevenlabs-js",
"license": "MIT",
Expand Down
138 changes: 138 additions & 0 deletions reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -4695,6 +4695,81 @@ await client.conversationalAi.whatsapp.outboundCall({
</dl>


</dd>
</dl>
</details>

<details><summary><code>client.conversationalAi.whatsapp.<a href="/src/api/resources/conversationalAi/resources/whatsapp/client/Client.ts">outboundMessage</a>({ ...params }) -> ElevenLabs.WhatsAppOutboundMessageResponse</code></summary>
<dl>
<dd>

#### 📝 Description

<dl>
<dd>

<dl>
<dd>

Send an outbound message via WhatsApp
</dd>
</dl>
</dd>
</dl>

#### 🔌 Usage

<dl>
<dd>

<dl>
<dd>

```typescript
await client.conversationalAi.whatsapp.outboundMessage({
whatsappPhoneNumberId: "whatsapp_phone_number_id",
whatsappUserId: "whatsapp_user_id",
templateName: "template_name",
templateLanguageCode: "template_language_code",
templateParams: [{
type: "body",
parameters: [{
text: "text"
}]
}],
agentId: "agent_id"
});

```
</dd>
</dl>
</dd>
</dl>

#### ⚙️ Parameters

<dl>
<dd>

<dl>
<dd>

**request:** `ElevenLabs.conversationalAi.BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePost`

</dd>
</dl>

<dl>
<dd>

**requestOptions:** `WhatsappClient.RequestOptions`

</dd>
</dl>
</dd>
</dl>


</dd>
</dl>
</details>
Expand Down Expand Up @@ -13658,6 +13733,69 @@ await client.studio.projects.convert("21m00Tcm4TlvDq8ikWAM");
</dl>


</dd>
</dl>
</details>

<details><summary><code>client.studio.projects.<a href="/src/api/resources/studio/resources/projects/client/Client.ts">getMutedTracks</a>(project_id) -> ElevenLabs.ProjectMutedTracksResponseModel</code></summary>
<dl>
<dd>

#### 📝 Description

<dl>
<dd>

<dl>
<dd>

Returns a list of chapter IDs that have muted tracks in a project.
</dd>
</dl>
</dd>
</dl>

#### 🔌 Usage

<dl>
<dd>

<dl>
<dd>

```typescript
await client.studio.projects.getMutedTracks("21m00Tcm4TlvDq8ikWAM");

```
</dd>
</dl>
</dd>
</dl>

#### ⚙️ Parameters

<dl>
<dd>

<dl>
<dd>

**project_id:** `string` — The ID of the Studio project.

</dd>
</dl>

<dl>
<dd>

**requestOptions:** `ProjectsClient.RequestOptions`

</dd>
</dl>
</dd>
</dl>


</dd>
</dl>
</details>
Expand Down
4 changes: 2 additions & 2 deletions src/BaseClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ export function normalizeClientOptions<T extends BaseClientOptions>(options: T):
{
"X-Fern-Language": "JavaScript",
"X-Fern-SDK-Name": "@elevenlabs/elevenlabs-js",
"X-Fern-SDK-Version": "v2.34.0",
"User-Agent": "@elevenlabs/elevenlabs-js/v2.34.0",
"X-Fern-SDK-Version": "v2.35.0",
"User-Agent": "@elevenlabs/elevenlabs-js/v2.35.0",
"X-Fern-Runtime": core.RUNTIME.type,
"X-Fern-Runtime-Version": core.RUNTIME.version,
"xi-api-key": options?.apiKey,
Expand Down
51 changes: 0 additions & 51 deletions src/Client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -165,57 +165,6 @@ export class ElevenLabsClient {
return (this._workspace ??= new WorkspaceClient(this._options));
}

/**
* @param {ElevenLabsClient.RequestOptions} requestOptions - Request-specific configuration.
*
* @example
* await client.postV1ConvaiWhatsappAccounts()
*/
public postV1ConvaiWhatsappAccounts(
requestOptions?: ElevenLabsClient.RequestOptions,
): core.HttpResponsePromise<void> {
return core.HttpResponsePromise.fromPromise(this.__postV1ConvaiWhatsappAccounts(requestOptions));
}

private async __postV1ConvaiWhatsappAccounts(
requestOptions?: ElevenLabsClient.RequestOptions,
): Promise<core.WithRawResponse<void>> {
const _headers: core.Fetcher.Args["headers"] = mergeHeaders(
this._options?.headers,
mergeOnlyDefinedHeaders({ "xi-api-key": requestOptions?.apiKey ?? this._options?.apiKey }),
requestOptions?.headers,
);
const _response = await (this._options.fetcher ?? core.fetcher)({
url: core.url.join(
(await core.Supplier.get(this._options.baseUrl)) ??
(await core.Supplier.get(this._options.environment)) ??
environments.ElevenLabsEnvironment.Production,
"v1/convai/whatsapp-accounts",
),
method: "POST",
headers: _headers,
queryParameters: requestOptions?.queryParams,
timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 240) * 1000,
maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
abortSignal: requestOptions?.abortSignal,
fetchFn: this._options?.fetch,
logging: this._options.logging,
});
if (_response.ok) {
return { data: undefined, rawResponse: _response.rawResponse };
}

if (_response.error.reason === "status-code") {
throw new errors.ElevenLabsError({
statusCode: _response.error.statusCode,
body: _response.error.body,
rawResponse: _response.rawResponse,
});
}

return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/convai/whatsapp-accounts");
}

/**
* @param {string} agent_id
* @param {string} branch_id
Expand Down
1 change: 1 addition & 0 deletions src/api/resources/conversationalAi/resources/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,6 @@ export * from "./twilio/client/requests";
export * from "./twilio/types";
export * as whatsapp from "./whatsapp";
export * from "./whatsapp/client/requests";
export * from "./whatsapp/types";
export * as whatsappAccounts from "./whatsappAccounts";
export * from "./whatsappAccounts/client/requests";
102 changes: 102 additions & 0 deletions src/api/resources/conversationalAi/resources/whatsapp/client/Client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -118,4 +118,106 @@ export class WhatsappClient {
"/v1/convai/whatsapp/outbound-call",
);
}

/**
* Send an outbound message via WhatsApp
*
* @param {ElevenLabs.conversationalAi.BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePost} request
* @param {WhatsappClient.RequestOptions} requestOptions - Request-specific configuration.
*
* @throws {@link ElevenLabs.UnprocessableEntityError}
*
* @example
* await client.conversationalAi.whatsapp.outboundMessage({
* whatsappPhoneNumberId: "whatsapp_phone_number_id",
* whatsappUserId: "whatsapp_user_id",
* templateName: "template_name",
* templateLanguageCode: "template_language_code",
* templateParams: [{
* type: "body",
* parameters: [{
* text: "text"
* }]
* }],
* agentId: "agent_id"
* })
*/
public outboundMessage(
request: ElevenLabs.conversationalAi.BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePost,
requestOptions?: WhatsappClient.RequestOptions,
): core.HttpResponsePromise<ElevenLabs.WhatsAppOutboundMessageResponse> {
return core.HttpResponsePromise.fromPromise(this.__outboundMessage(request, requestOptions));
}

private async __outboundMessage(
request: ElevenLabs.conversationalAi.BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePost,
requestOptions?: WhatsappClient.RequestOptions,
): Promise<core.WithRawResponse<ElevenLabs.WhatsAppOutboundMessageResponse>> {
const _headers: core.Fetcher.Args["headers"] = mergeHeaders(
this._options?.headers,
mergeOnlyDefinedHeaders({ "xi-api-key": requestOptions?.apiKey ?? this._options?.apiKey }),
requestOptions?.headers,
);
const _response = await (this._options.fetcher ?? core.fetcher)({
url: core.url.join(
(await core.Supplier.get(this._options.baseUrl)) ??
(await core.Supplier.get(this._options.environment)) ??
environments.ElevenLabsEnvironment.Production,
"v1/convai/whatsapp/outbound-message",
),
method: "POST",
headers: _headers,
contentType: "application/json",
queryParameters: requestOptions?.queryParams,
requestType: "json",
body: serializers.conversationalAi.BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePost.jsonOrThrow(
request,
{ unrecognizedObjectKeys: "strip" },
),
timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 240) * 1000,
maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
abortSignal: requestOptions?.abortSignal,
fetchFn: this._options?.fetch,
logging: this._options.logging,
});
if (_response.ok) {
return {
data: serializers.WhatsAppOutboundMessageResponse.parseOrThrow(_response.body, {
unrecognizedObjectKeys: "passthrough",
allowUnrecognizedUnionMembers: true,
allowUnrecognizedEnumValues: true,
breadcrumbsPrefix: ["response"],
}),
rawResponse: _response.rawResponse,
};
}

if (_response.error.reason === "status-code") {
switch (_response.error.statusCode) {
case 422:
throw new ElevenLabs.UnprocessableEntityError(
serializers.HttpValidationError.parseOrThrow(_response.error.body, {
unrecognizedObjectKeys: "passthrough",
allowUnrecognizedUnionMembers: true,
allowUnrecognizedEnumValues: true,
breadcrumbsPrefix: ["response"],
}),
_response.rawResponse,
);
default:
throw new errors.ElevenLabsError({
statusCode: _response.error.statusCode,
body: _response.error.body,
rawResponse: _response.rawResponse,
});
}
}

return handleNonStatusCodeError(
_response.error,
_response.rawResponse,
"POST",
"/v1/convai/whatsapp/outbound-message",
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
// This file was auto-generated by Fern from our API Definition.

import type * as ElevenLabs from "../../../../../../index";

/**
* @example
* {
* whatsappPhoneNumberId: "whatsapp_phone_number_id",
* whatsappUserId: "whatsapp_user_id",
* templateName: "template_name",
* templateLanguageCode: "template_language_code",
* templateParams: [{
* type: "body",
* parameters: [{
* text: "text"
* }]
* }],
* agentId: "agent_id"
* }
*/
export interface BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePost {
whatsappPhoneNumberId: string;
whatsappUserId: string;
templateName: string;
templateLanguageCode: string;
templateParams: ElevenLabs.conversationalAi.BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem[];
agentId: string;
conversationInitiationClientData?: ElevenLabs.ConversationInitiationClientDataRequestInput;
}
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
export type { BodyMakeAnOutboundCallViaWhatsAppV1ConvaiWhatsappOutboundCallPost } from "./BodyMakeAnOutboundCallViaWhatsAppV1ConvaiWhatsappOutboundCallPost";
export type { BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePost } from "./BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePost";
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
export * from "./client";
export * from "./types";
Loading