Microsoft Teams Integration
Send photo submission notifications directly to your Microsoft Teams channels.
Overview
Connect Visiono to Microsoft Teams to receive instant notifications when photos are submitted. Keep your team informed without leaving their collaboration platform.
Prerequisites
- Visiono account with API access
- Microsoft Teams workspace
- Permission to add connectors to Teams channels
- API Key from Visiono (for advanced workflows)
Setup Steps
1. Create Incoming Webhook in Teams
- Open Microsoft Teams
- Navigate to the channel where you want notifications
- Click the ... (more options) next to the channel name
- Select Connectors
- Find Incoming Webhook and click Configure
- Give your webhook a name (e.g., "Visiono Photos")
- Optionally upload a custom icon
- Click Create
- Copy the webhook URL (save this for the next step)
2. Add Webhook to Visiono
- Go to Workspace Settings → Webhooks
- Click Add Webhook
- Paste the Teams webhook URL
- Select events to trigger:
photo_request.submitted- When all photos are submittedphoto_submission.created- When a new submission arrives
- Save the webhook
3. Test the Connection
- Submit a test photo in Visiono
- Check your Teams channel for the notification
- Adjust settings as needed
Message Format
Teams will receive notifications formatted as Adaptive Cards:
json
{
"@type": "MessageCard",
"@context": "http://schema.org/extensions",
"themeColor": "0076D7",
"summary": "New Photo Submission",
"sections": [{
"activityTitle": "New photos received",
"activitySubtitle": "From: Vehicle Inspection",
"facts": [{
"name": "Photos",
"value": "5"
}, {
"name": "Submitted",
"value": "2024-01-15 10:30"
}],
"markdown": true
}],
"potentialAction": [{
"@type": "OpenUri",
"name": "View in Dashboard",
"targets": [{
"os": "default",
"uri": "https://..."
}]
}]
}Advanced Integration with Power Automate
For more complex workflows, use Microsoft Power Automate:
1. Create a Power Automate Flow
- Go to Power Automate
- Click Create → Automated cloud flow
- Search for When a HTTP request is received
- Configure the HTTP trigger
2. Add Teams Actions
Popular actions:
| Action | Use Case |
|---|---|
| Post message | Send to channel |
| Post adaptive card | Rich notification |
| Create channel | Organize by project |
| Add member | Invite stakeholders |
3. Example: Rich Notification Flow
- Trigger: HTTP request (webhook from Visiono)
- Action: Parse JSON (extract photo data)
- Action: Post Adaptive Card to Teams
Adaptive Card template:
json
{
"type": "AdaptiveCard",
"body": [
{
"type": "TextBlock",
"size": "Medium",
"weight": "Bolder",
"text": "New Photo Submission"
},
{
"type": "FactSet",
"facts": [
{"title": "Request", "value": "${request_name}"},
{"title": "Photos", "value": "${photos_count}"},
{"title": "Submitted", "value": "${submitted_at}"}
]
},
{
"type": "Image",
"url": "${first_photo_url}",
"size": "Large"
}
],
"actions": [
{
"type": "Action.OpenUrl",
"title": "View Photos",
"url": "${dashboard_url}"
}
]
}Webhook Payload
Visiono sends this data to your Teams webhook:
json
{
"event": "submission.created",
"timestamp": "2024-01-15T10:30:00Z",
"data": {
"submission_id": "sub_abc123",
"permanent_link": {
"id": "pl_xyz789",
"slug": "vehicle-inspection",
"name": "Vehicle Inspection"
},
"photos": [
{
"id": "photo_001",
"url": "https://...",
"slot": 1,
"slot_name": "Front View"
}
],
"metadata": {
"unique_field": "ABC-123",
"full_name": "John Doe",
"submitted_at": "2024-01-15T10:30:00Z"
}
}
}Channel Organization
Best Practices
- Create a dedicated channel for photo notifications
- Use channel tabs to embed Visiono dashboard
- Pin important requests for visibility
- Use @mentions for urgent submissions
Channel Naming
Suggested structure:
#visiono-photos- All submissions#visiono-urgent- High-priority only#visiono-[project]- Project-specific
Troubleshooting
Notifications Not Appearing
- Verify webhook URL is correct in Visiono
- Check webhook is enabled (green status)
- Ensure Teams connector is still active
- Test with a new submission
Webhook URL Invalid
- Create a new Incoming Webhook in Teams
- Update the URL in Visiono
- Test the connection
Message Format Issues
- Check webhook event type matches expected format
- Verify JSON structure in Visiono webhook settings
- Test with Power Automate for custom formatting
Security Considerations
- Webhook URLs should be kept private
- Rotate webhooks periodically
- Use private channels for sensitive data
- Review connected apps regularly
Related Resources
- Webhooks - Event configuration
- API Reference - Direct API access
- Zapier Integration - Alternative automation
- Make Integration - Visual automation
