Class SupportChannelBinding
A projection of a support case onto an external system — a Slack thread, an email thread.
public record SupportChannelBinding : IEquatable<SupportChannelBinding>
- Inheritance
-
SupportChannelBinding
- Implements
- Inherited Members
Remarks
A case may have none. That is the requirement this type exists to make expressible: a case raised on the site is complete and trackable whether or not it ever reaches a channel, and the toolkit's own case is authoritative rather than the channel's.
An empty collection is therefore an ordinary state, not an oversight — it is what every case has until a channel is configured, and what a site-only case has forever.
Properties
Address
Who this projection converses with, where the channel is addressed rather than shared — the email
address of the person on the other end. null for a channel that has no such thing.
public string Address { get; init; }
Property Value
Remarks
A property of the projection, not of the case. A Slack thread is posted into a room that anybody in it can answer, so there is nobody to name; an email thread has exactly one correspondent, and a later reply has to be sent back to them rather than to whoever happens to be signed in.
It is also the trust anchor for inbound mail. A From: header authenticates nobody, so a
mail is only appended to a case when it comes from the address that case already corresponds with.
ChannelType
public required SupportChannelType ChannelType { get; init; }
Property Value
ExternalId
The identifier in the external system — a Slack thread_ts, the Message-ID of the mail
that opened an email thread.
public required string ExternalId { get; init; }