DistributionsService
Create pass distribution landing pages and email workflows.
Methods
| Method | Description |
|---|---|
list(options?) | List all distributions |
get(id) | Get a single distribution |
create(data) | Create a distribution |
update(id, data) | Update a distribution |
delete(id) | Delete a distribution |
submit(data) | Submit distribution form |
resendPass(data) | Resend pass email |
create()
Create a new distribution.
typescript
const distribution = await client.distributions.create({
workspace_id: 'workspace-uuid',
project_id: 'project-uuid',
pass_template_id: 'template-uuid',
status: 'draft',
page_address: 'summer-rewards',
email_topic: 'Your Rewards Card',
email_reply_to: '[email protected]',
form_fields_config: {
marketing_consent: {
enabled: true,
required: false,
label: 'Send me special offers'
}
}
});update()
Update and publish a distribution.
typescript
await client.distributions.update(distribution.id, {
status: 'published',
landing_html: '<h1>Get Your Rewards Card</h1>...',
landing_html_success: '<h1>Thank You!</h1>...',
email_html: '<h1>Your Card is Ready</h1>...'
});submit()
Submit a form to claim a pass.
typescript
const result = await client.distributions.submit({
distribution_id: 'distribution-uuid',
email: '[email protected]',
full_name: 'Jane Customer',
custom_fields: {
phone: '+1234567890'
},
marketing_consent: true
});
console.log('Pass ID:', result.data.pass_id);
console.log('Apple URL:', result.data.apple_pass_url);resendPass()
Resend a pass via email.
typescript
await client.distributions.resendPass({
pass_id: 'pass-uuid',
email: '[email protected]' // Optional, uses pass email if not provided
});Distribution Status
| Status | Description |
|---|---|
draft | Not accepting submissions |
published | Live and accepting submissions |