rcs-js 2.0.14 → 2.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/cjs/Client.js +2 -2
  2. package/dist/cjs/api/resources/campaigns/resources/rcs/client/Client.d.ts +6 -12
  3. package/dist/cjs/api/resources/campaigns/resources/rcs/client/Client.js +6 -12
  4. package/dist/cjs/api/resources/campaigns/resources/rcs/client/requests/UpsertRcsCampaignParams.d.ts +12 -32
  5. package/dist/cjs/api/resources/phoneNumbers/client/Client.d.ts +0 -3
  6. package/dist/cjs/api/resources/phoneNumbers/client/Client.js +0 -5
  7. package/dist/cjs/api/resources/phoneNumbers/resources/index.d.ts +0 -1
  8. package/dist/cjs/api/resources/phoneNumbers/resources/index.js +1 -2
  9. package/dist/cjs/api/resources/webhooks/client/Client.d.ts +43 -0
  10. package/dist/cjs/api/resources/webhooks/client/Client.js +157 -0
  11. package/dist/cjs/api/resources/webhooks/client/requests/AttachWebhookParams.d.ts +23 -0
  12. package/dist/cjs/api/resources/webhooks/client/requests/DetachWebhookParams.d.ts +13 -0
  13. package/dist/cjs/api/resources/webhooks/client/requests/index.d.ts +2 -0
  14. package/dist/cjs/api/types/AttachWebhookResult.d.ts +22 -0
  15. package/dist/cjs/api/types/DetachWebhookResult.d.ts +9 -0
  16. package/dist/cjs/api/{resources/phoneNumbers/resources/webhook/client/index.js → types/DetachWebhookResult.js} +1 -0
  17. package/dist/cjs/api/types/ExtendedRcsCampaign.d.ts +6 -20
  18. package/dist/cjs/api/types/FailedSender.d.ts +6 -0
  19. package/dist/cjs/api/types/FailedSender.js +3 -0
  20. package/dist/cjs/api/types/RcsCampaign.d.ts +6 -20
  21. package/dist/cjs/api/types/RcsCampaignSummary.d.ts +0 -2
  22. package/dist/cjs/api/types/WebhookEventEnum.d.ts +3 -2
  23. package/dist/cjs/api/types/WebhookEventEnum.js +3 -2
  24. package/dist/cjs/api/types/index.d.ts +3 -4
  25. package/dist/cjs/api/types/index.js +3 -4
  26. package/dist/cjs/version.d.ts +1 -1
  27. package/dist/cjs/version.js +1 -1
  28. package/dist/esm/Client.mjs +2 -2
  29. package/dist/esm/api/resources/campaigns/resources/rcs/client/Client.d.mts +6 -12
  30. package/dist/esm/api/resources/campaigns/resources/rcs/client/Client.mjs +6 -12
  31. package/dist/esm/api/resources/campaigns/resources/rcs/client/requests/UpsertRcsCampaignParams.d.mts +12 -32
  32. package/dist/esm/api/resources/phoneNumbers/client/Client.d.mts +0 -3
  33. package/dist/esm/api/resources/phoneNumbers/client/Client.mjs +0 -5
  34. package/dist/esm/api/resources/phoneNumbers/resources/index.d.mts +0 -1
  35. package/dist/esm/api/resources/phoneNumbers/resources/index.mjs +0 -1
  36. package/dist/esm/api/resources/webhooks/client/Client.d.mts +43 -0
  37. package/dist/esm/api/resources/webhooks/client/Client.mjs +157 -0
  38. package/dist/esm/api/resources/webhooks/client/requests/AttachWebhookParams.d.mts +23 -0
  39. package/dist/esm/api/resources/webhooks/client/requests/DetachWebhookParams.d.mts +13 -0
  40. package/dist/esm/api/resources/webhooks/client/requests/index.d.mts +2 -0
  41. package/dist/esm/api/types/AttachWebhookResult.d.mts +22 -0
  42. package/dist/esm/api/types/DetachWebhookResult.d.mts +9 -0
  43. package/dist/esm/api/types/DetachWebhookResult.mjs +2 -0
  44. package/dist/esm/api/types/ExtendedRcsCampaign.d.mts +6 -20
  45. package/dist/esm/api/types/FailedSender.d.mts +6 -0
  46. package/dist/esm/api/types/FailedSender.mjs +2 -0
  47. package/dist/esm/api/types/RcsCampaign.d.mts +6 -20
  48. package/dist/esm/api/types/RcsCampaignSummary.d.mts +0 -2
  49. package/dist/esm/api/types/WebhookEventEnum.d.mts +3 -2
  50. package/dist/esm/api/types/WebhookEventEnum.mjs +3 -2
  51. package/dist/esm/api/types/index.d.mts +3 -4
  52. package/dist/esm/api/types/index.mjs +3 -4
  53. package/dist/esm/version.d.mts +1 -1
  54. package/dist/esm/version.mjs +1 -1
  55. package/package.json +1 -1
  56. package/reference.md +143 -172
  57. package/dist/cjs/api/resources/phoneNumbers/resources/webhook/client/Client.d.ts +0 -63
  58. package/dist/cjs/api/resources/phoneNumbers/resources/webhook/client/Client.js +0 -231
  59. package/dist/cjs/api/resources/phoneNumbers/resources/webhook/client/index.d.ts +0 -1
  60. package/dist/cjs/api/resources/phoneNumbers/resources/webhook/index.d.ts +0 -1
  61. package/dist/cjs/api/resources/phoneNumbers/resources/webhook/index.js +0 -17
  62. package/dist/cjs/api/types/AttachWebhookParams.d.ts +0 -19
  63. package/dist/cjs/api/types/ConfiguredWebhook.d.ts +0 -32
  64. package/dist/cjs/api/types/DetachedWebhookInfo.d.ts +0 -8
  65. package/dist/cjs/api/types/RcsCampaignUseCaseEnum.d.ts +0 -37
  66. package/dist/cjs/api/types/RcsCampaignUseCaseEnum.js +0 -40
  67. package/dist/esm/api/resources/phoneNumbers/resources/webhook/client/Client.d.mts +0 -63
  68. package/dist/esm/api/resources/phoneNumbers/resources/webhook/client/Client.mjs +0 -194
  69. package/dist/esm/api/resources/phoneNumbers/resources/webhook/client/index.d.mts +0 -1
  70. package/dist/esm/api/resources/phoneNumbers/resources/webhook/client/index.mjs +0 -1
  71. package/dist/esm/api/resources/phoneNumbers/resources/webhook/index.d.mts +0 -1
  72. package/dist/esm/api/resources/phoneNumbers/resources/webhook/index.mjs +0 -1
  73. package/dist/esm/api/types/AttachWebhookParams.d.mts +0 -19
  74. package/dist/esm/api/types/ConfiguredWebhook.d.mts +0 -32
  75. package/dist/esm/api/types/DetachedWebhookInfo.d.mts +0 -8
  76. package/dist/esm/api/types/RcsCampaignUseCaseEnum.d.mts +0 -37
  77. package/dist/esm/api/types/RcsCampaignUseCaseEnum.mjs +0 -37
  78. /package/dist/cjs/api/{types → resources/webhooks/client/requests}/AttachWebhookParams.js +0 -0
  79. /package/dist/cjs/api/{types/ConfiguredWebhook.js → resources/webhooks/client/requests/DetachWebhookParams.js} +0 -0
  80. /package/dist/cjs/api/types/{DetachedWebhookInfo.js → AttachWebhookResult.js} +0 -0
  81. /package/dist/esm/api/{types → resources/webhooks/client/requests}/AttachWebhookParams.mjs +0 -0
  82. /package/dist/esm/api/{types/ConfiguredWebhook.mjs → resources/webhooks/client/requests/DetachWebhookParams.mjs} +0 -0
  83. /package/dist/esm/api/types/{DetachedWebhookInfo.mjs → AttachWebhookResult.mjs} +0 -0
