Data stores - OfficeDev/microsoft-teams-apps-quickresponses GitHub Wiki
The app uses the following data store:
All these resources are created in your Azure subscription. None are hosted directly by Microsoft.
Azure Storage Account
- [Table] for storing all user responses data which is then filtered by Azure Active Directory object Id.
- [Table] for storing company responses data, user principal name to chat with the user 1:1, activity identifier which is used to refresh cards when updated.
- [Table] for storing user-bot conversation Id, which is used to send notification(s) to the user.
- [Blob] to store bot state to check whether welcome card is sent to the user. Blob storage has container name as "bot-state".
Storage account
Quick Responses tables
UserResponseEntity for storing all user responses data which is then filtered by Azure Active Directory object Id.
| Attribute | Comment |
|---|---|
| PartitionKey | User object id provided by Azure AD – from bot activity context. |
| RowKey | Response Id (GUID) - unique value for each user response. |
| Timestamp | Date and time stamp when the entity row is created. |
| UserId | User Id of user who created response. |
| ResponseId | (GUID) - unique value for each user response. |
| QuestionLabel | User entered single value up to 200 characters. |
| QuestionText | Store semicolon separated questions up to 500 characters max. |
| ResponseText | String value up to 500 characters (markdown supported). |
| LastUpdatedDate | Date Time when entry is updated by user in UTC format. |
CompanyResponseEntity for storing company responses data, user principal name to chat with the user 1:1, activity identifier which is used to refresh cards when updated.
| Attribute | Comment |
|---|---|
| PartitionKey | "CompanyResponseEntity", which is a constant value. |
| RowKey | Response Id (GUID) - unique value for each company response. |
| Timestamp | Date and time stamp when the entity row is created. |
| QuestionLabel | User entered single value up to 200 characters. |
| QuestionText | Store semicolon separated questions up to 500 characters max. (markdown supported). |
| ResponseText | String value up to 500 characters (markdown supported). |
| UserId | User Id of user who suggested response. |
| ResponseId | (GUID) - unique value for each company response. |
| CreatedBy | Name of user who suggested response. |
| CreatedDate | Date Time when entry is created. |
| UserRequestType | New/Edit (for future scope). |
| LastUpdatedDate | Date Time when entry is updated. |
| LastUpdatedBy | Name of user who updated the response. |
| ApproverUserId | User Id of Admin who approved/rejected the suggested response. |
| ApprovedOrRejectedBy | Name of Admin who approved/rejected the response. |
| ApprovalStatus | Status suggested request (Approved, Pending or Rejected). |
| ApprovalRemark | Value entered by Admin who rejected request. |
| ActivityId | Activity Id of suggested or propose edit response request card posted in admin team channel. Required to update same card again. |
| ApprovedOrRejectedDate | Date Time when suggested response is approved/rejected. |
| UserPrincipalName | User principal name of user. |
ConversationEntity for storing user-bot conversation Id, which is used to send notification(s) to the user.
| Attribute | Comment |
|---|---|
| PartitionKey | "ConversationEntity", which is a constant value. |
| RowKey | User Id (GUID) – Azure Active Directory object id of user. |
| TimeStamp | Date and time stamp when the entity row is created. |
| UserId | User Id (GUID) – Azure Active Directory object id of user. |
| ConversationId | User bot conversation Id. Required to send notification to user about his request. |