Company Management
Manage architectural firms participating in BATbern conferences
Implemented
Last Updated: 2026-06-13
Overview
Companies represent architectural firms in Switzerland and internationally that participate in BATbern conferences. Each company has employees (users) who can register as speakers or attendees.
Key Features
- โ Swiss UID Validation - Real-time validation of Swiss company identifiers
- โ Logo Upload - Direct S3 uploads using presigned URLs
- โ Search & Autocomplete - Fast company lookup by name or UID
- โ Employee Tracking - Link users to their companies
- โ Location Management - Canton, city, address information
Creating a Company
Navigate to Companies
Click ๐ข Companies in the left sidebar.
Click โCreate New Companyโ
Click the + Create New Company button (top-right).
Fill Required Fields
Complete the company creation form:
Basic Information:
- Name* - Legal name (e.g., โMรผller Architekten AGโ) - used as internal identifier
- Display Name - Optional public-facing name (defaults to Name if not provided)
- Swiss UID* - CHE-xxx.xxx.xxx format (Swiss companies only)
- Country* - Switzerland or international
- Canton - For Swiss companies (ZH, BE, VD, etc.)
- City - Headquarters location
Contact Information:
- Email - General company email
- Phone - Primary contact number
- Website - Company website URL
Additional Details:
- Employee Count - Approximate number of employees
- Year Founded - Company establishment year
- Description - Brief company overview (optional)
Upload Company Logo (Optional)
Click Upload Logo to add a company logo:
- Click Choose File
- Select PNG, JPG, or SVG file (max 2MB)
- Logo is uploaded directly to S3 via presigned URL
- Thumbnail appears immediately after upload
Save
Click Save to create the company.
Success message appears: โCompany โMรผller Architekten AGโ created successfullyโ
Swiss UID Validation
Implemented
Swiss companies must provide a valid UID (Unternehmens-Identifikationsnummer) - the official Swiss business identifier.
Format Requirements
Valid Format: CHE-XXX.XXX.XXX
Where:
CHE= Swiss prefix (constant)XXX.XXX.XXX= 9-digit number with dots
Examples:
- โ
Valid:
CHE-123.456.789 - โ
Valid:
CHE-100.000.001 - โ Invalid:
CHE123456789(missing dots) - โ Invalid:
CHE-123456789(missing dots) - โ Invalid:
ABC-123.456.789(wrong prefix) - โ Invalid:
CHE-12.345.678(wrong digit count)
Real-Time Validation
The Swiss UID field validates as you type:
Swiss UID *
[CHE-123.456.789 ] โ
Valid Swiss UID
Swiss UID *
[CHE123456789 ] โ Invalid format. Use CHE-XXX.XXX.XXX
UID Registry
Planned
Future releases will integrate with the Swiss UID Registry API to:
- Verify UID exists in official registry
- Auto-populate company name and address
- Check UID status (active, dissolved, etc.)
Logo Upload
Implemented
Companies can upload logos for branding and recognition.
Upload Process
Request Upload URL
System requests a presigned S3 URL from the backend.
Upload Directly to S3
File is uploaded directly to S3 (not through backend), reducing server load.
Confirm Upload
Backend confirms successful upload and saves logo URL to company record.
File Requirements
- Formats: PNG, JPG, SVG
- Max Size: 2MB
- Recommended Dimensions: 400x400px (square)
- Aspect Ratio: 1:1 or 16:9
Logo Display
Logos appear in:
- Company directory listings
- Event partner showcases
- Speaker profile pages (showing speakerโs company)
- Email communications Planned
Searching Companies
Implemented
Quick Search
Use the search box at the top of the company list:
๐ [Mรผller]
Searches across:
- Company name (both internal name and display name)
- Swiss UID
- City
- Canton
Advanced Filters
Use JSON-based filters for complex queries:
Filter by Canton:
canton:ZH
Filter by Employee Count:
employees:>100
Multiple Filters:
canton:ZH
employees:>50
verified:true
Autocomplete
Implemented
When creating users or speakers, company fields provide autocomplete:
Company
[Mรผl____________]
Mรผller Architekten AG (CHE-123.456.789)
Mรผller & Partner GmbH (CHE-987.654.321)
Type 2+ characters to trigger suggestions.
Editing a Company
Find the Company
Use search or browse the company list.
Click Edit
Click the ๐ Edit icon in the company row.
Modify Fields
Update any editable fields. Note:
- Swiss UID cannot be changed once set (prevents fraud)
- Logo can be replaced (old logo deleted from S3)
Save Changes
Click Save Changes to persist updates.
Deleting a Company
Click Delete
Click the ๐๏ธ Delete icon in the company row.
Confirm Deletion
A confirmation dialog appears:
Delete Company?
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Are you sure you want to delete
"Mรผller Architekten AG"?
This will:
- Remove the company from the directory
- Clear company association for 45 employees
- Delete the company logo from S3
This action cannot be undone.
[Cancel] [Delete]
Click Delete (red button) to confirm.
Cascade Effects
After deletion:
- Company record is removed
- Company logo is deleted from S3
- User company references are set to NULL
- Event partnerships remain (historical record)
Company Employees
Viewing Employees
Company detail view shows linked employees:
Employees (45)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Name | Role | Actions
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Hans Mรผller | ORGANIZER | ๐๏ธ ๐
Anna Schmidt | SPEAKER | ๐๏ธ ๐
Peter Meier | ATTENDEE | ๐๏ธ ๐
Click View All Employees to see the complete list.
Linking Users to Companies
Users are linked to companies during:
- User Creation - Select company from autocomplete dropdown
- User Profile Update - Change company affiliation
- User Sync - Automatic sync from Cognito user attributes
See User Management for details.
Company Statistics
Planned
Company detail view will show:
- Total Employees: Active users linked to company
- Speakers: Employees registered as speakers
- Attendees: Employees registered for events
- Event Participation: Historical attendance by year
- Topics Presented: Topics covered by company speakers
Export & Import
Planned
Export Companies
Export company directory to CSV/Excel:
[๐ฅ Export]
โโ Export All (237 companies)
โโ Export Filtered (42 companies)
โโ Export Selected (5 companies)
Import Companies
Bulk import from CSV:
[๐ค Import Companies]
Upload CSV file with columns:
- name, swiss_uid, country, canton, city, email
Validation:
- Duplicate UIDs rejected
- Invalid formats flagged
- Success rate shown (e.g., "185/200 imported")
Common Issues
โInvalid Swiss UID formatโ
Problem: UID doesnโt match CHE-XXX.XXX.XXX format.
Solution:
- Ensure dots are included:
CHE-123.456.789 - Verify 9 digits total (3 groups of 3)
- Use uppercase CHE prefix
โSwiss UID already existsโ
Problem: Another company has the same UID.
Solution:
- UIDs must be unique in the system
- Check if company already exists (use search)
- Contact support if you believe this is an error
โLogo upload failedโ
Problem: Logo couldnโt be uploaded to S3.
Solution:
- Check file size (must be โค 2MB)
- Verify file format (PNG, JPG, SVG only)
- Try again (presigned URL may have expired)
- Check network connectivity
See File Upload Troubleshooting for more details.
Related Topics
- User Management โ - Link employees to companies
- File Uploads Feature โ - How presigned URLs work
- Partner Management โ - Companies as event partners
API Reference
Endpoints
POST /api/companies Create company
GET /api/companies List companies (paginated)
GET /api/companies/{id} Get company by ID
PUT /api/companies/{id} Update company
DELETE /api/companies/{id} Delete company
POST /api/companies/{id}/logo Request presigned URL for logo upload
Resource Expansion
GET /api/companies/123?expand=employees
{
"id": "123",
"name": "Mรผller Architekten AG",
"swissUid": "CHE-123.456.789",
"employees": [
{ "id": "456", "name": "Hans Mรผller", "role": "ORGANIZER" },
{ "id": "789", "name": "Anna Schmidt", "role": "SPEAKER" }
]
}
See API Documentation for complete specifications.