@@ -0,0 +1,22 @@
1
+ import type * as Pinnacle from "../index.mjs";
2
+ export interface AttachWebhookResult {
3
+ webhook: AttachWebhookResult.Webhook;
4
+ /** The event type filter applied to these subscriptions. */
5
+ event: Pinnacle.WebhookEventEnum | null;
6
+ /** Senders that were successfully attached (phone numbers in E.164 format or RCS agent IDs). */
7
+ senders: string[];
8
+ /** Senders that could not be attached, with error details. */
9
+ failed: Pinnacle.FailedSender[];
10
+ }
11
+ export declare namespace AttachWebhookResult {
12
+ interface Webhook {
13
+ /** Unique webhook identifier (starts with `wh_`). */
14
+ id: string;
15
+ /** Name of the webhook. */
16
+ name: string;
17
+ /** HTTPS endpoint URL where events are delivered. */
18
+ url: string;
19
+ /** Signing secret sent in the `PINNACLE-SIGNING-SECRET` header for request verification. */
20
+ secret: string;
21
+ }
22
+ }
@@ -0,0 +1,9 @@
1
+ import type * as Pinnacle from "../index.mjs";
2
+ export interface DetachWebhookResult {
3
+ /** The webhook that was detached from the senders. */
4
+ webhookId: string;
5
+ /** Senders that were successfully detached (phone numbers in E.164 format or RCS agent IDs). */
6
+ senders: string[];
7
+ /** Senders that could not be detached, with error details. */
8
+ failed: Pinnacle.FailedSender[];
9
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -13,21 +13,15 @@ export interface ExtendedRcsCampaign {
13
13
  /** Legal documentation links. */
14
14
  links?: ExtendedRcsCampaign.Links;
15
15
  status: Pinnacle.ProfileStatusEnum;
16
- /** Use case classification for the campaign. */
17
- useCase?: ExtendedRcsCampaign.UseCase;
18
- /** Details on how opt-in is acquired. If it is done through a website or app, provide the link. See the [Opt-In Terms and Conditions](/guides/campaigns/rcs-compliance#opt-in-terms-and-conditions) section for requirements. */
19
- optInTermsAndConditions?: string;
16
+ /** Detailed summary of what the brand is and how this agent will be used. See the [Use Case Behavior](/guides/campaigns/rcs-compliance#use-case-behavior) section for requirements. */
17
+ useCaseDescription?: string;
20
18
  messagingType?: Pinnacle.RcsMessagingTypeEnum;
21
- /** Description of the agent's purpose, shown to carriers for approval. See the [Carrier Description](/guides/campaigns/rcs-compliance#carrier-description) section for requirements. */
22
- carrierDescription?: string;
19
+ /** URL to the opt-in form or a URL to a screenshot of the opt-in CTA. */
20
+ ctaMedia?: string;
21
+ /** Details on how opt-in is acquired. If it is done through a website or app, provide the link. See the [Opt-In Method](/guides/campaigns/rcs-compliance#opt-in-method) section for requirements. */
22
+ optInMethod?: string;
23
23
  keywords?: ExtendedRcsCampaign.Keywords;
24
24
  traffic?: ExtendedRcsCampaign.Traffic;
25
- /** Explanation of how the agent is triggered. This includes how the first message is delivered, whether messages follow a schedule or triggered by user actions, and any external triggers. See the [Agent Triggers](/guides/campaigns/rcs-compliance#agent-triggers) section for requirements. */
26
- agentTriggers?: string;
27
- /** Description of all agent interactions, including primary and secondary use cases. See the [Interaction Description](/guides/campaigns/rcs-compliance#interaction-description) section for requirements. */
28
- interactionDescription?: string;
29
- /** Whether the agent supports conversational flows or respond to P2A messages from the users. Set to false for one-way messages from agent to user. */
30
- isConversational?: boolean;
31
25
  /** Required text that appears next to the opt-in checkbox for your opt-in form. This checkbox has to be unchecked by default. See the [CTA Language](/guides/campaigns/rcs-compliance#cta-language-opt-in-disclosure) section for requirements. */
32
26
  ctaLanguage?: string;
33
27
  /** Instructions on how an external reviewer can trigger messages and an example flow from the agent. This is usually an inbound text message to the agent that will start a flow of messages between the agent and the user. See the [Demo Trigger](/guides/campaigns/rcs-compliance#demo-trigger) section for requirements. */
@@ -93,14 +87,6 @@ export declare namespace ExtendedRcsCampaign {
93
87
  /** Terms of service URL. */
94
88
  termsOfService?: string;
95
89
  }
96
- /**
97
- * Use case classification for the campaign.
98
- */
99
- interface UseCase {
100
- /** Detailed summary of what the brand is and how this agent will be used. See the [Use Case Behavior](/guides/campaigns/rcs-compliance#use-case-behavior) section for requirements. */
101
- behavior?: string;
102
- value?: Pinnacle.RcsCampaignUseCaseEnum;
103
- }
104
90
  interface Keywords {
105
91
  HELP?: Keywords.Help;
106
92
  OPT_IN?: Keywords.OptIn;
@@ -0,0 +1,6 @@
1
+ export interface FailedSender {
2
+ /** The sender that failed. */
3
+ sender: string;
4
+ /** Reason for the failure. */
5
+ error: string;
6
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -8,21 +8,15 @@ export interface RcsCampaign {
8
8
  expectedAgentResponses?: string[];
9
9
  /** Legal documentation links. */
10
10
  links?: RcsCampaign.Links;
11
- /** Use case classification for the campaign. */
12
- useCase?: RcsCampaign.UseCase;
13
- /** Details on how opt-in is acquired. If it is done through a website or app, provide the link. See the [Opt-In Terms and Conditions](/guides/campaigns/rcs-compliance#opt-in-terms-and-conditions) section for requirements. */
14
- optInTermsAndConditions?: string;
11
+ /** Detailed summary of what the brand is and how this agent will be used. See the [Use Case Behavior](/guides/campaigns/rcs-compliance#use-case-behavior) section for requirements. */
12
+ useCaseDescription?: string;
15
13
  messagingType?: Pinnacle.RcsMessagingTypeEnum;
16
- /** Description of the agent's purpose, shown to carriers for approval. See the [Carrier Description](/guides/campaigns/rcs-compliance#carrier-description) section for requirements. */
17
- carrierDescription?: string;
14
+ /** URL to the opt-in form or a URL to a screenshot of the opt-in CTA. */
15
+ ctaMedia?: string;
16
+ /** Details on how opt-in is acquired. If it is done through a website or app, provide the link. See the [Opt-In Method](/guides/campaigns/rcs-compliance#opt-in-method) section for requirements. */
17
+ optInMethod?: string;
18
18
  keywords?: RcsCampaign.Keywords;
19
19
  traffic?: RcsCampaign.Traffic;
20
- /** Explanation of how the agent is triggered. This includes how the first message is delivered, whether messages follow a schedule or triggered by user actions, and any external triggers. See the [Agent Triggers](/guides/campaigns/rcs-compliance#agent-triggers) section for requirements. */
21
- agentTriggers?: string;
22
- /** Description of all agent interactions, including primary and secondary use cases. See the [Interaction Description](/guides/campaigns/rcs-compliance#interaction-description) section for requirements. */
23
- interactionDescription?: string;
24
- /** Whether the agent supports conversational flows or respond to P2A messages from the users. Set to false for one-way messages from agent to user. */
25
- isConversational?: boolean;
26
20
  /** Required text that appears next to the opt-in checkbox for your opt-in form. This checkbox has to be unchecked by default. See the [CTA Language](/guides/campaigns/rcs-compliance#cta-language-opt-in-disclosure) section for requirements. */
27
21
  ctaLanguage?: string;
28
22
  /** Instructions on how an external reviewer can trigger messages and an example flow from the agent. This is usually an inbound text message to the agent that will start a flow of messages between the agent and the user. See the [Demo Trigger](/guides/campaigns/rcs-compliance#demo-trigger) section for requirements. */
@@ -88,14 +82,6 @@ export declare namespace RcsCampaign {
88
82
  /** Terms of service URL. */
89
83
  termsOfService?: string;
90
84
  }
91
- /**
92
- * Use case classification for the campaign.
93
- */
94
- interface UseCase {
95
- /** Detailed summary of what the brand is and how this agent will be used. See the [Use Case Behavior](/guides/campaigns/rcs-compliance#use-case-behavior) section for requirements. */
96
- behavior?: string;
97
- value?: Pinnacle.RcsCampaignUseCaseEnum;
98
- }
99
85
  interface Keywords {
100
86
  HELP?: Keywords.Help;
101
87
  OPT_IN?: Keywords.OptIn;
@@ -7,8 +7,6 @@ export interface RcsCampaignSummary {
7
7
  status: RcsCampaignSummary.Status;
8
8
  /** Brand ID associated with this campaign. */
9
9
  brandId?: string;
10
- /** Primary use case for this campaign. */
11
- useCase?: string;
12
10
  /** RCS agent ID associated with this campaign. */
13
11
  agentId?: string;
14
12
  /** ISO 8601 timestamp of when the campaign was created. */
@@ -1,10 +1,11 @@
1
1
  /**
2
- * Types of events that can trigger webhook notifications for phone numbers.
3
- * Subscribe to specific events to receive real-time updates about your phone number activity.
2
+ * Types of events that can trigger webhook notifications.
3
+ * Subscribe to specific events to receive real-time updates about your sender activity.
4
4
  * Use `null` to listen to all events.
5
5
  */
6
6
  export declare const WebhookEventEnum: {
7
7
  readonly MessageStatus: "MESSAGE.STATUS";
8
8
  readonly MessageReceived: "MESSAGE.RECEIVED";
9
+ readonly UserTyping: "USER.TYPING";
9
10
  };
10
11
  export type WebhookEventEnum = (typeof WebhookEventEnum)[keyof typeof WebhookEventEnum];
@@ -1,10 +1,11 @@
1
1
  // This file was auto-generated by Fern from our API Definition.
2
2
  /**
3
- * Types of events that can trigger webhook notifications for phone numbers.
4
- * Subscribe to specific events to receive real-time updates about your phone number activity.
3
+ * Types of events that can trigger webhook notifications.
4
+ * Subscribe to specific events to receive real-time updates about your sender activity.
5
5
  * Use `null` to listen to all events.
6
6
  */
7
7
  export const WebhookEventEnum = {
8
8
  MessageStatus: "MESSAGE.STATUS",
9
9
  MessageReceived: "MESSAGE.RECEIVED",
10
+ UserTyping: "USER.TYPING",
10
11
  };
@@ -5,7 +5,7 @@ export * from "./AgentSummary.mjs";
5
5
  export * from "./AgentUseCase.mjs";
6
6
  export * from "./AgentWebsiteEntry.mjs";
7
7
  export * from "./AttachedPhoneNumberResult.mjs";
8
- export * from "./AttachWebhookParams.mjs";
8
+ export * from "./AttachWebhookResult.mjs";
9
9
  export * from "./AudienceCountOnly.mjs";
10
10
  export * from "./AudienceSummary.mjs";
11
11
  export * from "./AudienceWithPagination.mjs";
@@ -29,7 +29,6 @@ export * from "./CarrierLaunchStatus.mjs";
29
29
  export * from "./CompanyEntityTypeEnum.mjs";
30
30
  export * from "./CompanySectorEnum.mjs";
31
31
  export * from "./CompanyTypeEnum.mjs";
32
- export * from "./ConfiguredWebhook.mjs";
33
32
  export * from "./Contact.mjs";
34
33
  export * from "./ContactId.mjs";
35
34
  export * from "./Conversation.mjs";
@@ -37,7 +36,7 @@ export * from "./ConversationList.mjs";
37
36
  export * from "./CreateUrlOptions.mjs";
38
37
  export * from "./DeleteAudienceResponse.mjs";
39
38
  export * from "./DetachedPhoneNumberResult.mjs";
40
- export * from "./DetachedWebhookInfo.mjs";
39
+ export * from "./DetachWebhookResult.mjs";
41
40
  export * from "./DetailedPhoneNumberEnum.mjs";
42
41
  export * from "./DlcAssignmentStatusEnum.mjs";
43
42
  export * from "./DlcCampaignStatus.mjs";
@@ -50,6 +49,7 @@ export * from "./Error_.mjs";
50
49
  export * from "./ExtendedBrand.mjs";
51
50
  export * from "./ExtendedBrandWithVetting.mjs";
52
51
  export * from "./ExtendedRcsCampaign.mjs";
52
+ export * from "./FailedSender.mjs";
53
53
  export * from "./FallbackMessage.mjs";
54
54
  export * from "./GetConversationParams.mjs";
55
55
  export * from "./LinkClickEvent.mjs";
@@ -119,7 +119,6 @@ export * from "./RcsButtonTrigger.mjs";
119
119
  export * from "./RcsCampaign.mjs";
120
120
  export * from "./RcsCampaignStatus.mjs";
121
121
  export * from "./RcsCampaignSummary.mjs";
122
- export * from "./RcsCampaignUseCaseEnum.mjs";
123
122
  export * from "./RcsCapabilitiesResult.mjs";
124
123
  export * from "./RcsCapability.mjs";
125
124
  export * from "./RcsCardsContent.mjs";
@@ -5,7 +5,7 @@ export * from "./AgentSummary.mjs";
5
5
  export * from "./AgentUseCase.mjs";
6
6
  export * from "./AgentWebsiteEntry.mjs";
7
7
  export * from "./AttachedPhoneNumberResult.mjs";
8
- export * from "./AttachWebhookParams.mjs";
8
+ export * from "./AttachWebhookResult.mjs";
9
9
  export * from "./AudienceCountOnly.mjs";
10
10
  export * from "./AudienceSummary.mjs";
11
11
  export * from "./AudienceWithPagination.mjs";
@@ -29,7 +29,6 @@ export * from "./CarrierLaunchStatus.mjs";
29
29
  export * from "./CompanyEntityTypeEnum.mjs";
30
30
  export * from "./CompanySectorEnum.mjs";
31
31
  export * from "./CompanyTypeEnum.mjs";
32
- export * from "./ConfiguredWebhook.mjs";
33
32
  export * from "./Contact.mjs";
34
33
  export * from "./ContactId.mjs";
35
34
  export * from "./Conversation.mjs";
@@ -37,7 +36,7 @@ export * from "./ConversationList.mjs";
37
36
  export * from "./CreateUrlOptions.mjs";
38
37
  export * from "./DeleteAudienceResponse.mjs";
39
38
  export * from "./DetachedPhoneNumberResult.mjs";
40
- export * from "./DetachedWebhookInfo.mjs";
39
+ export * from "./DetachWebhookResult.mjs";
41
40
  export * from "./DetailedPhoneNumberEnum.mjs";
42
41
  export * from "./DlcAssignmentStatusEnum.mjs";
43
42
  export * from "./DlcCampaignStatus.mjs";
@@ -50,6 +49,7 @@ export * from "./Error_.mjs";
50
49
  export * from "./ExtendedBrand.mjs";
51
50
  export * from "./ExtendedBrandWithVetting.mjs";
52
51
  export * from "./ExtendedRcsCampaign.mjs";
52
+ export * from "./FailedSender.mjs";
53
53
  export * from "./FallbackMessage.mjs";
54
54
  export * from "./GetConversationParams.mjs";
55
55
  export * from "./LinkClickEvent.mjs";
@@ -119,7 +119,6 @@ export * from "./RcsButtonTrigger.mjs";
119
119
  export * from "./RcsCampaign.mjs";
120
120
  export * from "./RcsCampaignStatus.mjs";
121
121
  export * from "./RcsCampaignSummary.mjs";
122
- export * from "./RcsCampaignUseCaseEnum.mjs";
123
122
  export * from "./RcsCapabilitiesResult.mjs";
124
123
  export * from "./RcsCapability.mjs";
125
124
  export * from "./RcsCardsContent.mjs";
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "2.0.14";
1
+ export declare const SDK_VERSION = "2.0.15";
@@ -1 +1 @@
1
- export const SDK_VERSION = "2.0.14";
1
+ export const SDK_VERSION = "2.0.15";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rcs-js",
3
- "version": "2.0.14",
3
+ "version": "2.0.15",
4
4
  "private": false,
5
5
  "repository": "github:pinnacle-dev/rcs-js",
6
6
  "type": "commonjs",
package/reference.md CHANGED
@@ -2172,6 +2172,143 @@ await client.webhooks.list();
2172
2172
  </dl>
2173
2173
 
2174
2174
 
2175
+ </dd>
2176
+ </dl>
2177
+ </details>
2178
+
2179
+ <details><summary><code>client.webhooks.<a href="/src/api/resources/webhooks/client/Client.ts">attach</a>({ ...params }) -> Pinnacle.AttachWebhookResult</code></summary>
2180
+ <dl>
2181
+ <dd>
2182
+
2183
+ #### 📝 Description
2184
+
2185
+ <dl>
2186
+ <dd>
2187
+
2188
+ <dl>
2189
+ <dd>
2190
+
2191
+ Attach a webhook to one or more senders (phone numbers or RCS agent IDs) to receive real-time event notifications. <br>
2192
+
2193
+ You can attach an existing webhook by providing its ID, or create a new webhook by specifying a name and URL. Supports bulk operations with up to 50 senders per request. <br>
2194
+
2195
+ Subscriptions are additive — attaching new senders does not remove existing ones. Re-attaching the same sender updates the event type filter without creating duplicates.
2196
+ </dd>
2197
+ </dl>
2198
+ </dd>
2199
+ </dl>
2200
+
2201
+ #### 🔌 Usage
2202
+
2203
+ <dl>
2204
+ <dd>
2205
+
2206
+ <dl>
2207
+ <dd>
2208
+
2209
+ ```typescript
2210
+ await client.webhooks.attach({
2211
+ senders: ["+14155551234", "agent_abc123"]
2212
+ });
2213
+
2214
+ ```
2215
+ </dd>
2216
+ </dl>
2217
+ </dd>
2218
+ </dl>
2219
+
2220
+ #### ⚙️ Parameters
2221
+
2222
+ <dl>
2223
+ <dd>
2224
+
2225
+ <dl>
2226
+ <dd>
2227
+
2228
+ **request:** `Pinnacle.AttachWebhookParams`
2229
+
2230
+ </dd>
2231
+ </dl>
2232
+
2233
+ <dl>
2234
+ <dd>
2235
+
2236
+ **requestOptions:** `Webhooks.RequestOptions`
2237
+
2238
+ </dd>
2239
+ </dl>
2240
+ </dd>
2241
+ </dl>
2242
+
2243
+
2244
+ </dd>
2245
+ </dl>
2246
+ </details>
2247
+
2248
+ <details><summary><code>client.webhooks.<a href="/src/api/resources/webhooks/client/Client.ts">detach</a>({ ...params }) -> Pinnacle.DetachWebhookResult</code></summary>
2249
+ <dl>
2250
+ <dd>
2251
+
2252
+ #### 📝 Description
2253
+
2254
+ <dl>
2255
+ <dd>
2256
+
2257
+ <dl>
2258
+ <dd>
2259
+
2260
+ Detach a webhook from one or more senders (phone numbers or RCS agent IDs) to stop receiving event notifications. <br>
2261
+
2262
+ The webhook itself is not deleted and remains available for use with other senders. Works regardless of webhook status. Supports bulk operations with up to 50 senders per request.
2263
+ </dd>
2264
+ </dl>
2265
+ </dd>
2266
+ </dl>
2267
+
2268
+ #### 🔌 Usage
2269
+
2270
+ <dl>
2271
+ <dd>
2272
+
2273
+ <dl>
2274
+ <dd>
2275
+
2276
+ ```typescript
2277
+ await client.webhooks.detach({
2278
+ webhookId: "webhookId",
2279
+ senders: ["+14155551234", "agent_abc123"]
2280
+ });
2281
+
2282
+ ```
2283
+ </dd>
2284
+ </dl>
2285
+ </dd>
2286
+ </dl>
2287
+
2288
+ #### ⚙️ Parameters
2289
+
2290
+ <dl>
2291
+ <dd>
2292
+
2293
+ <dl>
2294
+ <dd>
2295
+
2296
+ **request:** `Pinnacle.DetachWebhookParams`
2297
+
2298
+ </dd>
2299
+ </dl>
2300
+
2301
+ <dl>
2302
+ <dd>
2303
+
2304
+ **requestOptions:** `Webhooks.RequestOptions`
2305
+
2306
+ </dd>
2307
+ </dl>
2308
+ </dd>
2309
+ </dl>
2310
+
2311
+
2175
2312
  </dd>
2176
2313
  </dl>
2177
2314
  </details>
@@ -3429,16 +3566,13 @@ await client.campaigns.rcs.upsert({
3429
3566
  campaignId: "rcs_1234567890",
3430
3567
  expectedAgentResponses: ["Here are the things I can help you with.", "I can assist you with booking an appointment, or you may choose to book manually.", "Here are the available times to connect with a representative tomorrow.", "Your appointment has been scheduled."],
3431
3568
  links: {
3432
- privacyPolicy: "https://www.trypinnacle.app/privacy",
3433
- termsOfService: "https://www.trypinnacle.app/terms"
3434
- },
3435
- useCase: {
3436
- behavior: "Pinnacle is a developer-focused RCS assistant that helps teams design, test, and optimize rich messaging experiences across SMS, MMS, and RCS. The agent acts as both an \u201Conboarding guide\u201D for new customers and a \u201Cbest-practices coach\u201D for existing teams exploring higher-value RCS workflows like rich cards, carousels, and suggested actions.<br>\nThe agent delivers a mix of operational updates and educational content (2\u20136 messages/month). Content includes important platform notices (e.g., deliverability or throughput changes), implementation tips with sample RCS templates, and personalized recommendations on how to upgrade existing SMS campaigns into richer, higher-converting RCS conversations.\n",
3437
- value: "OTHER"
3569
+ privacyPolicy: "\u201Chttps://www.trypinnacle.app/privacy\u201D",
3570
+ termsOfService: "\u201Chttps://www.trypinnacle.app/terms\u201D"
3438
3571
  },
3439
- optInTermsAndConditions: "We ensure consent through an explicit opt-in process that follows 10DLC best practices.Users must agree to receive messages from Pinnacle before the agent sends them any messages.<br>\nUsers agree to these messages by signing an opt-in paper form that they can be found online at https://www.pinnacle.sh/opt-in. We only send messages once users have filled out the form and submitted it to us via email or through the dashboard.\n",
3440
- messagingType: "MULTI_USE",
3441
- carrierDescription: "Demonstrate the power of RCS to medium and large companies already sending massive SMS/MMS volumes through our platform. These clients send conversational messages in industries such as commerce, appointments, and customer support.",
3572
+ useCaseDescription: "Pinnacle is a developer-focused RCS assistant that helps teams design, test, and optimize rich messaging experiences across SMS, MMS, and RCS. The agent acts as both an \u201Conboarding guide\u201D for new customers and a \u201Cbest-practices coach\u201D for existing teams exploring higher-value RCS workflows like rich cards, carousels, and suggested actions.<br>\nThe agent delivers a mix of operational updates and educational content (2\u20136 messages/month). Content includes important platform notices (e.g., deliverability or throughput changes), implementation tips with sample RCS templates, and personalized recommendations on how to upgrade existing SMS campaigns into richer, higher-converting RCS conversations.\n",
3573
+ messagingType: "OTP",
3574
+ ctaMedia: "\u201Chttps://www.pinnacle.sh/send\u201D",
3575
+ optInMethod: "We ensure consent through an explicit opt-in process that follows 10DLC best practices.Users must agree to receive messages from Pinnacle before the agent sends them any messages.<br>\nUsers agree to these messages by signing an opt-in paper form that they can be found online at https://www.pinnacle.sh/opt-in. We only send messages once users have filled out the form and submitted it to us via email or through the dashboard.\n",
3442
3576
  keywords: {
3443
3577
  HELP: {
3444
3578
  message: "Email founders@trypinnacle.app for support.",
@@ -3457,9 +3591,6 @@ await client.campaigns.rcs.upsert({
3457
3591
  monthlyWebsite: 10000,
3458
3592
  monthlyRcsEstimate: 10000
3459
3593
  },
3460
- agentTriggers: "The agent sends the first message when the user subscribes to Pinnacle. Messages are based on user actions such as pressing suggestion buttons. External triggers such as reminders can be setup by users in advance for a later time.",
3461
- interactionDescription: "The agent's primary interaction will be customer service \u2014 helping users with questions, troubleshooting issues, and providing quick assistance through chat. Other interactions include appointment management and sending notifications to the user.",
3462
- isConversational: true,
3463
3594
  ctaLanguage: "By checking this box and submitting this form, you consent to receive transactional text messages for support, appointment, and reminder messages from Pinnacle Software Development Inc. Reply STOP to opt out. Reply HELP for help. Standard message and data rates may apply. Message frequency may vary. View our Terms and Conditions at https://www.pinnacle.sh/terms. View our Privacy Policy at https://www.pinnacle.sh/privacy.",
3464
3595
  demoTrigger: "Text \"START\" to trigger the flow."
3465
3596
  });
@@ -4547,166 +4678,6 @@ await client.messages.blasts.list();
4547
4678
  </dl>
4548
4679
 
4549
4680
 
4550
- </dd>
4551
- </dl>
4552
- </details>
4553
-
4554
- ## PhoneNumbers Webhook
4555
- <details><summary><code>client.phoneNumbers.webhook.<a href="/src/api/resources/phoneNumbers/resources/webhook/client/Client.ts">attach</a>(phone, { ...params }) -> Pinnacle.ConfiguredWebhook</code></summary>
4556
- <dl>
4557
- <dd>
4558
-
4559
- #### 📝 Description
4560
-
4561
- <dl>
4562
- <dd>
4563
-
4564
- <dl>
4565
- <dd>
4566
-
4567
- Connect a webhook to your phone number to receive real-time notifications for incoming messages, delivery status updates, and other communication events.
4568
- </dd>
4569
- </dl>
4570
- </dd>
4571
- </dl>
4572
-
4573
- #### 🔌 Usage
4574
-
4575
- <dl>
4576
- <dd>
4577
-
4578
- <dl>
4579
- <dd>
4580
-
4581
- ```typescript
4582
- await client.phoneNumbers.webhook.attach("%2B14155551234", {
4583
- webhookId: "wh_1234567890",
4584
- event: "MESSAGE.STATUS"
4585
- });
4586
-
4587
- ```
4588
- </dd>
4589
- </dl>
4590
- </dd>
4591
- </dl>
4592
-
4593
- #### ⚙️ Parameters
4594
-
4595
- <dl>
4596
- <dd>
4597
-
4598
- <dl>
4599
- <dd>
4600
-
4601
- **phone:** `string`
4602
-
4603
- The phone number you want to attach the webhook to in E.164 format. Make sure it is url encoded (i.e. replace the leading + with %2B). <br>
4604
-
4605
- Must be a phone number that you own and have already [purchased](./buy) through the API. A phone number can have multiple webhooks attached to it.
4606
-
4607
- </dd>
4608
- </dl>
4609
-
4610
- <dl>
4611
- <dd>
4612
-
4613
- **request:** `Pinnacle.AttachWebhookParams`
4614
-
4615
- </dd>
4616
- </dl>
4617
-
4618
- <dl>
4619
- <dd>
4620
-
4621
- **requestOptions:** `Webhook.RequestOptions`
4622
-
4623
- </dd>
4624
- </dl>
4625
- </dd>
4626
- </dl>
4627
-
4628
-
4629
- </dd>
4630
- </dl>
4631
- </details>
4632
-
4633
- <details><summary><code>client.phoneNumbers.webhook.<a href="/src/api/resources/phoneNumbers/resources/webhook/client/Client.ts">detach</a>(phone, webhookId) -> Pinnacle.DetachedWebhookInfo</code></summary>
4634
- <dl>
4635
- <dd>
4636
-
4637
- #### 📝 Description
4638
-
4639
- <dl>
4640
- <dd>
4641
-
4642
- <dl>
4643
- <dd>
4644
-
4645
- Disconnect a webhook from your phone number to stop receiving event notifications for that specific number. <br>
4646
-
4647
- The webhook configuration itself remains intact and available for use with other phone numbers.
4648
- </dd>
4649
- </dl>
4650
- </dd>
4651
- </dl>
4652
-
4653
- #### 🔌 Usage
4654
-
4655
- <dl>
4656
- <dd>
4657
-
4658
- <dl>
4659
- <dd>
4660
-
4661
- ```typescript
4662
- await client.phoneNumbers.webhook.detach("+14155551234", "wh_1234567890");
4663
-
4664
- ```
4665
- </dd>
4666
- </dl>
4667
- </dd>
4668
- </dl>
4669
-
4670
- #### ⚙️ Parameters
4671
-
4672
- <dl>
4673
- <dd>
4674
-
4675
- <dl>
4676
- <dd>
4677
-
4678
- **phone:** `string`
4679
-
4680
- The phone number you want to attach the webhook to in E.164 format. Make sure it is url encoded (i.e. replace the leading + with %2B). <br>
4681
-
4682
- Must be a phone number that you own and currently has the specified webhook attached.
4683
-
4684
- </dd>
4685
- </dl>
4686
-
4687
- <dl>
4688
- <dd>
4689
-
4690
- **webhookId:** `string`
4691
-
4692
- The unique identifier of the webhook you want to detach from the phone number. <br>
4693
-
4694
- This must be a valid webhook ID that is currently attached to the specified phone number. This identifier is a string that always begins with the prefix `wh_`, for example: `wh_1234567890`.
4695
-
4696
- </dd>
4697
- </dl>
4698
-
4699
- <dl>
4700
- <dd>
4701
-
4702
- **requestOptions:** `Webhook.RequestOptions`
4703
-
4704
- </dd>
4705
- </dl>
4706
- </dd>
4707
- </dl>
4708
-
4709
-
4710
4681
  </dd>
4711
4682
  </dl>
4712
4683
  </details>