@keystrokehq/spoki 0.1.2 → 0.1.3
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.
- package/dist/actions/add-contact-operator.cjs +1 -1
- package/dist/actions/add-contact-operator.cjs.map +1 -1
- package/dist/actions/add-contact-operator.d.cts +1 -1
- package/dist/actions/add-contact-operator.d.cts.map +1 -1
- package/dist/actions/add-contact-operator.d.mts +1 -1
- package/dist/actions/add-contact-operator.d.mts.map +1 -1
- package/dist/actions/add-contact-operator.mjs +1 -1
- package/dist/actions/add-contact-operator.mjs.map +1 -1
- package/dist/actions/add-service-user.cjs +1 -1
- package/dist/actions/add-service-user.cjs.map +1 -1
- package/dist/actions/add-service-user.d.cts +1 -1
- package/dist/actions/add-service-user.d.mts +1 -1
- package/dist/actions/add-service-user.mjs +1 -1
- package/dist/actions/add-service-user.mjs.map +1 -1
- package/dist/actions/check-role-private-key.cjs +1 -1
- package/dist/actions/check-role-private-key.cjs.map +1 -1
- package/dist/actions/check-role-private-key.d.cts +1 -1
- package/dist/actions/check-role-private-key.d.mts +1 -1
- package/dist/actions/check-role-private-key.mjs +1 -1
- package/dist/actions/check-role-private-key.mjs.map +1 -1
- package/dist/actions/clone-template.cjs +4 -4
- package/dist/actions/clone-template.cjs.map +1 -1
- package/dist/actions/clone-template.d.cts +6 -6
- package/dist/actions/clone-template.d.mts +6 -6
- package/dist/actions/clone-template.mjs +4 -4
- package/dist/actions/clone-template.mjs.map +1 -1
- package/dist/actions/create-account-onboarding-link.cjs +1 -1
- package/dist/actions/create-account-onboarding-link.cjs.map +1 -1
- package/dist/actions/create-account-onboarding-link.d.cts +1 -1
- package/dist/actions/create-account-onboarding-link.d.mts +1 -1
- package/dist/actions/create-account-onboarding-link.mjs +1 -1
- package/dist/actions/create-account-onboarding-link.mjs.map +1 -1
- package/dist/actions/create-custom-field.cjs +1 -1
- package/dist/actions/create-custom-field.cjs.map +1 -1
- package/dist/actions/create-custom-field.d.cts +1 -1
- package/dist/actions/create-custom-field.d.mts +1 -1
- package/dist/actions/create-custom-field.mjs +1 -1
- package/dist/actions/create-custom-field.mjs.map +1 -1
- package/dist/actions/create-list.cjs +1 -1
- package/dist/actions/create-list.cjs.map +1 -1
- package/dist/actions/create-list.d.cts +1 -1
- package/dist/actions/create-list.d.mts +1 -1
- package/dist/actions/create-list.mjs +1 -1
- package/dist/actions/create-list.mjs.map +1 -1
- package/dist/actions/create-media.cjs +1 -1
- package/dist/actions/create-media.cjs.map +1 -1
- package/dist/actions/create-media.d.cts +1 -1
- package/dist/actions/create-media.d.mts +1 -1
- package/dist/actions/create-media.mjs +1 -1
- package/dist/actions/create-media.mjs.map +1 -1
- package/dist/actions/create-or-update-contact.cjs +2 -2
- package/dist/actions/create-or-update-contact.cjs.map +1 -1
- package/dist/actions/create-or-update-contact.d.cts +3 -3
- package/dist/actions/create-or-update-contact.d.mts +3 -3
- package/dist/actions/create-or-update-contact.mjs +2 -2
- package/dist/actions/create-or-update-contact.mjs.map +1 -1
- package/dist/actions/create-template.cjs +7 -7
- package/dist/actions/create-template.cjs.map +1 -1
- package/dist/actions/create-template.d.cts +11 -9
- package/dist/actions/create-template.d.mts +11 -9
- package/dist/actions/create-template.mjs +7 -7
- package/dist/actions/create-template.mjs.map +1 -1
- package/dist/actions/create-ticket.cjs +4 -4
- package/dist/actions/create-ticket.cjs.map +1 -1
- package/dist/actions/create-ticket.d.cts +5 -5
- package/dist/actions/create-ticket.d.mts +5 -5
- package/dist/actions/create-ticket.mjs +4 -4
- package/dist/actions/create-ticket.mjs.map +1 -1
- package/dist/actions/delete-contact.cjs +1 -1
- package/dist/actions/delete-contact.cjs.map +1 -1
- package/dist/actions/delete-contact.d.cts +1 -1
- package/dist/actions/delete-contact.d.cts.map +1 -1
- package/dist/actions/delete-contact.d.mts +1 -1
- package/dist/actions/delete-contact.d.mts.map +1 -1
- package/dist/actions/delete-contact.mjs +1 -1
- package/dist/actions/delete-contact.mjs.map +1 -1
- package/dist/actions/delete-custom-field.cjs +1 -1
- package/dist/actions/delete-custom-field.cjs.map +1 -1
- package/dist/actions/delete-custom-field.d.cts +1 -1
- package/dist/actions/delete-custom-field.d.cts.map +1 -1
- package/dist/actions/delete-custom-field.d.mts +1 -1
- package/dist/actions/delete-custom-field.d.mts.map +1 -1
- package/dist/actions/delete-custom-field.mjs +1 -1
- package/dist/actions/delete-custom-field.mjs.map +1 -1
- package/dist/actions/delete-list.cjs +1 -1
- package/dist/actions/delete-list.cjs.map +1 -1
- package/dist/actions/delete-list.d.cts +1 -1
- package/dist/actions/delete-list.d.cts.map +1 -1
- package/dist/actions/delete-list.d.mts +1 -1
- package/dist/actions/delete-list.d.mts.map +1 -1
- package/dist/actions/delete-list.mjs +1 -1
- package/dist/actions/delete-list.mjs.map +1 -1
- package/dist/actions/delete-media.cjs +1 -1
- package/dist/actions/delete-media.cjs.map +1 -1
- package/dist/actions/delete-media.d.cts +1 -1
- package/dist/actions/delete-media.d.cts.map +1 -1
- package/dist/actions/delete-media.d.mts +1 -1
- package/dist/actions/delete-media.d.mts.map +1 -1
- package/dist/actions/delete-media.mjs +1 -1
- package/dist/actions/delete-media.mjs.map +1 -1
- package/dist/actions/delete-role.cjs +1 -1
- package/dist/actions/delete-role.cjs.map +1 -1
- package/dist/actions/delete-role.d.cts +1 -1
- package/dist/actions/delete-role.d.cts.map +1 -1
- package/dist/actions/delete-role.d.mts +1 -1
- package/dist/actions/delete-role.d.mts.map +1 -1
- package/dist/actions/delete-role.mjs +1 -1
- package/dist/actions/delete-role.mjs.map +1 -1
- package/dist/actions/delete-template.cjs +1 -1
- package/dist/actions/delete-template.cjs.map +1 -1
- package/dist/actions/delete-template.d.cts +1 -1
- package/dist/actions/delete-template.d.mts +1 -1
- package/dist/actions/delete-template.mjs +1 -1
- package/dist/actions/delete-template.mjs.map +1 -1
- package/dist/actions/delete-ticket.cjs +1 -1
- package/dist/actions/delete-ticket.cjs.map +1 -1
- package/dist/actions/delete-ticket.d.cts +1 -1
- package/dist/actions/delete-ticket.d.cts.map +1 -1
- package/dist/actions/delete-ticket.d.mts +1 -1
- package/dist/actions/delete-ticket.d.mts.map +1 -1
- package/dist/actions/delete-ticket.mjs +1 -1
- package/dist/actions/delete-ticket.mjs.map +1 -1
- package/dist/actions/generate-role-private-key.cjs +1 -1
- package/dist/actions/generate-role-private-key.cjs.map +1 -1
- package/dist/actions/generate-role-private-key.d.cts +1 -1
- package/dist/actions/generate-role-private-key.d.mts +1 -1
- package/dist/actions/generate-role-private-key.mjs +1 -1
- package/dist/actions/generate-role-private-key.mjs.map +1 -1
- package/dist/actions/get-account-current-report.cjs +1 -1
- package/dist/actions/get-account-current-report.cjs.map +1 -1
- package/dist/actions/get-account-current-report.d.cts +1 -1
- package/dist/actions/get-account-current-report.d.mts +1 -1
- package/dist/actions/get-account-current-report.mjs +1 -1
- package/dist/actions/get-account-current-report.mjs.map +1 -1
- package/dist/actions/list-accounts.cjs +2 -2
- package/dist/actions/list-accounts.cjs.map +1 -1
- package/dist/actions/list-accounts.d.cts +2 -2
- package/dist/actions/list-accounts.d.mts +2 -2
- package/dist/actions/list-accounts.mjs +2 -2
- package/dist/actions/list-accounts.mjs.map +1 -1
- package/dist/actions/list-automations.cjs +3 -3
- package/dist/actions/list-automations.cjs.map +1 -1
- package/dist/actions/list-automations.d.cts +3 -3
- package/dist/actions/list-automations.d.mts +3 -3
- package/dist/actions/list-automations.mjs +3 -3
- package/dist/actions/list-automations.mjs.map +1 -1
- package/dist/actions/list-campaigns.cjs +4 -4
- package/dist/actions/list-campaigns.cjs.map +1 -1
- package/dist/actions/list-campaigns.d.cts +4 -4
- package/dist/actions/list-campaigns.d.mts +4 -4
- package/dist/actions/list-campaigns.mjs +4 -4
- package/dist/actions/list-campaigns.mjs.map +1 -1
- package/dist/actions/list-contacts.cjs +5 -5
- package/dist/actions/list-contacts.cjs.map +1 -1
- package/dist/actions/list-contacts.d.cts +5 -5
- package/dist/actions/list-contacts.d.mts +5 -5
- package/dist/actions/list-contacts.mjs +5 -5
- package/dist/actions/list-contacts.mjs.map +1 -1
- package/dist/actions/list-custom-fields.cjs +2 -2
- package/dist/actions/list-custom-fields.cjs.map +1 -1
- package/dist/actions/list-custom-fields.d.cts +2 -2
- package/dist/actions/list-custom-fields.d.mts +2 -2
- package/dist/actions/list-custom-fields.mjs +2 -2
- package/dist/actions/list-custom-fields.mjs.map +1 -1
- package/dist/actions/list-lists.cjs +2 -2
- package/dist/actions/list-lists.cjs.map +1 -1
- package/dist/actions/list-lists.d.cts +2 -2
- package/dist/actions/list-lists.d.mts +2 -2
- package/dist/actions/list-lists.mjs +2 -2
- package/dist/actions/list-lists.mjs.map +1 -1
- package/dist/actions/list-media.cjs +2 -2
- package/dist/actions/list-media.cjs.map +1 -1
- package/dist/actions/list-media.d.cts +2 -2
- package/dist/actions/list-media.d.mts +2 -2
- package/dist/actions/list-media.mjs +2 -2
- package/dist/actions/list-media.mjs.map +1 -1
- package/dist/actions/list-reports.cjs +2 -2
- package/dist/actions/list-reports.cjs.map +1 -1
- package/dist/actions/list-reports.d.cts +2 -2
- package/dist/actions/list-reports.d.mts +2 -2
- package/dist/actions/list-reports.mjs +2 -2
- package/dist/actions/list-reports.mjs.map +1 -1
- package/dist/actions/list-roles.cjs +3 -3
- package/dist/actions/list-roles.cjs.map +1 -1
- package/dist/actions/list-roles.d.cts +3 -3
- package/dist/actions/list-roles.d.mts +3 -3
- package/dist/actions/list-roles.mjs +3 -3
- package/dist/actions/list-roles.mjs.map +1 -1
- package/dist/actions/list-tags.cjs +2 -2
- package/dist/actions/list-tags.cjs.map +1 -1
- package/dist/actions/list-tags.d.cts +2 -2
- package/dist/actions/list-tags.d.mts +2 -2
- package/dist/actions/list-tags.mjs +2 -2
- package/dist/actions/list-tags.mjs.map +1 -1
- package/dist/actions/list-templates.cjs +6 -6
- package/dist/actions/list-templates.cjs.map +1 -1
- package/dist/actions/list-templates.d.cts +8 -8
- package/dist/actions/list-templates.d.mts +8 -8
- package/dist/actions/list-templates.mjs +6 -6
- package/dist/actions/list-templates.mjs.map +1 -1
- package/dist/actions/list-tickets.cjs +5 -5
- package/dist/actions/list-tickets.cjs.map +1 -1
- package/dist/actions/list-tickets.d.cts +6 -6
- package/dist/actions/list-tickets.d.mts +6 -6
- package/dist/actions/list-tickets.mjs +5 -5
- package/dist/actions/list-tickets.mjs.map +1 -1
- package/dist/actions/remove-all-list-contacts.cjs +1 -1
- package/dist/actions/remove-all-list-contacts.cjs.map +1 -1
- package/dist/actions/remove-all-list-contacts.d.cts +1 -1
- package/dist/actions/remove-all-list-contacts.d.mts +1 -1
- package/dist/actions/remove-all-list-contacts.mjs +1 -1
- package/dist/actions/remove-all-list-contacts.mjs.map +1 -1
- package/dist/actions/remove-contact-operator.cjs +1 -1
- package/dist/actions/remove-contact-operator.cjs.map +1 -1
- package/dist/actions/remove-contact-operator.d.cts +1 -1
- package/dist/actions/remove-contact-operator.d.mts +1 -1
- package/dist/actions/remove-contact-operator.mjs +1 -1
- package/dist/actions/remove-contact-operator.mjs.map +1 -1
- package/dist/actions/remove-list-contacts.cjs +1 -1
- package/dist/actions/remove-list-contacts.cjs.map +1 -1
- package/dist/actions/remove-list-contacts.d.cts +1 -1
- package/dist/actions/remove-list-contacts.d.mts +1 -1
- package/dist/actions/remove-list-contacts.mjs +1 -1
- package/dist/actions/remove-list-contacts.mjs.map +1 -1
- package/dist/actions/resend-invitation.cjs +1 -1
- package/dist/actions/resend-invitation.cjs.map +1 -1
- package/dist/actions/resend-invitation.d.cts +1 -1
- package/dist/actions/resend-invitation.d.mts +1 -1
- package/dist/actions/resend-invitation.mjs +1 -1
- package/dist/actions/resend-invitation.mjs.map +1 -1
- package/dist/actions/retrieve-account.cjs +1 -1
- package/dist/actions/retrieve-account.cjs.map +1 -1
- package/dist/actions/retrieve-account.d.cts +1 -1
- package/dist/actions/retrieve-account.d.mts +1 -1
- package/dist/actions/retrieve-account.mjs +1 -1
- package/dist/actions/retrieve-account.mjs.map +1 -1
- package/dist/actions/retrieve-automation.cjs +2 -2
- package/dist/actions/retrieve-automation.cjs.map +1 -1
- package/dist/actions/retrieve-automation.d.cts +2 -2
- package/dist/actions/retrieve-automation.d.mts +2 -2
- package/dist/actions/retrieve-automation.mjs +2 -2
- package/dist/actions/retrieve-automation.mjs.map +1 -1
- package/dist/actions/retrieve-contact.cjs +6 -6
- package/dist/actions/retrieve-contact.cjs.map +1 -1
- package/dist/actions/retrieve-contact.d.cts +6 -6
- package/dist/actions/retrieve-contact.d.mts +6 -6
- package/dist/actions/retrieve-contact.mjs +6 -6
- package/dist/actions/retrieve-contact.mjs.map +1 -1
- package/dist/actions/retrieve-custom-field.cjs +1 -1
- package/dist/actions/retrieve-custom-field.cjs.map +1 -1
- package/dist/actions/retrieve-custom-field.d.cts +1 -1
- package/dist/actions/retrieve-custom-field.d.mts +1 -1
- package/dist/actions/retrieve-custom-field.mjs +1 -1
- package/dist/actions/retrieve-custom-field.mjs.map +1 -1
- package/dist/actions/retrieve-list.cjs +1 -1
- package/dist/actions/retrieve-list.cjs.map +1 -1
- package/dist/actions/retrieve-list.d.cts +1 -1
- package/dist/actions/retrieve-list.d.mts +1 -1
- package/dist/actions/retrieve-list.mjs +1 -1
- package/dist/actions/retrieve-list.mjs.map +1 -1
- package/dist/actions/retrieve-media.cjs +1 -1
- package/dist/actions/retrieve-media.cjs.map +1 -1
- package/dist/actions/retrieve-media.d.cts +1 -1
- package/dist/actions/retrieve-media.d.mts +1 -1
- package/dist/actions/retrieve-media.mjs +1 -1
- package/dist/actions/retrieve-media.mjs.map +1 -1
- package/dist/actions/retrieve-role.cjs +2 -2
- package/dist/actions/retrieve-role.cjs.map +1 -1
- package/dist/actions/retrieve-role.d.cts +2 -2
- package/dist/actions/retrieve-role.d.mts +2 -2
- package/dist/actions/retrieve-role.mjs +2 -2
- package/dist/actions/retrieve-role.mjs.map +1 -1
- package/dist/actions/retrieve-tag.cjs +1 -1
- package/dist/actions/retrieve-tag.cjs.map +1 -1
- package/dist/actions/retrieve-tag.d.cts +1 -1
- package/dist/actions/retrieve-tag.d.mts +1 -1
- package/dist/actions/retrieve-tag.mjs +1 -1
- package/dist/actions/retrieve-tag.mjs.map +1 -1
- package/dist/actions/retrieve-template.cjs +5 -5
- package/dist/actions/retrieve-template.cjs.map +1 -1
- package/dist/actions/retrieve-template.d.cts +7 -7
- package/dist/actions/retrieve-template.d.mts +7 -7
- package/dist/actions/retrieve-template.mjs +5 -5
- package/dist/actions/retrieve-template.mjs.map +1 -1
- package/dist/actions/revert-template-to-draft.cjs +1 -1
- package/dist/actions/revert-template-to-draft.cjs.map +1 -1
- package/dist/actions/revert-template-to-draft.d.cts +1 -1
- package/dist/actions/revert-template-to-draft.d.mts +1 -1
- package/dist/actions/revert-template-to-draft.mjs +1 -1
- package/dist/actions/revert-template-to-draft.mjs.map +1 -1
- package/dist/actions/sync-contacts-bulk.cjs +5 -5
- package/dist/actions/sync-contacts-bulk.cjs.map +1 -1
- package/dist/actions/sync-contacts-bulk.d.cts +7 -6
- package/dist/actions/sync-contacts-bulk.d.cts.map +1 -1
- package/dist/actions/sync-contacts-bulk.d.mts +7 -6
- package/dist/actions/sync-contacts-bulk.d.mts.map +1 -1
- package/dist/actions/sync-contacts-bulk.mjs +5 -5
- package/dist/actions/sync-contacts-bulk.mjs.map +1 -1
- package/dist/actions/sync-list-contacts.cjs +3 -3
- package/dist/actions/sync-list-contacts.cjs.map +1 -1
- package/dist/actions/sync-list-contacts.d.cts +6 -5
- package/dist/actions/sync-list-contacts.d.cts.map +1 -1
- package/dist/actions/sync-list-contacts.d.mts +6 -5
- package/dist/actions/sync-list-contacts.d.mts.map +1 -1
- package/dist/actions/sync-list-contacts.mjs +3 -3
- package/dist/actions/sync-list-contacts.mjs.map +1 -1
- package/dist/actions/update-campaign.cjs +1 -1
- package/dist/actions/update-campaign.cjs.map +1 -1
- package/dist/actions/update-campaign.d.cts +1 -1
- package/dist/actions/update-campaign.d.mts +1 -1
- package/dist/actions/update-campaign.mjs +1 -1
- package/dist/actions/update-campaign.mjs.map +1 -1
- package/dist/actions/update-contact.cjs +2 -2
- package/dist/actions/update-contact.cjs.map +1 -1
- package/dist/actions/update-contact.d.cts +3 -3
- package/dist/actions/update-contact.d.mts +3 -3
- package/dist/actions/update-contact.mjs +2 -2
- package/dist/actions/update-contact.mjs.map +1 -1
- package/dist/actions/update-custom-field.cjs +1 -1
- package/dist/actions/update-custom-field.cjs.map +1 -1
- package/dist/actions/update-custom-field.d.cts +1 -1
- package/dist/actions/update-custom-field.d.mts +1 -1
- package/dist/actions/update-custom-field.mjs +1 -1
- package/dist/actions/update-custom-field.mjs.map +1 -1
- package/dist/actions/update-invitation-role.cjs +1 -1
- package/dist/actions/update-invitation-role.cjs.map +1 -1
- package/dist/actions/update-invitation-role.d.cts +1 -1
- package/dist/actions/update-invitation-role.d.mts +1 -1
- package/dist/actions/update-invitation-role.mjs +1 -1
- package/dist/actions/update-invitation-role.mjs.map +1 -1
- package/dist/actions/update-media.cjs +1 -1
- package/dist/actions/update-media.cjs.map +1 -1
- package/dist/actions/update-media.d.cts +1 -1
- package/dist/actions/update-media.d.mts +1 -1
- package/dist/actions/update-media.mjs +1 -1
- package/dist/actions/update-media.mjs.map +1 -1
- package/dist/actions/update-role.cjs +1 -1
- package/dist/actions/update-role.cjs.map +1 -1
- package/dist/actions/update-role.d.cts +1 -1
- package/dist/actions/update-role.d.mts +1 -1
- package/dist/actions/update-role.mjs +1 -1
- package/dist/actions/update-role.mjs.map +1 -1
- package/dist/actions/update-template.cjs +8 -8
- package/dist/actions/update-template.cjs.map +1 -1
- package/dist/actions/update-template.d.cts +10 -8
- package/dist/actions/update-template.d.mts +10 -8
- package/dist/actions/update-template.mjs +8 -8
- package/dist/actions/update-template.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retrieve-template.mjs","names":[],"sources":["../../src/actions/retrieve-template.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SpokiRetrieveTemplateInput = z.object({\n template_id: z.number().int().describe(\"Unique identifier of the template to retrieve\"),\n}).describe(\"Request model for retrieving a specific template.\");\nconst SpokiRetrieveTemplate_TemplateComponentSchema = z.object({\n text: z.string().describe(\"Text content of the component\").nullable(),\n format: z.string().describe(\"Format of the component, e.g., 'text'\").nullable().optional(),\n component_type: z.string().describe(\"Type of the component, e.g., 'body'\").nullable(),\n}).describe(\"Component for template parts such as header, body, footer.\");\nconst SpokiRetrieveTemplate_TemplateButtonSchema = z.object({\n url: z.string().describe(\"URL for link button, if applicable\").nullable().optional(),\n text: z.string().describe(\"Text displayed on the button\").nullable(),\n order: z.number().int().describe(\"Order index of the button\").nullable(),\n button_type: z.string().describe(\"Type of button, e.g., 'quick_reply'\").nullable(),\n phone_number: z.string().describe(\"Phone number for call button, if applicable\").nullable().optional(),\n}).describe(\"Button definition within a template localization.\");\nconst SpokiRetrieveTemplate_MediaSchema = z.object({\n url: z.string().describe(\"Media URL resource\").nullable(),\n filename: z.string().describe(\"Filename of the media resource\").nullable(),\n}).describe(\"Media information for dynamic headers.\");\nconst SpokiRetrieveTemplate_TemplateLocalizationSchema = z.object({\n body: SpokiRetrieveTemplate_TemplateComponentSchema.nullable(),\n footer: SpokiRetrieveTemplate_TemplateComponentSchema.nullable().optional(),\n header: SpokiRetrieveTemplate_TemplateComponentSchema.nullable().optional(),\n status: z.string().describe(\"Approval status of this localization\").nullable(),\n language: z.string().describe(\"Language code of this localization, e.g., 'it'\").nullable(),\n button_set: z.array(SpokiRetrieveTemplate_TemplateButtonSchema).describe(\"List of buttons defined for this localization\"),\n rejection_reason: z.string().describe(\"Reason for rejection, if any\").nullable().optional(),\n default_header_media: SpokiRetrieveTemplate_MediaSchema.nullable().optional(),\n}).describe(\"Localization details for a template.\");\nexport const SpokiRetrieveTemplateOutput = z.object({\n id: z.number().int().describe(\"Template unique identifier\").nullable(),\n name: z.string().describe(\"Template name\").nullable(),\n category: z.string().describe(\"Template category, e.g., 'ACCOUNT_UPDATE'\").nullable(),\n is_approved: z.boolean().describe(\"Whether the template is approved\").nullable(),\n is_favorite: z.boolean().describe(\"Whether the template is marked as favorite\").nullable(),\n customfield_set: z.array(z.string()).describe(\"List of dynamic field codes used in the template\"),\n templatelocalization_set: z.array(SpokiRetrieveTemplate_TemplateLocalizationSchema).describe(\"Localizations available for this template\"),\n}).describe(\"Full representation of a template returned by Spoki.\");\n\nexport const spokiRetrieveTemplate = action(\"SPOKI_RETRIEVE_TEMPLATE\", {\n slug: \"spoki-retrieve-template\",\n name: \"Retrieve Template\",\n description: \"Tool to retrieve details of a specific template. Use after obtaining a template ID.\",\n input: SpokiRetrieveTemplateInput,\n output: SpokiRetrieveTemplateOutput,\n});\n"],"mappings":";;;AAIA,MAAa,6BAA6B,EAAE,OAAO,EACjD,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,+CAA+C,EACxF,CAAC,CAAC,CAAC,SAAS,mDAAmD;AAC/D,MAAM,gDAAgD,EAAE,OAAO;CAC7D,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,+BAA+B,CAAC,CAAC,SAAS;CACpE,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,uCAAuC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACzF,gBAAgB,EAAE,OAAO,CAAC,CAAC,SAAS,qCAAqC,CAAC,CAAC,SAAS;AACtF,CAAC,CAAC,CAAC,SAAS,4DAA4D;
|
|
1
|
+
{"version":3,"file":"retrieve-template.mjs","names":[],"sources":["../../src/actions/retrieve-template.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SpokiRetrieveTemplateInput = z.object({\n template_id: z.number().int().describe(\"Unique identifier of the template to retrieve\"),\n}).describe(\"Request model for retrieving a specific template.\");\nconst SpokiRetrieveTemplate_TemplateComponentSchema = z.object({\n text: z.string().describe(\"Text content of the component\").nullable(),\n format: z.string().describe(\"Format of the component, e.g., 'text'\").nullable().optional(),\n component_type: z.string().describe(\"Type of the component, e.g., 'body'\").nullable(),\n}).passthrough().describe(\"Component for template parts such as header, body, footer.\");\nconst SpokiRetrieveTemplate_TemplateButtonSchema = z.object({\n url: z.string().describe(\"URL for link button, if applicable\").nullable().optional(),\n text: z.string().describe(\"Text displayed on the button\").nullable(),\n order: z.number().int().describe(\"Order index of the button\").nullable(),\n button_type: z.string().describe(\"Type of button, e.g., 'quick_reply'\").nullable(),\n phone_number: z.string().describe(\"Phone number for call button, if applicable\").nullable().optional(),\n}).passthrough().describe(\"Button definition within a template localization.\");\nconst SpokiRetrieveTemplate_MediaSchema = z.object({\n url: z.string().describe(\"Media URL resource\").nullable(),\n filename: z.string().describe(\"Filename of the media resource\").nullable(),\n}).passthrough().describe(\"Media information for dynamic headers.\");\nconst SpokiRetrieveTemplate_TemplateLocalizationSchema = z.object({\n body: SpokiRetrieveTemplate_TemplateComponentSchema.nullable(),\n footer: SpokiRetrieveTemplate_TemplateComponentSchema.nullable().optional(),\n header: SpokiRetrieveTemplate_TemplateComponentSchema.nullable().optional(),\n status: z.string().describe(\"Approval status of this localization\").nullable(),\n language: z.string().describe(\"Language code of this localization, e.g., 'it'\").nullable(),\n button_set: z.array(SpokiRetrieveTemplate_TemplateButtonSchema).describe(\"List of buttons defined for this localization\"),\n rejection_reason: z.string().describe(\"Reason for rejection, if any\").nullable().optional(),\n default_header_media: SpokiRetrieveTemplate_MediaSchema.nullable().optional(),\n}).passthrough().describe(\"Localization details for a template.\");\nexport const SpokiRetrieveTemplateOutput = z.object({\n id: z.number().int().describe(\"Template unique identifier\").nullable(),\n name: z.string().describe(\"Template name\").nullable(),\n category: z.string().describe(\"Template category, e.g., 'ACCOUNT_UPDATE'\").nullable(),\n is_approved: z.boolean().describe(\"Whether the template is approved\").nullable(),\n is_favorite: z.boolean().describe(\"Whether the template is marked as favorite\").nullable(),\n customfield_set: z.array(z.string()).describe(\"List of dynamic field codes used in the template\"),\n templatelocalization_set: z.array(SpokiRetrieveTemplate_TemplateLocalizationSchema).describe(\"Localizations available for this template\"),\n}).passthrough().describe(\"Full representation of a template returned by Spoki.\");\n\nexport const spokiRetrieveTemplate = action(\"SPOKI_RETRIEVE_TEMPLATE\", {\n slug: \"spoki-retrieve-template\",\n name: \"Retrieve Template\",\n description: \"Tool to retrieve details of a specific template. Use after obtaining a template ID.\",\n input: SpokiRetrieveTemplateInput,\n output: SpokiRetrieveTemplateOutput,\n});\n"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ const require_action = require("../action.cjs");
|
|
|
2
2
|
let zod = require("zod");
|
|
3
3
|
//#region src/actions/revert-template-to-draft.ts
|
|
4
4
|
const SpokiRevertTemplateToDraftInput = zod.z.object({ template_id: zod.z.number().int().describe("Unique identifier of the template to revert to DRAFT status") }).describe("Request model for reverting a template back to DRAFT status.");
|
|
5
|
-
const SpokiRevertTemplateToDraftOutput = zod.z.object({ status: zod.z.string().describe("Status of the operation, typically 'ok'").nullable() }).describe("Response model for revert template to draft operation.");
|
|
5
|
+
const SpokiRevertTemplateToDraftOutput = zod.z.object({ status: zod.z.string().describe("Status of the operation, typically 'ok'").nullable() }).passthrough().describe("Response model for revert template to draft operation.");
|
|
6
6
|
const spokiRevertTemplateToDraft = require_action.action("SPOKI_REVERT_TEMPLATE_TO_DRAFT", {
|
|
7
7
|
slug: "spoki-revert-template-to-draft",
|
|
8
8
|
name: "Revert Template to Draft",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revert-template-to-draft.cjs","names":["z","action"],"sources":["../../src/actions/revert-template-to-draft.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SpokiRevertTemplateToDraftInput = z.object({\n template_id: z.number().int().describe(\"Unique identifier of the template to revert to DRAFT status\"),\n}).describe(\"Request model for reverting a template back to DRAFT status.\");\nexport const SpokiRevertTemplateToDraftOutput = z.object({\n status: z.string().describe(\"Status of the operation, typically 'ok'\").nullable(),\n}).describe(\"Response model for revert template to draft operation.\");\n\nexport const spokiRevertTemplateToDraft = action(\"SPOKI_REVERT_TEMPLATE_TO_DRAFT\", {\n slug: \"spoki-revert-template-to-draft\",\n name: \"Revert Template to Draft\",\n description: \"Tool to revert a WhatsApp template back to DRAFT status, removing it from WhatsApp. Use when you need to unpublish a template and return it to draft mode for editing.\",\n input: SpokiRevertTemplateToDraftInput,\n output: SpokiRevertTemplateToDraftOutput,\n});\n"],"mappings":";;;AAIA,MAAa,kCAAkCA,IAAAA,EAAE,OAAO,EACtD,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,6DAA6D,EACtG,CAAC,CAAC,CAAC,SAAS,8DAA8D;AAC1E,MAAa,mCAAmCA,IAAAA,EAAE,OAAO,EACvD,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS,EAClF,CAAC,CAAC,CAAC,SAAS,wDAAwD;
|
|
1
|
+
{"version":3,"file":"revert-template-to-draft.cjs","names":["z","action"],"sources":["../../src/actions/revert-template-to-draft.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SpokiRevertTemplateToDraftInput = z.object({\n template_id: z.number().int().describe(\"Unique identifier of the template to revert to DRAFT status\"),\n}).describe(\"Request model for reverting a template back to DRAFT status.\");\nexport const SpokiRevertTemplateToDraftOutput = z.object({\n status: z.string().describe(\"Status of the operation, typically 'ok'\").nullable(),\n}).passthrough().describe(\"Response model for revert template to draft operation.\");\n\nexport const spokiRevertTemplateToDraft = action(\"SPOKI_REVERT_TEMPLATE_TO_DRAFT\", {\n slug: \"spoki-revert-template-to-draft\",\n name: \"Revert Template to Draft\",\n description: \"Tool to revert a WhatsApp template back to DRAFT status, removing it from WhatsApp. Use when you need to unpublish a template and return it to draft mode for editing.\",\n input: SpokiRevertTemplateToDraftInput,\n output: SpokiRevertTemplateToDraftOutput,\n});\n"],"mappings":";;;AAIA,MAAa,kCAAkCA,IAAAA,EAAE,OAAO,EACtD,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,6DAA6D,EACtG,CAAC,CAAC,CAAC,SAAS,8DAA8D;AAC1E,MAAa,mCAAmCA,IAAAA,EAAE,OAAO,EACvD,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS,EAClF,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,wDAAwD;AAElF,MAAa,6BAA6BC,eAAAA,OAAO,kCAAkC;CACjF,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
|
|
@@ -6,7 +6,7 @@ declare const SpokiRevertTemplateToDraftInput: z.ZodObject<{
|
|
|
6
6
|
}, z.core.$strip>;
|
|
7
7
|
declare const SpokiRevertTemplateToDraftOutput: z.ZodObject<{
|
|
8
8
|
status: z.ZodNullable<z.ZodString>;
|
|
9
|
-
}, z.core.$
|
|
9
|
+
}, z.core.$loose>;
|
|
10
10
|
declare const spokiRevertTemplateToDraft: import("@keystrokehq/action").WorkflowActionDefinition<{
|
|
11
11
|
template_id: number;
|
|
12
12
|
}, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
@@ -6,7 +6,7 @@ declare const SpokiRevertTemplateToDraftInput: z.ZodObject<{
|
|
|
6
6
|
}, z.core.$strip>;
|
|
7
7
|
declare const SpokiRevertTemplateToDraftOutput: z.ZodObject<{
|
|
8
8
|
status: z.ZodNullable<z.ZodString>;
|
|
9
|
-
}, z.core.$
|
|
9
|
+
}, z.core.$loose>;
|
|
10
10
|
declare const spokiRevertTemplateToDraft: import("@keystrokehq/action").WorkflowActionDefinition<{
|
|
11
11
|
template_id: number;
|
|
12
12
|
}, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
@@ -5,7 +5,7 @@ const spokiRevertTemplateToDraft = action("SPOKI_REVERT_TEMPLATE_TO_DRAFT", {
|
|
|
5
5
|
name: "Revert Template to Draft",
|
|
6
6
|
description: "Tool to revert a WhatsApp template back to DRAFT status, removing it from WhatsApp. Use when you need to unpublish a template and return it to draft mode for editing.",
|
|
7
7
|
input: z.object({ template_id: z.number().int().describe("Unique identifier of the template to revert to DRAFT status") }).describe("Request model for reverting a template back to DRAFT status."),
|
|
8
|
-
output: z.object({ status: z.string().describe("Status of the operation, typically 'ok'").nullable() }).describe("Response model for revert template to draft operation.")
|
|
8
|
+
output: z.object({ status: z.string().describe("Status of the operation, typically 'ok'").nullable() }).passthrough().describe("Response model for revert template to draft operation.")
|
|
9
9
|
});
|
|
10
10
|
//#endregion
|
|
11
11
|
export { spokiRevertTemplateToDraft };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revert-template-to-draft.mjs","names":[],"sources":["../../src/actions/revert-template-to-draft.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SpokiRevertTemplateToDraftInput = z.object({\n template_id: z.number().int().describe(\"Unique identifier of the template to revert to DRAFT status\"),\n}).describe(\"Request model for reverting a template back to DRAFT status.\");\nexport const SpokiRevertTemplateToDraftOutput = z.object({\n status: z.string().describe(\"Status of the operation, typically 'ok'\").nullable(),\n}).describe(\"Response model for revert template to draft operation.\");\n\nexport const spokiRevertTemplateToDraft = action(\"SPOKI_REVERT_TEMPLATE_TO_DRAFT\", {\n slug: \"spoki-revert-template-to-draft\",\n name: \"Revert Template to Draft\",\n description: \"Tool to revert a WhatsApp template back to DRAFT status, removing it from WhatsApp. Use when you need to unpublish a template and return it to draft mode for editing.\",\n input: SpokiRevertTemplateToDraftInput,\n output: SpokiRevertTemplateToDraftOutput,\n});\n"],"mappings":";;AAWA,MAAa,6BAA6B,OAAO,kCAAkC;CACjF,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAX6C,EAAE,OAAO,EACtD,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,6DAA6D,EACtG,CAAC,CAAC,CAAC,SAAS,8DASH;CACP,QAT8C,EAAE,OAAO,EACvD,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS,EAClF,CAAC,CAAC,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"revert-template-to-draft.mjs","names":[],"sources":["../../src/actions/revert-template-to-draft.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SpokiRevertTemplateToDraftInput = z.object({\n template_id: z.number().int().describe(\"Unique identifier of the template to revert to DRAFT status\"),\n}).describe(\"Request model for reverting a template back to DRAFT status.\");\nexport const SpokiRevertTemplateToDraftOutput = z.object({\n status: z.string().describe(\"Status of the operation, typically 'ok'\").nullable(),\n}).passthrough().describe(\"Response model for revert template to draft operation.\");\n\nexport const spokiRevertTemplateToDraft = action(\"SPOKI_REVERT_TEMPLATE_TO_DRAFT\", {\n slug: \"spoki-revert-template-to-draft\",\n name: \"Revert Template to Draft\",\n description: \"Tool to revert a WhatsApp template back to DRAFT status, removing it from WhatsApp. Use when you need to unpublish a template and return it to draft mode for editing.\",\n input: SpokiRevertTemplateToDraftInput,\n output: SpokiRevertTemplateToDraftOutput,\n});\n"],"mappings":";;AAWA,MAAa,6BAA6B,OAAO,kCAAkC;CACjF,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAX6C,EAAE,OAAO,EACtD,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,6DAA6D,EACtG,CAAC,CAAC,CAAC,SAAS,8DASH;CACP,QAT8C,EAAE,OAAO,EACvD,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS,EAClF,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,wDAOhB;AACV,CAAC"}
|
|
@@ -7,12 +7,12 @@ const SpokiSyncContactsBulkInput = zod.z.object({ contacts: zod.z.array(zod.z.ob
|
|
|
7
7
|
language: zod.z.string().describe("ISO 639-1 two-letter language code for the contact's preferred language. Common values: 'en' (English), 'it' (Italian), 'es' (Spanish), 'de' (German), 'pt' (Portuguese), 'fr' (French). Defaults to 'en' if not specified").optional(),
|
|
8
8
|
last_name: zod.z.string().describe("Last name of the contact. Supports Unicode characters and special characters like hyphens and apostrophes (e.g., 'O'Brien-Müller')").optional(),
|
|
9
9
|
first_name: zod.z.string().describe("First name of the contact. Supports Unicode characters for international names (e.g., 'François', 'María', 'João')").optional(),
|
|
10
|
-
custom_fields: zod.z.
|
|
11
|
-
}).describe("Single contact object for bulk sync operation.")).describe("List of contact objects to sync. Each contact will be created if new or updated if the phone number already exists. Maximum recommended: 100 contacts per request due to rate limits") }).describe("Request to bulk sync (create or update) multiple contacts.");
|
|
10
|
+
custom_fields: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Dictionary of custom field names and their values. Use this to store additional contact information beyond standard fields (e.g., {'company': 'Acme Corp', 'employee_id': 'EMP-12345'})").optional()
|
|
11
|
+
}).passthrough().describe("Single contact object for bulk sync operation.")).describe("List of contact objects to sync. Each contact will be created if new or updated if the phone number already exists. Maximum recommended: 100 contacts per request due to rate limits") }).describe("Request to bulk sync (create or update) multiple contacts.");
|
|
12
12
|
const SpokiSyncContactsBulk_ErrorDetailSchema = zod.z.object({
|
|
13
13
|
error: zod.z.string().describe("Error message").nullable().optional(),
|
|
14
14
|
phone: zod.z.string().describe("Phone number that caused the error").nullable().optional()
|
|
15
|
-
}).describe("Error details for failed contact sync.");
|
|
15
|
+
}).passthrough().describe("Error details for failed contact sync.");
|
|
16
16
|
const SpokiSyncContactsBulk_SyncedContactSchema = zod.z.object({
|
|
17
17
|
id: zod.z.number().int().describe("Unique ID of the contact").nullable(),
|
|
18
18
|
email: zod.z.string().describe("Email address of the contact").nullable().optional(),
|
|
@@ -26,11 +26,11 @@ const SpokiSyncContactsBulk_SyncedContactSchema = zod.z.object({
|
|
|
26
26
|
is_restricted: zod.z.boolean().describe("Whether the contact is restricted").nullable(),
|
|
27
27
|
has_invalid_phone: zod.z.boolean().describe("Whether the phone number is invalid").nullable(),
|
|
28
28
|
is_first_message_sent: zod.z.boolean().describe("Whether the first message has been sent to this contact").nullable()
|
|
29
|
-
}).describe("Contact object returned after successful sync.");
|
|
29
|
+
}).passthrough().describe("Contact object returned after successful sync.");
|
|
30
30
|
const SpokiSyncContactsBulkOutput = zod.z.object({
|
|
31
31
|
errors: zod.z.array(SpokiSyncContactsBulk_ErrorDetailSchema).describe("List of errors that occurred during sync. Each error contains details about which contact failed and why").nullable().optional(),
|
|
32
32
|
contacts: zod.z.array(SpokiSyncContactsBulk_SyncedContactSchema).describe("List of successfully synced contacts with their details").nullable().optional()
|
|
33
|
-
}).describe("Response from bulk sync operation.");
|
|
33
|
+
}).passthrough().describe("Response from bulk sync operation.");
|
|
34
34
|
const spokiSyncContactsBulk = require_action.action("SPOKI_SYNC_CONTACTS_BULK", {
|
|
35
35
|
slug: "spoki-sync-contacts-bulk",
|
|
36
36
|
name: "Bulk Sync Contacts",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-contacts-bulk.cjs","names":["z","action"],"sources":["../../src/actions/sync-contacts-bulk.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SpokiSyncContactsBulkInput = z.object({\n contacts: z.array(z.object({\n email: z.string().describe(\"Email address of the contact. Must be a valid email format\").optional(),\n phone: z.string().describe(\"Contact phone number in E.164 international format (must include country code with + prefix). Examples: '+393331234567' (Italy), '+14155552671' (USA), '+447700900123' (UK)\"),\n language: z.string().describe(\"ISO 639-1 two-letter language code for the contact's preferred language. Common values: 'en' (English), 'it' (Italian), 'es' (Spanish), 'de' (German), 'pt' (Portuguese), 'fr' (French). Defaults to 'en' if not specified\").optional(),\n last_name: z.string().describe(\"Last name of the contact. Supports Unicode characters and special characters like hyphens and apostrophes (e.g., 'O'Brien-Müller')\").optional(),\n first_name: z.string().describe(\"First name of the contact. Supports Unicode characters for international names (e.g., 'François', 'María', 'João')\").optional(),\n custom_fields: z.
|
|
1
|
+
{"version":3,"file":"sync-contacts-bulk.cjs","names":["z","action"],"sources":["../../src/actions/sync-contacts-bulk.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SpokiSyncContactsBulkInput = z.object({\n contacts: z.array(z.object({\n email: z.string().describe(\"Email address of the contact. Must be a valid email format\").optional(),\n phone: z.string().describe(\"Contact phone number in E.164 international format (must include country code with + prefix). Examples: '+393331234567' (Italy), '+14155552671' (USA), '+447700900123' (UK)\"),\n language: z.string().describe(\"ISO 639-1 two-letter language code for the contact's preferred language. Common values: 'en' (English), 'it' (Italian), 'es' (Spanish), 'de' (German), 'pt' (Portuguese), 'fr' (French). Defaults to 'en' if not specified\").optional(),\n last_name: z.string().describe(\"Last name of the contact. Supports Unicode characters and special characters like hyphens and apostrophes (e.g., 'O'Brien-Müller')\").optional(),\n first_name: z.string().describe(\"First name of the contact. Supports Unicode characters for international names (e.g., 'François', 'María', 'João')\").optional(),\n custom_fields: z.record(z.string(), z.unknown()).describe(\"Dictionary of custom field names and their values. Use this to store additional contact information beyond standard fields (e.g., {'company': 'Acme Corp', 'employee_id': 'EMP-12345'})\").optional(),\n}).passthrough().describe(\"Single contact object for bulk sync operation.\")).describe(\"List of contact objects to sync. Each contact will be created if new or updated if the phone number already exists. Maximum recommended: 100 contacts per request due to rate limits\"),\n}).describe(\"Request to bulk sync (create or update) multiple contacts.\");\nconst SpokiSyncContactsBulk_ErrorDetailSchema = z.object({\n error: z.string().describe(\"Error message\").nullable().optional(),\n phone: z.string().describe(\"Phone number that caused the error\").nullable().optional(),\n}).passthrough().describe(\"Error details for failed contact sync.\");\nconst SpokiSyncContactsBulk_SyncedContactSchema = z.object({\n id: z.number().int().describe(\"Unique ID of the contact\").nullable(),\n email: z.string().describe(\"Email address of the contact\").nullable().optional(),\n phone: z.string().describe(\"Contact phone number in E.164 format\").nullable(),\n language: z.string().describe(\"Language code of the contact (e.g., 'en', 'it', 'es')\").nullable(),\n role_set: z.array(z.string()).describe(\"List of roles assigned to the contact\").nullable().optional(),\n chat_link: z.string().describe(\"Direct link to chat with this contact on Spoki platform\").nullable(),\n last_name: z.string().describe(\"Last name of the contact\").nullable().optional(),\n first_name: z.string().describe(\"First name of the contact\").nullable().optional(),\n is_blocked: z.boolean().describe(\"Whether the contact is blocked\").nullable(),\n is_restricted: z.boolean().describe(\"Whether the contact is restricted\").nullable(),\n has_invalid_phone: z.boolean().describe(\"Whether the phone number is invalid\").nullable(),\n is_first_message_sent: z.boolean().describe(\"Whether the first message has been sent to this contact\").nullable(),\n}).passthrough().describe(\"Contact object returned after successful sync.\");\nexport const SpokiSyncContactsBulkOutput = z.object({\n errors: z.array(SpokiSyncContactsBulk_ErrorDetailSchema).describe(\"List of errors that occurred during sync. Each error contains details about which contact failed and why\").nullable().optional(),\n contacts: z.array(SpokiSyncContactsBulk_SyncedContactSchema).describe(\"List of successfully synced contacts with their details\").nullable().optional(),\n}).passthrough().describe(\"Response from bulk sync operation.\");\n\nexport const spokiSyncContactsBulk = action(\"SPOKI_SYNC_CONTACTS_BULK\", {\n slug: \"spoki-sync-contacts-bulk\",\n name: \"Bulk Sync Contacts\",\n description: \"Tool to bulk sync (create or update) multiple contacts in a single request. Rate limit: 1 request per minute. This action performs bulk \\\"upsert\\\" operations: - If a contact with the provided phone number exists, it will be updated with the new information - If no contact exists with that phone number, a new contact will be created Use when you need to: - Import multiple contacts from external systems - Synchronize contact lists in bulk - Efficiently create or update many contacts at once IMPORTANT: Do not use this action to update contacts before initiating an automation. The strict rate limit (1/min) makes it unsuitable for automation workflows.\",\n input: SpokiSyncContactsBulkInput,\n output: SpokiSyncContactsBulkOutput,\n});\n"],"mappings":"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"}
|
|
@@ -8,14 +8,14 @@ declare const SpokiSyncContactsBulkInput: z.ZodObject<{
|
|
|
8
8
|
language: z.ZodOptional<z.ZodString>;
|
|
9
9
|
last_name: z.ZodOptional<z.ZodString>;
|
|
10
10
|
first_name: z.ZodOptional<z.ZodString>;
|
|
11
|
-
custom_fields: z.ZodOptional<z.
|
|
12
|
-
}, z.core.$
|
|
11
|
+
custom_fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
12
|
+
}, z.core.$loose>>;
|
|
13
13
|
}, z.core.$strip>;
|
|
14
14
|
declare const SpokiSyncContactsBulkOutput: z.ZodObject<{
|
|
15
15
|
errors: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
16
16
|
error: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
17
17
|
phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
18
|
-
}, z.core.$
|
|
18
|
+
}, z.core.$loose>>>>;
|
|
19
19
|
contacts: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
20
20
|
id: z.ZodNullable<z.ZodNumber>;
|
|
21
21
|
email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -29,16 +29,17 @@ declare const SpokiSyncContactsBulkOutput: z.ZodObject<{
|
|
|
29
29
|
is_restricted: z.ZodNullable<z.ZodBoolean>;
|
|
30
30
|
has_invalid_phone: z.ZodNullable<z.ZodBoolean>;
|
|
31
31
|
is_first_message_sent: z.ZodNullable<z.ZodBoolean>;
|
|
32
|
-
}, z.core.$
|
|
33
|
-
}, z.core.$
|
|
32
|
+
}, z.core.$loose>>>>;
|
|
33
|
+
}, z.core.$loose>;
|
|
34
34
|
declare const spokiSyncContactsBulk: import("@keystrokehq/action").WorkflowActionDefinition<{
|
|
35
35
|
contacts: {
|
|
36
|
+
[x: string]: unknown;
|
|
36
37
|
phone: string;
|
|
37
38
|
email?: string | undefined;
|
|
38
39
|
language?: string | undefined;
|
|
39
40
|
last_name?: string | undefined;
|
|
40
41
|
first_name?: string | undefined;
|
|
41
|
-
custom_fields?: Record<string,
|
|
42
|
+
custom_fields?: Record<string, unknown> | undefined;
|
|
42
43
|
}[];
|
|
43
44
|
}, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
44
45
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-contacts-bulk.d.cts","names":[],"sources":["../../src/actions/sync-contacts-bulk.ts"],"mappings":";;;cAIa,0BAAA,EAA0B,CAAA,CAAA,SAAA;;;;;;;;;;cA4B1B,2BAAA,EAA2B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;cAK3B,qBAAA,gCAAqB,wBAAA
|
|
1
|
+
{"version":3,"file":"sync-contacts-bulk.d.cts","names":[],"sources":["../../src/actions/sync-contacts-bulk.ts"],"mappings":";;;cAIa,0BAAA,EAA0B,CAAA,CAAA,SAAA;;;;;;;;;;cA4B1B,2BAAA,EAA2B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;cAK3B,qBAAA,gCAAqB,wBAAA;;;;;;;;oBAMhC,MAAA;EAAA;AAAA"}
|
|
@@ -8,14 +8,14 @@ declare const SpokiSyncContactsBulkInput: z.ZodObject<{
|
|
|
8
8
|
language: z.ZodOptional<z.ZodString>;
|
|
9
9
|
last_name: z.ZodOptional<z.ZodString>;
|
|
10
10
|
first_name: z.ZodOptional<z.ZodString>;
|
|
11
|
-
custom_fields: z.ZodOptional<z.
|
|
12
|
-
}, z.core.$
|
|
11
|
+
custom_fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
12
|
+
}, z.core.$loose>>;
|
|
13
13
|
}, z.core.$strip>;
|
|
14
14
|
declare const SpokiSyncContactsBulkOutput: z.ZodObject<{
|
|
15
15
|
errors: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
16
16
|
error: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
17
17
|
phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
18
|
-
}, z.core.$
|
|
18
|
+
}, z.core.$loose>>>>;
|
|
19
19
|
contacts: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
20
20
|
id: z.ZodNullable<z.ZodNumber>;
|
|
21
21
|
email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -29,16 +29,17 @@ declare const SpokiSyncContactsBulkOutput: z.ZodObject<{
|
|
|
29
29
|
is_restricted: z.ZodNullable<z.ZodBoolean>;
|
|
30
30
|
has_invalid_phone: z.ZodNullable<z.ZodBoolean>;
|
|
31
31
|
is_first_message_sent: z.ZodNullable<z.ZodBoolean>;
|
|
32
|
-
}, z.core.$
|
|
33
|
-
}, z.core.$
|
|
32
|
+
}, z.core.$loose>>>>;
|
|
33
|
+
}, z.core.$loose>;
|
|
34
34
|
declare const spokiSyncContactsBulk: import("@keystrokehq/action").WorkflowActionDefinition<{
|
|
35
35
|
contacts: {
|
|
36
|
+
[x: string]: unknown;
|
|
36
37
|
phone: string;
|
|
37
38
|
email?: string | undefined;
|
|
38
39
|
language?: string | undefined;
|
|
39
40
|
last_name?: string | undefined;
|
|
40
41
|
first_name?: string | undefined;
|
|
41
|
-
custom_fields?: Record<string,
|
|
42
|
+
custom_fields?: Record<string, unknown> | undefined;
|
|
42
43
|
}[];
|
|
43
44
|
}, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
44
45
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-contacts-bulk.d.mts","names":[],"sources":["../../src/actions/sync-contacts-bulk.ts"],"mappings":";;;cAIa,0BAAA,EAA0B,CAAA,CAAA,SAAA;;;;;;;;;;cA4B1B,2BAAA,EAA2B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;cAK3B,qBAAA,gCAAqB,wBAAA
|
|
1
|
+
{"version":3,"file":"sync-contacts-bulk.d.mts","names":[],"sources":["../../src/actions/sync-contacts-bulk.ts"],"mappings":";;;cAIa,0BAAA,EAA0B,CAAA,CAAA,SAAA;;;;;;;;;;cA4B1B,2BAAA,EAA2B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;cAK3B,qBAAA,gCAAqB,wBAAA;;;;;;;;oBAMhC,MAAA;EAAA;AAAA"}
|
|
@@ -7,12 +7,12 @@ const SpokiSyncContactsBulkInput = z.object({ contacts: z.array(z.object({
|
|
|
7
7
|
language: z.string().describe("ISO 639-1 two-letter language code for the contact's preferred language. Common values: 'en' (English), 'it' (Italian), 'es' (Spanish), 'de' (German), 'pt' (Portuguese), 'fr' (French). Defaults to 'en' if not specified").optional(),
|
|
8
8
|
last_name: z.string().describe("Last name of the contact. Supports Unicode characters and special characters like hyphens and apostrophes (e.g., 'O'Brien-Müller')").optional(),
|
|
9
9
|
first_name: z.string().describe("First name of the contact. Supports Unicode characters for international names (e.g., 'François', 'María', 'João')").optional(),
|
|
10
|
-
custom_fields: z.
|
|
11
|
-
}).describe("Single contact object for bulk sync operation.")).describe("List of contact objects to sync. Each contact will be created if new or updated if the phone number already exists. Maximum recommended: 100 contacts per request due to rate limits") }).describe("Request to bulk sync (create or update) multiple contacts.");
|
|
10
|
+
custom_fields: z.record(z.string(), z.unknown()).describe("Dictionary of custom field names and their values. Use this to store additional contact information beyond standard fields (e.g., {'company': 'Acme Corp', 'employee_id': 'EMP-12345'})").optional()
|
|
11
|
+
}).passthrough().describe("Single contact object for bulk sync operation.")).describe("List of contact objects to sync. Each contact will be created if new or updated if the phone number already exists. Maximum recommended: 100 contacts per request due to rate limits") }).describe("Request to bulk sync (create or update) multiple contacts.");
|
|
12
12
|
const SpokiSyncContactsBulk_ErrorDetailSchema = z.object({
|
|
13
13
|
error: z.string().describe("Error message").nullable().optional(),
|
|
14
14
|
phone: z.string().describe("Phone number that caused the error").nullable().optional()
|
|
15
|
-
}).describe("Error details for failed contact sync.");
|
|
15
|
+
}).passthrough().describe("Error details for failed contact sync.");
|
|
16
16
|
const SpokiSyncContactsBulk_SyncedContactSchema = z.object({
|
|
17
17
|
id: z.number().int().describe("Unique ID of the contact").nullable(),
|
|
18
18
|
email: z.string().describe("Email address of the contact").nullable().optional(),
|
|
@@ -26,7 +26,7 @@ const SpokiSyncContactsBulk_SyncedContactSchema = z.object({
|
|
|
26
26
|
is_restricted: z.boolean().describe("Whether the contact is restricted").nullable(),
|
|
27
27
|
has_invalid_phone: z.boolean().describe("Whether the phone number is invalid").nullable(),
|
|
28
28
|
is_first_message_sent: z.boolean().describe("Whether the first message has been sent to this contact").nullable()
|
|
29
|
-
}).describe("Contact object returned after successful sync.");
|
|
29
|
+
}).passthrough().describe("Contact object returned after successful sync.");
|
|
30
30
|
const spokiSyncContactsBulk = action("SPOKI_SYNC_CONTACTS_BULK", {
|
|
31
31
|
slug: "spoki-sync-contacts-bulk",
|
|
32
32
|
name: "Bulk Sync Contacts",
|
|
@@ -35,7 +35,7 @@ const spokiSyncContactsBulk = action("SPOKI_SYNC_CONTACTS_BULK", {
|
|
|
35
35
|
output: z.object({
|
|
36
36
|
errors: z.array(SpokiSyncContactsBulk_ErrorDetailSchema).describe("List of errors that occurred during sync. Each error contains details about which contact failed and why").nullable().optional(),
|
|
37
37
|
contacts: z.array(SpokiSyncContactsBulk_SyncedContactSchema).describe("List of successfully synced contacts with their details").nullable().optional()
|
|
38
|
-
}).describe("Response from bulk sync operation.")
|
|
38
|
+
}).passthrough().describe("Response from bulk sync operation.")
|
|
39
39
|
});
|
|
40
40
|
//#endregion
|
|
41
41
|
export { spokiSyncContactsBulk };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-contacts-bulk.mjs","names":[],"sources":["../../src/actions/sync-contacts-bulk.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SpokiSyncContactsBulkInput = z.object({\n contacts: z.array(z.object({\n email: z.string().describe(\"Email address of the contact. Must be a valid email format\").optional(),\n phone: z.string().describe(\"Contact phone number in E.164 international format (must include country code with + prefix). Examples: '+393331234567' (Italy), '+14155552671' (USA), '+447700900123' (UK)\"),\n language: z.string().describe(\"ISO 639-1 two-letter language code for the contact's preferred language. Common values: 'en' (English), 'it' (Italian), 'es' (Spanish), 'de' (German), 'pt' (Portuguese), 'fr' (French). Defaults to 'en' if not specified\").optional(),\n last_name: z.string().describe(\"Last name of the contact. Supports Unicode characters and special characters like hyphens and apostrophes (e.g., 'O'Brien-Müller')\").optional(),\n first_name: z.string().describe(\"First name of the contact. Supports Unicode characters for international names (e.g., 'François', 'María', 'João')\").optional(),\n custom_fields: z.
|
|
1
|
+
{"version":3,"file":"sync-contacts-bulk.mjs","names":[],"sources":["../../src/actions/sync-contacts-bulk.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SpokiSyncContactsBulkInput = z.object({\n contacts: z.array(z.object({\n email: z.string().describe(\"Email address of the contact. Must be a valid email format\").optional(),\n phone: z.string().describe(\"Contact phone number in E.164 international format (must include country code with + prefix). Examples: '+393331234567' (Italy), '+14155552671' (USA), '+447700900123' (UK)\"),\n language: z.string().describe(\"ISO 639-1 two-letter language code for the contact's preferred language. Common values: 'en' (English), 'it' (Italian), 'es' (Spanish), 'de' (German), 'pt' (Portuguese), 'fr' (French). Defaults to 'en' if not specified\").optional(),\n last_name: z.string().describe(\"Last name of the contact. Supports Unicode characters and special characters like hyphens and apostrophes (e.g., 'O'Brien-Müller')\").optional(),\n first_name: z.string().describe(\"First name of the contact. Supports Unicode characters for international names (e.g., 'François', 'María', 'João')\").optional(),\n custom_fields: z.record(z.string(), z.unknown()).describe(\"Dictionary of custom field names and their values. Use this to store additional contact information beyond standard fields (e.g., {'company': 'Acme Corp', 'employee_id': 'EMP-12345'})\").optional(),\n}).passthrough().describe(\"Single contact object for bulk sync operation.\")).describe(\"List of contact objects to sync. Each contact will be created if new or updated if the phone number already exists. Maximum recommended: 100 contacts per request due to rate limits\"),\n}).describe(\"Request to bulk sync (create or update) multiple contacts.\");\nconst SpokiSyncContactsBulk_ErrorDetailSchema = z.object({\n error: z.string().describe(\"Error message\").nullable().optional(),\n phone: z.string().describe(\"Phone number that caused the error\").nullable().optional(),\n}).passthrough().describe(\"Error details for failed contact sync.\");\nconst SpokiSyncContactsBulk_SyncedContactSchema = z.object({\n id: z.number().int().describe(\"Unique ID of the contact\").nullable(),\n email: z.string().describe(\"Email address of the contact\").nullable().optional(),\n phone: z.string().describe(\"Contact phone number in E.164 format\").nullable(),\n language: z.string().describe(\"Language code of the contact (e.g., 'en', 'it', 'es')\").nullable(),\n role_set: z.array(z.string()).describe(\"List of roles assigned to the contact\").nullable().optional(),\n chat_link: z.string().describe(\"Direct link to chat with this contact on Spoki platform\").nullable(),\n last_name: z.string().describe(\"Last name of the contact\").nullable().optional(),\n first_name: z.string().describe(\"First name of the contact\").nullable().optional(),\n is_blocked: z.boolean().describe(\"Whether the contact is blocked\").nullable(),\n is_restricted: z.boolean().describe(\"Whether the contact is restricted\").nullable(),\n has_invalid_phone: z.boolean().describe(\"Whether the phone number is invalid\").nullable(),\n is_first_message_sent: z.boolean().describe(\"Whether the first message has been sent to this contact\").nullable(),\n}).passthrough().describe(\"Contact object returned after successful sync.\");\nexport const SpokiSyncContactsBulkOutput = z.object({\n errors: z.array(SpokiSyncContactsBulk_ErrorDetailSchema).describe(\"List of errors that occurred during sync. Each error contains details about which contact failed and why\").nullable().optional(),\n contacts: z.array(SpokiSyncContactsBulk_SyncedContactSchema).describe(\"List of successfully synced contacts with their details\").nullable().optional(),\n}).passthrough().describe(\"Response from bulk sync operation.\");\n\nexport const spokiSyncContactsBulk = action(\"SPOKI_SYNC_CONTACTS_BULK\", {\n slug: \"spoki-sync-contacts-bulk\",\n name: \"Bulk Sync Contacts\",\n description: \"Tool to bulk sync (create or update) multiple contacts in a single request. Rate limit: 1 request per minute. This action performs bulk \\\"upsert\\\" operations: - If a contact with the provided phone number exists, it will be updated with the new information - If no contact exists with that phone number, a new contact will be created Use when you need to: - Import multiple contacts from external systems - Synchronize contact lists in bulk - Efficiently create or update many contacts at once IMPORTANT: Do not use this action to update contacts before initiating an automation. The strict rate limit (1/min) makes it unsuitable for automation workflows.\",\n input: SpokiSyncContactsBulkInput,\n output: SpokiSyncContactsBulkOutput,\n});\n"],"mappings":";;;AAIA,MAAa,6BAA6B,EAAE,OAAO,EACjD,UAAU,EAAE,MAAM,EAAE,OAAO;CAC3B,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,4DAA4D,CAAC,CAAC,SAAS;CAClG,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,6KAA6K;CACxM,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,4NAA4N,CAAC,CAAC,SAAS;CACrQ,WAAW,EAAE,OAAO,CAAC,CAAC,SAAS,oIAAoI,CAAC,CAAC,SAAS;CAC9K,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,oHAAoH,CAAC,CAAC,SAAS;CAC/J,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,yLAAyL,CAAC,CAAC,SAAS;AAChQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,gDAAgD,CAAC,CAAC,CAAC,SAAS,sLAAsL,EAC5Q,CAAC,CAAC,CAAC,SAAS,4DAA4D;AACxE,MAAM,0CAA0C,EAAE,OAAO;CACvD,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAChE,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AACvF,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,wCAAwC;AAClE,MAAM,4CAA4C,EAAE,OAAO;CACzD,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS;CACnE,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,8BAA8B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC/E,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS;CAC5E,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,uDAAuD,CAAC,CAAC,SAAS;CAChG,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,uCAAuC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACpG,WAAW,EAAE,OAAO,CAAC,CAAC,SAAS,yDAAyD,CAAC,CAAC,SAAS;CACnG,WAAW,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC/E,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,2BAA2B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACjF,YAAY,EAAE,QAAQ,CAAC,CAAC,SAAS,gCAAgC,CAAC,CAAC,SAAS;CAC5E,eAAe,EAAE,QAAQ,CAAC,CAAC,SAAS,mCAAmC,CAAC,CAAC,SAAS;CAClF,mBAAmB,EAAE,QAAQ,CAAC,CAAC,SAAS,qCAAqC,CAAC,CAAC,SAAS;CACxF,uBAAuB,EAAE,QAAQ,CAAC,CAAC,SAAS,yDAAyD,CAAC,CAAC,SAAS;AAClH,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,gDAAgD;AAM1E,MAAa,wBAAwB,OAAO,4BAA4B;CACtE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAVyC,EAAE,OAAO;EAClD,QAAQ,EAAE,MAAM,uCAAuC,CAAC,CAAC,SAAS,0GAA0G,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAClM,UAAU,EAAE,MAAM,yCAAyC,CAAC,CAAC,SAAS,yDAAyD,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACvJ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,oCAOhB;AACV,CAAC"}
|
|
@@ -9,10 +9,10 @@ const SpokiSyncListContactsInput = zod.z.object({
|
|
|
9
9
|
language: zod.z.string().describe("ISO 639-1 two-letter language code for the contact's preferred language. Common values: 'en' (English), 'it' (Italian), 'es' (Spanish), 'de' (German), 'pt' (Portuguese), 'fr' (French). Defaults to 'en' if not specified").optional(),
|
|
10
10
|
last_name: zod.z.string().describe("Last name of the contact. Supports Unicode characters and special characters like hyphens and apostrophes (e.g., 'O'Brien-Müller')").optional(),
|
|
11
11
|
first_name: zod.z.string().describe("First name of the contact. Supports Unicode characters for international names (e.g., 'François', 'María', 'João')").optional(),
|
|
12
|
-
custom_fields: zod.z.
|
|
13
|
-
}).describe("Single contact object for list sync operation.")).describe("List of contact objects to sync to the list. Each contact will be created if new or updated if the phone number already exists, then added to the specified list. Maximum: 500 contacts per request")
|
|
12
|
+
custom_fields: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Dictionary of custom field names and their values. Use this to store additional contact information beyond standard fields (e.g., {'company': 'Acme Corp', 'employee_id': 'EMP-12345'})").optional()
|
|
13
|
+
}).passthrough().describe("Single contact object for list sync operation.")).describe("List of contact objects to sync to the list. Each contact will be created if new or updated if the phone number already exists, then added to the specified list. Maximum: 500 contacts per request")
|
|
14
14
|
}).describe("Request to sync contacts to a specific list.");
|
|
15
|
-
const SpokiSyncListContactsOutput = zod.z.object({ errors: zod.z.array(zod.z.
|
|
15
|
+
const SpokiSyncListContactsOutput = zod.z.object({ errors: zod.z.array(zod.z.record(zod.z.string(), zod.z.unknown())).describe("List of errors that occurred during sync. Each error contains details about which contact failed and why. Empty list indicates all contacts were synced successfully").nullable().optional() }).passthrough().describe("Response from list sync operation.");
|
|
16
16
|
const spokiSyncListContacts = require_action.action("SPOKI_SYNC_LIST_CONTACTS", {
|
|
17
17
|
slug: "spoki-sync-list-contacts",
|
|
18
18
|
name: "Sync Contacts to List",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-list-contacts.cjs","names":["z","action"],"sources":["../../src/actions/sync-list-contacts.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SpokiSyncListContactsInput = z.object({\n list_id: z.string().describe(\"The unique identifier of the list to sync contacts to. Contacts will be created or updated and then added to this list\"),\n contacts: z.array(z.object({\n email: z.string().describe(\"Email address of the contact. Must be a valid email format\").optional(),\n phone: z.string().describe(\"Contact phone number in E.164 international format (must include country code with + prefix). Examples: '+393331234567' (Italy), '+14155552671' (USA), '+447700900123' (UK)\"),\n language: z.string().describe(\"ISO 639-1 two-letter language code for the contact's preferred language. Common values: 'en' (English), 'it' (Italian), 'es' (Spanish), 'de' (German), 'pt' (Portuguese), 'fr' (French). Defaults to 'en' if not specified\").optional(),\n last_name: z.string().describe(\"Last name of the contact. Supports Unicode characters and special characters like hyphens and apostrophes (e.g., 'O'Brien-Müller')\").optional(),\n first_name: z.string().describe(\"First name of the contact. Supports Unicode characters for international names (e.g., 'François', 'María', 'João')\").optional(),\n custom_fields: z.
|
|
1
|
+
{"version":3,"file":"sync-list-contacts.cjs","names":["z","action"],"sources":["../../src/actions/sync-list-contacts.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SpokiSyncListContactsInput = z.object({\n list_id: z.string().describe(\"The unique identifier of the list to sync contacts to. Contacts will be created or updated and then added to this list\"),\n contacts: z.array(z.object({\n email: z.string().describe(\"Email address of the contact. Must be a valid email format\").optional(),\n phone: z.string().describe(\"Contact phone number in E.164 international format (must include country code with + prefix). Examples: '+393331234567' (Italy), '+14155552671' (USA), '+447700900123' (UK)\"),\n language: z.string().describe(\"ISO 639-1 two-letter language code for the contact's preferred language. Common values: 'en' (English), 'it' (Italian), 'es' (Spanish), 'de' (German), 'pt' (Portuguese), 'fr' (French). Defaults to 'en' if not specified\").optional(),\n last_name: z.string().describe(\"Last name of the contact. Supports Unicode characters and special characters like hyphens and apostrophes (e.g., 'O'Brien-Müller')\").optional(),\n first_name: z.string().describe(\"First name of the contact. Supports Unicode characters for international names (e.g., 'François', 'María', 'João')\").optional(),\n custom_fields: z.record(z.string(), z.unknown()).describe(\"Dictionary of custom field names and their values. Use this to store additional contact information beyond standard fields (e.g., {'company': 'Acme Corp', 'employee_id': 'EMP-12345'})\").optional(),\n}).passthrough().describe(\"Single contact object for list sync operation.\")).describe(\"List of contact objects to sync to the list. Each contact will be created if new or updated if the phone number already exists, then added to the specified list. Maximum: 500 contacts per request\"),\n}).describe(\"Request to sync contacts to a specific list.\");\nexport const SpokiSyncListContactsOutput = z.object({\n errors: z.array(z.record(z.string(), z.unknown())).describe(\"List of errors that occurred during sync. Each error contains details about which contact failed and why. Empty list indicates all contacts were synced successfully\").nullable().optional(),\n}).passthrough().describe(\"Response from list sync operation.\");\n\nexport const spokiSyncListContacts = action(\"SPOKI_SYNC_LIST_CONTACTS\", {\n slug: \"spoki-sync-list-contacts\",\n name: \"Sync Contacts to List\",\n description: \"Tool to create or update contacts and add them to a specific list in Spoki. Rate limit: 1 request per minute. This action performs bulk \\\"upsert\\\" operations and list assignment: - If a contact with the provided phone number exists, it will be updated with the new information - If no contact exists with that phone number, a new contact will be created - All synced contacts are automatically added to the specified list Use when you need to: - Add multiple contacts to a specific list - Import contacts from external systems directly into a list - Synchronize contact lists with list membership Maximum 500 contacts per request. Phone numbers must be in E.164 format (international format with country code).\",\n input: SpokiSyncListContactsInput,\n output: SpokiSyncListContactsOutput,\n});\n"],"mappings":";;;AAIA,MAAa,6BAA6BA,IAAAA,EAAE,OAAO;CACjD,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wHAAwH;CACrJ,UAAUA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO;EAC3B,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4DAA4D,CAAC,CAAC,SAAS;EAClG,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6KAA6K;EACxM,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4NAA4N,CAAC,CAAC,SAAS;EACrQ,WAAWA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oIAAoI,CAAC,CAAC,SAAS;EAC9K,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oHAAoH,CAAC,CAAC,SAAS;EAC/J,eAAeA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,yLAAyL,CAAC,CAAC,SAAS;CAChQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,gDAAgD,CAAC,CAAC,CAAC,SAAS,qMAAqM;AAC3R,CAAC,CAAC,CAAC,SAAS,8CAA8C;AAC1D,MAAa,8BAA8BA,IAAAA,EAAE,OAAO,EAClD,QAAQA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,sKAAsK,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,EAC1P,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,oCAAoC;AAE9D,MAAa,wBAAwBC,eAAAA,OAAO,4BAA4B;CACtE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
|
|
@@ -9,21 +9,22 @@ declare const SpokiSyncListContactsInput: z.ZodObject<{
|
|
|
9
9
|
language: z.ZodOptional<z.ZodString>;
|
|
10
10
|
last_name: z.ZodOptional<z.ZodString>;
|
|
11
11
|
first_name: z.ZodOptional<z.ZodString>;
|
|
12
|
-
custom_fields: z.ZodOptional<z.
|
|
13
|
-
}, z.core.$
|
|
12
|
+
custom_fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
13
|
+
}, z.core.$loose>>;
|
|
14
14
|
}, z.core.$strip>;
|
|
15
15
|
declare const SpokiSyncListContactsOutput: z.ZodObject<{
|
|
16
|
-
errors: z.ZodOptional<z.ZodNullable<z.ZodArray<z.
|
|
17
|
-
}, z.core.$
|
|
16
|
+
errors: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>>;
|
|
17
|
+
}, z.core.$loose>;
|
|
18
18
|
declare const spokiSyncListContacts: import("@keystrokehq/action").WorkflowActionDefinition<{
|
|
19
19
|
list_id: string;
|
|
20
20
|
contacts: {
|
|
21
|
+
[x: string]: unknown;
|
|
21
22
|
phone: string;
|
|
22
23
|
email?: string | undefined;
|
|
23
24
|
language?: string | undefined;
|
|
24
25
|
last_name?: string | undefined;
|
|
25
26
|
first_name?: string | undefined;
|
|
26
|
-
custom_fields?: Record<string,
|
|
27
|
+
custom_fields?: Record<string, unknown> | undefined;
|
|
27
28
|
}[];
|
|
28
29
|
}, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
29
30
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-list-contacts.d.cts","names":[],"sources":["../../src/actions/sync-list-contacts.ts"],"mappings":";;;cAIa,0BAAA,EAA0B,CAAA,CAAA,SAAA;;;;;;;;;;;cAW1B,2BAAA,EAA2B,CAAA,CAAA,SAAA;;;cAI3B,qBAAA,gCAAqB,wBAAA
|
|
1
|
+
{"version":3,"file":"sync-list-contacts.d.cts","names":[],"sources":["../../src/actions/sync-list-contacts.ts"],"mappings":";;;cAIa,0BAAA,EAA0B,CAAA,CAAA,SAAA;;;;;;;;;;;cAW1B,2BAAA,EAA2B,CAAA,CAAA,SAAA;;;cAI3B,qBAAA,gCAAqB,wBAAA;;;;;;;;;oBAMhC,MAAA;EAAA;AAAA"}
|
|
@@ -9,21 +9,22 @@ declare const SpokiSyncListContactsInput: z.ZodObject<{
|
|
|
9
9
|
language: z.ZodOptional<z.ZodString>;
|
|
10
10
|
last_name: z.ZodOptional<z.ZodString>;
|
|
11
11
|
first_name: z.ZodOptional<z.ZodString>;
|
|
12
|
-
custom_fields: z.ZodOptional<z.
|
|
13
|
-
}, z.core.$
|
|
12
|
+
custom_fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
13
|
+
}, z.core.$loose>>;
|
|
14
14
|
}, z.core.$strip>;
|
|
15
15
|
declare const SpokiSyncListContactsOutput: z.ZodObject<{
|
|
16
|
-
errors: z.ZodOptional<z.ZodNullable<z.ZodArray<z.
|
|
17
|
-
}, z.core.$
|
|
16
|
+
errors: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>>;
|
|
17
|
+
}, z.core.$loose>;
|
|
18
18
|
declare const spokiSyncListContacts: import("@keystrokehq/action").WorkflowActionDefinition<{
|
|
19
19
|
list_id: string;
|
|
20
20
|
contacts: {
|
|
21
|
+
[x: string]: unknown;
|
|
21
22
|
phone: string;
|
|
22
23
|
email?: string | undefined;
|
|
23
24
|
language?: string | undefined;
|
|
24
25
|
last_name?: string | undefined;
|
|
25
26
|
first_name?: string | undefined;
|
|
26
|
-
custom_fields?: Record<string,
|
|
27
|
+
custom_fields?: Record<string, unknown> | undefined;
|
|
27
28
|
}[];
|
|
28
29
|
}, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
29
30
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-list-contacts.d.mts","names":[],"sources":["../../src/actions/sync-list-contacts.ts"],"mappings":";;;cAIa,0BAAA,EAA0B,CAAA,CAAA,SAAA;;;;;;;;;;;cAW1B,2BAAA,EAA2B,CAAA,CAAA,SAAA;;;cAI3B,qBAAA,gCAAqB,wBAAA
|
|
1
|
+
{"version":3,"file":"sync-list-contacts.d.mts","names":[],"sources":["../../src/actions/sync-list-contacts.ts"],"mappings":";;;cAIa,0BAAA,EAA0B,CAAA,CAAA,SAAA;;;;;;;;;;;cAW1B,2BAAA,EAA2B,CAAA,CAAA,SAAA;;;cAI3B,qBAAA,gCAAqB,wBAAA;;;;;;;;;oBAMhC,MAAA;EAAA;AAAA"}
|
|
@@ -12,10 +12,10 @@ const spokiSyncListContacts = action("SPOKI_SYNC_LIST_CONTACTS", {
|
|
|
12
12
|
language: z.string().describe("ISO 639-1 two-letter language code for the contact's preferred language. Common values: 'en' (English), 'it' (Italian), 'es' (Spanish), 'de' (German), 'pt' (Portuguese), 'fr' (French). Defaults to 'en' if not specified").optional(),
|
|
13
13
|
last_name: z.string().describe("Last name of the contact. Supports Unicode characters and special characters like hyphens and apostrophes (e.g., 'O'Brien-Müller')").optional(),
|
|
14
14
|
first_name: z.string().describe("First name of the contact. Supports Unicode characters for international names (e.g., 'François', 'María', 'João')").optional(),
|
|
15
|
-
custom_fields: z.
|
|
16
|
-
}).describe("Single contact object for list sync operation.")).describe("List of contact objects to sync to the list. Each contact will be created if new or updated if the phone number already exists, then added to the specified list. Maximum: 500 contacts per request")
|
|
15
|
+
custom_fields: z.record(z.string(), z.unknown()).describe("Dictionary of custom field names and their values. Use this to store additional contact information beyond standard fields (e.g., {'company': 'Acme Corp', 'employee_id': 'EMP-12345'})").optional()
|
|
16
|
+
}).passthrough().describe("Single contact object for list sync operation.")).describe("List of contact objects to sync to the list. Each contact will be created if new or updated if the phone number already exists, then added to the specified list. Maximum: 500 contacts per request")
|
|
17
17
|
}).describe("Request to sync contacts to a specific list."),
|
|
18
|
-
output: z.object({ errors: z.array(z.
|
|
18
|
+
output: z.object({ errors: z.array(z.record(z.string(), z.unknown())).describe("List of errors that occurred during sync. Each error contains details about which contact failed and why. Empty list indicates all contacts were synced successfully").nullable().optional() }).passthrough().describe("Response from list sync operation.")
|
|
19
19
|
});
|
|
20
20
|
//#endregion
|
|
21
21
|
export { spokiSyncListContacts };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-list-contacts.mjs","names":[],"sources":["../../src/actions/sync-list-contacts.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SpokiSyncListContactsInput = z.object({\n list_id: z.string().describe(\"The unique identifier of the list to sync contacts to. Contacts will be created or updated and then added to this list\"),\n contacts: z.array(z.object({\n email: z.string().describe(\"Email address of the contact. Must be a valid email format\").optional(),\n phone: z.string().describe(\"Contact phone number in E.164 international format (must include country code with + prefix). Examples: '+393331234567' (Italy), '+14155552671' (USA), '+447700900123' (UK)\"),\n language: z.string().describe(\"ISO 639-1 two-letter language code for the contact's preferred language. Common values: 'en' (English), 'it' (Italian), 'es' (Spanish), 'de' (German), 'pt' (Portuguese), 'fr' (French). Defaults to 'en' if not specified\").optional(),\n last_name: z.string().describe(\"Last name of the contact. Supports Unicode characters and special characters like hyphens and apostrophes (e.g., 'O'Brien-Müller')\").optional(),\n first_name: z.string().describe(\"First name of the contact. Supports Unicode characters for international names (e.g., 'François', 'María', 'João')\").optional(),\n custom_fields: z.
|
|
1
|
+
{"version":3,"file":"sync-list-contacts.mjs","names":[],"sources":["../../src/actions/sync-list-contacts.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SpokiSyncListContactsInput = z.object({\n list_id: z.string().describe(\"The unique identifier of the list to sync contacts to. Contacts will be created or updated and then added to this list\"),\n contacts: z.array(z.object({\n email: z.string().describe(\"Email address of the contact. Must be a valid email format\").optional(),\n phone: z.string().describe(\"Contact phone number in E.164 international format (must include country code with + prefix). Examples: '+393331234567' (Italy), '+14155552671' (USA), '+447700900123' (UK)\"),\n language: z.string().describe(\"ISO 639-1 two-letter language code for the contact's preferred language. Common values: 'en' (English), 'it' (Italian), 'es' (Spanish), 'de' (German), 'pt' (Portuguese), 'fr' (French). Defaults to 'en' if not specified\").optional(),\n last_name: z.string().describe(\"Last name of the contact. Supports Unicode characters and special characters like hyphens and apostrophes (e.g., 'O'Brien-Müller')\").optional(),\n first_name: z.string().describe(\"First name of the contact. Supports Unicode characters for international names (e.g., 'François', 'María', 'João')\").optional(),\n custom_fields: z.record(z.string(), z.unknown()).describe(\"Dictionary of custom field names and their values. Use this to store additional contact information beyond standard fields (e.g., {'company': 'Acme Corp', 'employee_id': 'EMP-12345'})\").optional(),\n}).passthrough().describe(\"Single contact object for list sync operation.\")).describe(\"List of contact objects to sync to the list. Each contact will be created if new or updated if the phone number already exists, then added to the specified list. Maximum: 500 contacts per request\"),\n}).describe(\"Request to sync contacts to a specific list.\");\nexport const SpokiSyncListContactsOutput = z.object({\n errors: z.array(z.record(z.string(), z.unknown())).describe(\"List of errors that occurred during sync. Each error contains details about which contact failed and why. Empty list indicates all contacts were synced successfully\").nullable().optional(),\n}).passthrough().describe(\"Response from list sync operation.\");\n\nexport const spokiSyncListContacts = action(\"SPOKI_SYNC_LIST_CONTACTS\", {\n slug: \"spoki-sync-list-contacts\",\n name: \"Sync Contacts to List\",\n description: \"Tool to create or update contacts and add them to a specific list in Spoki. Rate limit: 1 request per minute. This action performs bulk \\\"upsert\\\" operations and list assignment: - If a contact with the provided phone number exists, it will be updated with the new information - If no contact exists with that phone number, a new contact will be created - All synced contacts are automatically added to the specified list Use when you need to: - Add multiple contacts to a specific list - Import contacts from external systems directly into a list - Synchronize contact lists with list membership Maximum 500 contacts per request. Phone numbers must be in E.164 format (international format with country code).\",\n input: SpokiSyncListContactsInput,\n output: SpokiSyncListContactsOutput,\n});\n"],"mappings":";;AAmBA,MAAa,wBAAwB,OAAO,4BAA4B;CACtE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAnBwC,EAAE,OAAO;EACjD,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,wHAAwH;EACrJ,UAAU,EAAE,MAAM,EAAE,OAAO;GAC3B,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,4DAA4D,CAAC,CAAC,SAAS;GAClG,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,6KAA6K;GACxM,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,4NAA4N,CAAC,CAAC,SAAS;GACrQ,WAAW,EAAE,OAAO,CAAC,CAAC,SAAS,oIAAoI,CAAC,CAAC,SAAS;GAC9K,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,oHAAoH,CAAC,CAAC,SAAS;GAC/J,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,yLAAyL,CAAC,CAAC,SAAS;EAChQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,gDAAgD,CAAC,CAAC,CAAC,SAAS,qMAAqM;CAC3R,CAAC,CAAC,CAAC,SAAS,8CASH;CACP,QATyC,EAAE,OAAO,EAClD,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,sKAAsK,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,EAC1P,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,oCAOhB;AACV,CAAC"}
|
|
@@ -13,7 +13,7 @@ const SpokiUpdateCampaignOutput = zod.z.object({
|
|
|
13
13
|
status: zod.z.string().describe("Campaign status (Draft, Scheduled, Processing, or Completed)").nullable(),
|
|
14
14
|
created_datetime: zod.z.string().describe("When this campaign was created (ISO 8601)").nullable(),
|
|
15
15
|
scheduled_datetime: zod.z.string().describe("When the campaign is scheduled to run (ISO 8601)").nullable()
|
|
16
|
-
}).describe("Response model containing details of the updated campaign.");
|
|
16
|
+
}).passthrough().describe("Response model containing details of the updated campaign.");
|
|
17
17
|
const spokiUpdateCampaign = require_action.action("SPOKI_UPDATE_CAMPAIGN", {
|
|
18
18
|
slug: "spoki-update-campaign",
|
|
19
19
|
name: "Update Campaign",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-campaign.cjs","names":["z","action"],"sources":["../../src/actions/update-campaign.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SpokiUpdateCampaignInput = z.object({\n id: z.string().describe(\"The unique identifier of the campaign to update\"),\n name: z.string().describe(\"New name for the campaign\").optional(),\n status: z.enum([\"Draft\", \"Scheduled\"]).describe(\"Allowed campaign status values.\").optional(),\n scheduled_datetime: z.string().describe(\"Scheduled start time in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.sssZ). Required when status is 'Scheduled'\").optional(),\n}).describe(\"Request model for updating an existing campaign.\\nAll body fields are optional - only provided fields will be updated.\");\nexport const SpokiUpdateCampaignOutput = z.object({\n id: z.number().int().describe(\"Unique identifier of the campaign\").nullable(),\n name: z.string().describe(\"Campaign name\").nullable(),\n status: z.string().describe(\"Campaign status (Draft, Scheduled, Processing, or Completed)\").nullable(),\n created_datetime: z.string().describe(\"When this campaign was created (ISO 8601)\").nullable(),\n scheduled_datetime: z.string().describe(\"When the campaign is scheduled to run (ISO 8601)\").nullable(),\n}).describe(\"Response model containing details of the updated campaign.\");\n\nexport const spokiUpdateCampaign = action(\"SPOKI_UPDATE_CAMPAIGN\", {\n slug: \"spoki-update-campaign\",\n name: \"Update Campaign\",\n description: \"Tool to update an existing campaign's name, status, or scheduled time. Use when you need to modify campaign details after creation. Rate limited to 5 requests per minute.\",\n input: SpokiUpdateCampaignInput,\n output: SpokiUpdateCampaignOutput,\n});\n"],"mappings":";;;AAIA,MAAa,2BAA2BA,IAAAA,EAAE,OAAO;CAC/C,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,iDAAiD;CACzE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,2BAA2B,CAAC,CAAC,SAAS;CAChE,QAAQA,IAAAA,EAAE,KAAK,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,SAAS,iCAAiC,CAAC,CAAC,SAAS;CAC5F,oBAAoBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yGAAyG,CAAC,CAAC,SAAS;AAC9J,CAAC,CAAC,CAAC,SAAS,wHAAwH;AACpI,MAAa,4BAA4BA,IAAAA,EAAE,OAAO;CAChD,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,mCAAmC,CAAC,CAAC,SAAS;CAC5E,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,SAAS;CACpD,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8DAA8D,CAAC,CAAC,SAAS;CACrG,kBAAkBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,2CAA2C,CAAC,CAAC,SAAS;CAC5F,oBAAoBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,kDAAkD,CAAC,CAAC,SAAS;AACvG,CAAC,CAAC,CAAC,SAAS,4DAA4D;
|
|
1
|
+
{"version":3,"file":"update-campaign.cjs","names":["z","action"],"sources":["../../src/actions/update-campaign.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SpokiUpdateCampaignInput = z.object({\n id: z.string().describe(\"The unique identifier of the campaign to update\"),\n name: z.string().describe(\"New name for the campaign\").optional(),\n status: z.enum([\"Draft\", \"Scheduled\"]).describe(\"Allowed campaign status values.\").optional(),\n scheduled_datetime: z.string().describe(\"Scheduled start time in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.sssZ). Required when status is 'Scheduled'\").optional(),\n}).describe(\"Request model for updating an existing campaign.\\nAll body fields are optional - only provided fields will be updated.\");\nexport const SpokiUpdateCampaignOutput = z.object({\n id: z.number().int().describe(\"Unique identifier of the campaign\").nullable(),\n name: z.string().describe(\"Campaign name\").nullable(),\n status: z.string().describe(\"Campaign status (Draft, Scheduled, Processing, or Completed)\").nullable(),\n created_datetime: z.string().describe(\"When this campaign was created (ISO 8601)\").nullable(),\n scheduled_datetime: z.string().describe(\"When the campaign is scheduled to run (ISO 8601)\").nullable(),\n}).passthrough().describe(\"Response model containing details of the updated campaign.\");\n\nexport const spokiUpdateCampaign = action(\"SPOKI_UPDATE_CAMPAIGN\", {\n slug: \"spoki-update-campaign\",\n name: \"Update Campaign\",\n description: \"Tool to update an existing campaign's name, status, or scheduled time. Use when you need to modify campaign details after creation. Rate limited to 5 requests per minute.\",\n input: SpokiUpdateCampaignInput,\n output: SpokiUpdateCampaignOutput,\n});\n"],"mappings":";;;AAIA,MAAa,2BAA2BA,IAAAA,EAAE,OAAO;CAC/C,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,iDAAiD;CACzE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,2BAA2B,CAAC,CAAC,SAAS;CAChE,QAAQA,IAAAA,EAAE,KAAK,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,SAAS,iCAAiC,CAAC,CAAC,SAAS;CAC5F,oBAAoBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yGAAyG,CAAC,CAAC,SAAS;AAC9J,CAAC,CAAC,CAAC,SAAS,wHAAwH;AACpI,MAAa,4BAA4BA,IAAAA,EAAE,OAAO;CAChD,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,mCAAmC,CAAC,CAAC,SAAS;CAC5E,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,SAAS;CACpD,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8DAA8D,CAAC,CAAC,SAAS;CACrG,kBAAkBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,2CAA2C,CAAC,CAAC,SAAS;CAC5F,oBAAoBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,kDAAkD,CAAC,CAAC,SAAS;AACvG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,4DAA4D;AAEtF,MAAa,sBAAsBC,eAAAA,OAAO,yBAAyB;CACjE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
|
|
@@ -16,7 +16,7 @@ declare const SpokiUpdateCampaignOutput: z.ZodObject<{
|
|
|
16
16
|
status: z.ZodNullable<z.ZodString>;
|
|
17
17
|
created_datetime: z.ZodNullable<z.ZodString>;
|
|
18
18
|
scheduled_datetime: z.ZodNullable<z.ZodString>;
|
|
19
|
-
}, z.core.$
|
|
19
|
+
}, z.core.$loose>;
|
|
20
20
|
declare const spokiUpdateCampaign: import("@keystrokehq/action").WorkflowActionDefinition<{
|
|
21
21
|
id: string;
|
|
22
22
|
name?: string | undefined;
|
|
@@ -16,7 +16,7 @@ declare const SpokiUpdateCampaignOutput: z.ZodObject<{
|
|
|
16
16
|
status: z.ZodNullable<z.ZodString>;
|
|
17
17
|
created_datetime: z.ZodNullable<z.ZodString>;
|
|
18
18
|
scheduled_datetime: z.ZodNullable<z.ZodString>;
|
|
19
|
-
}, z.core.$
|
|
19
|
+
}, z.core.$loose>;
|
|
20
20
|
declare const spokiUpdateCampaign: import("@keystrokehq/action").WorkflowActionDefinition<{
|
|
21
21
|
id: string;
|
|
22
22
|
name?: string | undefined;
|
|
@@ -16,7 +16,7 @@ const spokiUpdateCampaign = action("SPOKI_UPDATE_CAMPAIGN", {
|
|
|
16
16
|
status: z.string().describe("Campaign status (Draft, Scheduled, Processing, or Completed)").nullable(),
|
|
17
17
|
created_datetime: z.string().describe("When this campaign was created (ISO 8601)").nullable(),
|
|
18
18
|
scheduled_datetime: z.string().describe("When the campaign is scheduled to run (ISO 8601)").nullable()
|
|
19
|
-
}).describe("Response model containing details of the updated campaign.")
|
|
19
|
+
}).passthrough().describe("Response model containing details of the updated campaign.")
|
|
20
20
|
});
|
|
21
21
|
//#endregion
|
|
22
22
|
export { spokiUpdateCampaign };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-campaign.mjs","names":[],"sources":["../../src/actions/update-campaign.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SpokiUpdateCampaignInput = z.object({\n id: z.string().describe(\"The unique identifier of the campaign to update\"),\n name: z.string().describe(\"New name for the campaign\").optional(),\n status: z.enum([\"Draft\", \"Scheduled\"]).describe(\"Allowed campaign status values.\").optional(),\n scheduled_datetime: z.string().describe(\"Scheduled start time in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.sssZ). Required when status is 'Scheduled'\").optional(),\n}).describe(\"Request model for updating an existing campaign.\\nAll body fields are optional - only provided fields will be updated.\");\nexport const SpokiUpdateCampaignOutput = z.object({\n id: z.number().int().describe(\"Unique identifier of the campaign\").nullable(),\n name: z.string().describe(\"Campaign name\").nullable(),\n status: z.string().describe(\"Campaign status (Draft, Scheduled, Processing, or Completed)\").nullable(),\n created_datetime: z.string().describe(\"When this campaign was created (ISO 8601)\").nullable(),\n scheduled_datetime: z.string().describe(\"When the campaign is scheduled to run (ISO 8601)\").nullable(),\n}).describe(\"Response model containing details of the updated campaign.\");\n\nexport const spokiUpdateCampaign = action(\"SPOKI_UPDATE_CAMPAIGN\", {\n slug: \"spoki-update-campaign\",\n name: \"Update Campaign\",\n description: \"Tool to update an existing campaign's name, status, or scheduled time. Use when you need to modify campaign details after creation. Rate limited to 5 requests per minute.\",\n input: SpokiUpdateCampaignInput,\n output: SpokiUpdateCampaignOutput,\n});\n"],"mappings":";;AAkBA,MAAa,sBAAsB,OAAO,yBAAyB;CACjE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAlBsC,EAAE,OAAO;EAC/C,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS,iDAAiD;EACzE,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,2BAA2B,CAAC,CAAC,SAAS;EAChE,QAAQ,EAAE,KAAK,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,SAAS,iCAAiC,CAAC,CAAC,SAAS;EAC5F,oBAAoB,EAAE,OAAO,CAAC,CAAC,SAAS,yGAAyG,CAAC,CAAC,SAAS;CAC9J,CAAC,CAAC,CAAC,SAAS,wHAaH;CACP,QAbuC,EAAE,OAAO;EAChD,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,mCAAmC,CAAC,CAAC,SAAS;EAC5E,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,SAAS;EACpD,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,8DAA8D,CAAC,CAAC,SAAS;EACrG,kBAAkB,EAAE,OAAO,CAAC,CAAC,SAAS,2CAA2C,CAAC,CAAC,SAAS;EAC5F,oBAAoB,EAAE,OAAO,CAAC,CAAC,SAAS,kDAAkD,CAAC,CAAC,SAAS;CACvG,CAAC,CAAC,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"update-campaign.mjs","names":[],"sources":["../../src/actions/update-campaign.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SpokiUpdateCampaignInput = z.object({\n id: z.string().describe(\"The unique identifier of the campaign to update\"),\n name: z.string().describe(\"New name for the campaign\").optional(),\n status: z.enum([\"Draft\", \"Scheduled\"]).describe(\"Allowed campaign status values.\").optional(),\n scheduled_datetime: z.string().describe(\"Scheduled start time in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.sssZ). Required when status is 'Scheduled'\").optional(),\n}).describe(\"Request model for updating an existing campaign.\\nAll body fields are optional - only provided fields will be updated.\");\nexport const SpokiUpdateCampaignOutput = z.object({\n id: z.number().int().describe(\"Unique identifier of the campaign\").nullable(),\n name: z.string().describe(\"Campaign name\").nullable(),\n status: z.string().describe(\"Campaign status (Draft, Scheduled, Processing, or Completed)\").nullable(),\n created_datetime: z.string().describe(\"When this campaign was created (ISO 8601)\").nullable(),\n scheduled_datetime: z.string().describe(\"When the campaign is scheduled to run (ISO 8601)\").nullable(),\n}).passthrough().describe(\"Response model containing details of the updated campaign.\");\n\nexport const spokiUpdateCampaign = action(\"SPOKI_UPDATE_CAMPAIGN\", {\n slug: \"spoki-update-campaign\",\n name: \"Update Campaign\",\n description: \"Tool to update an existing campaign's name, status, or scheduled time. Use when you need to modify campaign details after creation. Rate limited to 5 requests per minute.\",\n input: SpokiUpdateCampaignInput,\n output: SpokiUpdateCampaignOutput,\n});\n"],"mappings":";;AAkBA,MAAa,sBAAsB,OAAO,yBAAyB;CACjE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAlBsC,EAAE,OAAO;EAC/C,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS,iDAAiD;EACzE,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,2BAA2B,CAAC,CAAC,SAAS;EAChE,QAAQ,EAAE,KAAK,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,SAAS,iCAAiC,CAAC,CAAC,SAAS;EAC5F,oBAAoB,EAAE,OAAO,CAAC,CAAC,SAAS,yGAAyG,CAAC,CAAC,SAAS;CAC9J,CAAC,CAAC,CAAC,SAAS,wHAaH;CACP,QAbuC,EAAE,OAAO;EAChD,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,mCAAmC,CAAC,CAAC,SAAS;EAC5E,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,SAAS;EACpD,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,8DAA8D,CAAC,CAAC,SAAS;EACrG,kBAAkB,EAAE,OAAO,CAAC,CAAC,SAAS,2CAA2C,CAAC,CAAC,SAAS;EAC5F,oBAAoB,EAAE,OAAO,CAAC,CAAC,SAAS,kDAAkD,CAAC,CAAC,SAAS;CACvG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,4DAOhB;AACV,CAAC"}
|
|
@@ -8,7 +8,7 @@ const SpokiUpdateContactInput = zod.z.object({
|
|
|
8
8
|
language: zod.z.string().describe("ISO 639-1 two-letter language code for the contact's preferred language. Common values: 'en' (English), 'it' (Italian), 'es' (Spanish), 'de' (German), 'pt' (Portuguese), 'fr' (French)").optional(),
|
|
9
9
|
last_name: zod.z.string().describe("Last name of the contact. Supports Unicode characters and special characters like hyphens and apostrophes (e.g., 'O'Brien-Müller')").optional(),
|
|
10
10
|
first_name: zod.z.string().describe("First name of the contact. Supports Unicode characters for international names (e.g., 'François', 'María', 'João')").optional(),
|
|
11
|
-
custom_fields: zod.z.
|
|
11
|
+
custom_fields: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Dictionary of custom field names and their values. Use this to store additional contact information beyond standard fields (e.g., {'company': 'Acme Corp', 'employee_id': 'EMP-12345'})").optional()
|
|
12
12
|
});
|
|
13
13
|
const SpokiUpdateContactOutput = zod.z.object({
|
|
14
14
|
id: zod.z.number().int().describe("Unique ID of the contact").nullable(),
|
|
@@ -23,7 +23,7 @@ const SpokiUpdateContactOutput = zod.z.object({
|
|
|
23
23
|
is_restricted: zod.z.boolean().describe("Whether the contact is restricted").nullable().optional(),
|
|
24
24
|
has_invalid_phone: zod.z.boolean().describe("Whether the phone number is invalid").nullable().optional(),
|
|
25
25
|
is_first_message_sent: zod.z.boolean().describe("Whether the first message has been sent to this contact").nullable().optional()
|
|
26
|
-
});
|
|
26
|
+
}).passthrough();
|
|
27
27
|
const spokiUpdateContact = require_action.action("SPOKI_UPDATE_CONTACT", {
|
|
28
28
|
slug: "spoki-update-contact",
|
|
29
29
|
name: "Update Contact",
|