You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 6a5cce6
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: CHANGELOG.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,9 @@
1
1
# Changelog
2
2
3
+
## 0.56.0
4
+
5
+
- Add `broadcast_id` to the per-recipient outbound email events, naming the broadcast a send went out as part of so you can group a broadcast's events without looking each send up. It is null on a send with no broadcast behind it.
6
+
3
7
## 0.55.0
4
8
5
9
- Add a read-only list method for the workspace's email templates, so a template can be chosen from the workspace's own list before a send.
description="The metadata object provided on the send request, echoed on every event for the send so you can correlate events with your own records. Null when the send carried no metadata.",
7450
7454
)]
7455
+
broadcast_id: Annotated[Optional[str], Field(
7456
+
description="The broadcast this send went out as part of, echoed on every per-recipient event for the send so you can attribute engagement to the broadcast without an extra lookup. Null when the send was not part of a broadcast. On `email.unsubscribed` and `email.list_unsubscribed`, null can also mean the recipient used an unsubscribe link that names no broadcast, so on those two events null does not rule a broadcast out.",
7457
+
examples=["eb_01krdgeqcxet5s7t44vh8rt9mg"],
7458
+
)]
7451
7459
7452
7460
7453
7461
class EventEmailAccepted(BaseModel):
@@ -7506,6 +7514,10 @@ class EventEmailBouncedData(BaseModel):
description="The metadata object provided on the send request, echoed on every event for the send so you can correlate events with your own records. Null when the send carried no metadata.",
7508
7516
)]
7517
+
broadcast_id: Annotated[Optional[str], Field(
7518
+
description="The broadcast this send went out as part of, echoed on every per-recipient event for the send so you can attribute engagement to the broadcast without an extra lookup. Null when the send was not part of a broadcast. On `email.unsubscribed` and `email.list_unsubscribed`, null can also mean the recipient used an unsubscribe link that names no broadcast, so on those two events null does not rule a broadcast out.",
7519
+
examples=["eb_01krdgeqcxet5s7t44vh8rt9mg"],
7520
+
)]
7509
7521
bounce_type: Annotated[EmailBounceType, Field(
7510
7522
description="Bounce classification.\n\n- `hard`: A permanent failure, such as an invalid address or a domain that does not exist.\n- `soft`: A transient failure, such as a full mailbox or a server that is temporarily unavailable.\n- `block`: The receiving mail server refused the sending IP on reputation grounds.\n- `admin`: An administrative refusal, such as relaying denied or a blocklisted domain.\n- `undetermined`: The receiving server's response was ambiguous.",
7511
7523
)]
@@ -7614,6 +7626,10 @@ class EventEmailClickedData(BaseModel):
description="The metadata object provided on the send request, echoed on every event for the send so you can correlate events with your own records. Null when the send carried no metadata.",
7616
7628
)]
7629
+
broadcast_id: Annotated[Optional[str], Field(
7630
+
description="The broadcast this send went out as part of, echoed on every per-recipient event for the send so you can attribute engagement to the broadcast without an extra lookup. Null when the send was not part of a broadcast. On `email.unsubscribed` and `email.list_unsubscribed`, null can also mean the recipient used an unsubscribe link that names no broadcast, so on those two events null does not rule a broadcast out.",
7631
+
examples=["eb_01krdgeqcxet5s7t44vh8rt9mg"],
7632
+
)]
7617
7633
url: Annotated[str, Field(
7618
7634
description="The URL the recipient clicked.",
7619
7635
examples=["https://bird.com/welcome"],
@@ -7677,6 +7693,10 @@ class EventEmailComplainedData(BaseModel):
description="The metadata object provided on the send request, echoed on every event for the send so you can correlate events with your own records. Null when the send carried no metadata.",
7679
7695
)]
7696
+
broadcast_id: Annotated[Optional[str], Field(
7697
+
description="The broadcast this send went out as part of, echoed on every per-recipient event for the send so you can attribute engagement to the broadcast without an extra lookup. Null when the send was not part of a broadcast. On `email.unsubscribed` and `email.list_unsubscribed`, null can also mean the recipient used an unsubscribe link that names no broadcast, so on those two events null does not rule a broadcast out.",
7698
+
examples=["eb_01krdgeqcxet5s7t44vh8rt9mg"],
7699
+
)]
7680
7700
feedback_type: Annotated[Optional[str], Field(
7681
7701
description="The kind of feedback the mailbox provider reported (such as `abuse` or `fraud`), or null when the provider did not specify one.",
7682
7702
examples=["abuse"],
@@ -7731,6 +7751,10 @@ class EventEmailDeferredData(BaseModel):
description="The metadata object provided on the send request, echoed on every event for the send so you can correlate events with your own records. Null when the send carried no metadata.",
7733
7753
)]
7754
+
broadcast_id: Annotated[Optional[str], Field(
7755
+
description="The broadcast this send went out as part of, echoed on every per-recipient event for the send so you can attribute engagement to the broadcast without an extra lookup. Null when the send was not part of a broadcast. On `email.unsubscribed` and `email.list_unsubscribed`, null can also mean the recipient used an unsubscribe link that names no broadcast, so on those two events null does not rule a broadcast out.",
7756
+
examples=["eb_01krdgeqcxet5s7t44vh8rt9mg"],
7757
+
)]
7734
7758
bounce_type: Annotated[EmailBounceType, Field(
7735
7759
description="Bounce classification.\n\n- `hard`: A permanent failure, such as an invalid address or a domain that does not exist.\n- `soft`: A transient failure, such as a full mailbox or a server that is temporarily unavailable.\n- `block`: The receiving mail server refused the sending IP on reputation grounds.\n- `admin`: An administrative refusal, such as relaying denied or a blocklisted domain.\n- `undetermined`: The receiving server's response was ambiguous.",
7736
7760
)]
@@ -7798,6 +7822,10 @@ class EventEmailDeliveredData(BaseModel):
description="The metadata object provided on the send request, echoed on every event for the send so you can correlate events with your own records. Null when the send carried no metadata.",
7800
7824
)]
7825
+
broadcast_id: Annotated[Optional[str], Field(
7826
+
description="The broadcast this send went out as part of, echoed on every per-recipient event for the send so you can attribute engagement to the broadcast without an extra lookup. Null when the send was not part of a broadcast. On `email.unsubscribed` and `email.list_unsubscribed`, null can also mean the recipient used an unsubscribe link that names no broadcast, so on those two events null does not rule a broadcast out.",
7827
+
examples=["eb_01krdgeqcxet5s7t44vh8rt9mg"],
7828
+
)]
7801
7829
7802
7830
7803
7831
class EventEmailDelivered(BaseModel):
@@ -7848,6 +7876,10 @@ class EventEmailListUnsubscribedData(BaseModel):
description="The metadata object provided on the send request, echoed on every event for the send so you can correlate events with your own records. Null when the send carried no metadata.",
7850
7878
)]
7879
+
broadcast_id: Annotated[Optional[str], Field(
7880
+
description="The broadcast this send went out as part of, echoed on every per-recipient event for the send so you can attribute engagement to the broadcast without an extra lookup. Null when the send was not part of a broadcast. On `email.unsubscribed` and `email.list_unsubscribed`, null can also mean the recipient used an unsubscribe link that names no broadcast, so on those two events null does not rule a broadcast out.",
7881
+
examples=["eb_01krdgeqcxet5s7t44vh8rt9mg"],
7882
+
)]
7851
7883
7852
7884
7853
7885
class EventEmailListUnsubscribed(BaseModel):
@@ -7898,6 +7930,10 @@ class EventEmailOpenedData(BaseModel):
description="The metadata object provided on the send request, echoed on every event for the send so you can correlate events with your own records. Null when the send carried no metadata.",
7900
7932
)]
7933
+
broadcast_id: Annotated[Optional[str], Field(
7934
+
description="The broadcast this send went out as part of, echoed on every per-recipient event for the send so you can attribute engagement to the broadcast without an extra lookup. Null when the send was not part of a broadcast. On `email.unsubscribed` and `email.list_unsubscribed`, null can also mean the recipient used an unsubscribe link that names no broadcast, so on those two events null does not rule a broadcast out.",
7935
+
examples=["eb_01krdgeqcxet5s7t44vh8rt9mg"],
7936
+
)]
7901
7937
ip_address: Annotated[Optional[str], Field(
7902
7938
description="IP address of the client that opened the email, or null when it is not known.",
7903
7939
examples=["203.0.113.9"],
@@ -7956,6 +7992,10 @@ class EventEmailOutOfBandBounceData(BaseModel):
description="The metadata object provided on the send request, echoed on every event for the send so you can correlate events with your own records. Null when the send carried no metadata.",
7958
7994
)]
7995
+
broadcast_id: Annotated[Optional[str], Field(
7996
+
description="The broadcast this send went out as part of, echoed on every per-recipient event for the send so you can attribute engagement to the broadcast without an extra lookup. Null when the send was not part of a broadcast. On `email.unsubscribed` and `email.list_unsubscribed`, null can also mean the recipient used an unsubscribe link that names no broadcast, so on those two events null does not rule a broadcast out.",
7997
+
examples=["eb_01krdgeqcxet5s7t44vh8rt9mg"],
7998
+
)]
7959
7999
bounce_type: Annotated[EmailBounceType, Field(
7960
8000
description="Bounce classification.\n\n- `hard`: A permanent failure, such as an invalid address or a domain that does not exist.\n- `soft`: A transient failure, such as a full mailbox or a server that is temporarily unavailable.\n- `block`: The receiving mail server refused the sending IP on reputation grounds.\n- `admin`: An administrative refusal, such as relaying denied or a blocklisted domain.\n- `undetermined`: The receiving server's response was ambiguous.",
7961
8001
)]
@@ -8027,6 +8067,10 @@ class EventEmailProcessedData(BaseModel):
description="The metadata object provided on the send request, echoed on every event for the send so you can correlate events with your own records. Null when the send carried no metadata.",
8029
8069
)]
8070
+
broadcast_id: Annotated[Optional[str], Field(
8071
+
description="The broadcast this send went out as part of, echoed on every per-recipient event for the send so you can attribute engagement to the broadcast without an extra lookup. Null when the send was not part of a broadcast. On `email.unsubscribed` and `email.list_unsubscribed`, null can also mean the recipient used an unsubscribe link that names no broadcast, so on those two events null does not rule a broadcast out.",
8072
+
examples=["eb_01krdgeqcxet5s7t44vh8rt9mg"],
8073
+
)]
8030
8074
8031
8075
8032
8076
class EventEmailProcessed(BaseModel):
@@ -8160,6 +8204,10 @@ class EventEmailRejectedData(BaseModel):
description="The metadata object provided on the send request, echoed on every event for the send so you can correlate events with your own records. Null when the send carried no metadata.",
8162
8206
)]
8207
+
broadcast_id: Annotated[Optional[str], Field(
8208
+
description="The broadcast this send went out as part of, echoed on every per-recipient event for the send so you can attribute engagement to the broadcast without an extra lookup. Null when the send was not part of a broadcast. On `email.unsubscribed` and `email.list_unsubscribed`, null can also mean the recipient used an unsubscribe link that names no broadcast, so on those two events null does not rule a broadcast out.",
description="Why an email was rejected before delivery.\n\n- `recipient_suppressed`: The recipient is on the workspace suppression list, so\n delivery was never attempted.\n- `transmission_failed`: The message could not be transmitted for delivery.\n- `generation_failure`: The message could not be built for delivery (template or\n content issue).\n- `policy_rejection`: The message was refused by sending policy.\n- `domain_unverified`: The sending domain was not verified.\n- `quota_exceeded`: The organization's send quota was reached.\n- `recipient_not_allowed`: A recipient was not permitted for this send (for shared\n onboarding-domain sends, recipients must be verified workspace members).",
8165
8213
)]
@@ -8255,6 +8303,10 @@ class EventEmailUnsubscribedData(BaseModel):
description="The metadata object provided on the send request, echoed on every event for the send so you can correlate events with your own records. Null when the send carried no metadata.",
8257
8305
)]
8306
+
broadcast_id: Annotated[Optional[str], Field(
8307
+
description="The broadcast this send went out as part of, echoed on every per-recipient event for the send so you can attribute engagement to the broadcast without an extra lookup. Null when the send was not part of a broadcast. On `email.unsubscribed` and `email.list_unsubscribed`, null can also mean the recipient used an unsubscribe link that names no broadcast, so on those two events null does not rule a broadcast out.",
0 commit comments