Sync Agents
Sync agents let you connect data sources that aren’t accessible from the public internet—things like QuickBooks Desktop, local SQL Server instances, or databases behind a corporate firewall.
How it works
Section titled “How it works”The sync agent is a Docker container that runs on your network. It connects outbound to Resplendent’s cloud over WebSocket, waits for sync requests, queries your local data source, and sends the results back.
┌─────────────────────────────────────────────────────────────────┐│ Your network ││ ││ ┌──────────────────┐ ┌──────────────────────────────┐ ││ │ Sync Agent │ ◄─────► │ Local data source │ ││ │ (Docker) │ │ (QuickBooks, SQL Server) │ ││ └────────┬─────────┘ └──────────────────────────────┘ ││ │ │└───────────│─────────────────────────────────────────────────────┘ │ WebSocket (outbound only, port 443) ▼ ┌───────────────────┐ │ Resplendent │ │ Cloud │ └───────────────────┘Because the agent only makes outbound connections, you don’t need to open any inbound firewall ports or configure port forwarding.
When you need a sync agent
Section titled “When you need a sync agent”You need a sync agent if your data source:
- Runs on a local machine (QuickBooks Desktop)
- Is behind a firewall with no public IP
- Can’t whitelist Resplendent’s IP addresses
- Is on a private network segment
For cloud services (ConnectWise, QuickBooks Online, Autotask) or databases with public IPs, you don’t need a sync agent—connect directly through the Integrations page.
Creating a sync agent
Section titled “Creating a sync agent”- Go to Data Settings → Sync Agents in the sidebar
- Click the Add button (top right of the table)
- Enter a name for your agent (e.g., “Office Server” or “HQ Sync Agent”)
- Click Save
After saving, the page displays your Agent UUID and Agent Key. Copy both values—you’ll need them to install the agent.
The Agent Key only appears after the first save. If you leave the page before copying it, you can return to view it again.
Installing the agent
Section titled “Installing the agent”Requirements
Section titled “Requirements”- A machine with Docker installed (Linux, Windows with WSL2, or macOS)
- Network access to your local data source
- Outbound internet access on port 443
We recommend a dedicated Linux VM or server that stays running 24/7. The agent needs to be online whenever syncs run.
Quick install
Section titled “Quick install”SSH into your server and run:
mkdir resplendent_sync_agentcd resplendent_sync_agentcurl -sSL https://app.resplendentdata.com/api/public/sync-agent-install.sh | bashThe script prompts for your Agent UUID and Agent Key, then creates a docker-compose.yaml and starts the containers.
Manual install
Section titled “Manual install”If you prefer not to pipe scripts to bash:
-
Create a directory for the agent:
Terminal window mkdir resplendent_sync_agentcd resplendent_sync_agent -
Create
docker-compose.yaml:services:sync-agent:image: resplendentdata/sync-agent:latestcontainer_name: sync-agentenvironment:- SYNC_AGENT_UUID=your-uuid-here- SYNC_AGENT_KEY=your-key-herelabels:- 'com.centurylinklabs.watchtower.enable=true'restart: alwayswatchtower:image: containrrr/watchtowercontainer_name: watchtowervolumes:- /var/run/docker.sock:/var/run/docker.sockenvironment:- WATCHTOWER_CLEANUP=true- WATCHTOWER_INCLUDE_RESTARTING=true- WATCHTOWER_ROLLING_RESTART=true- WATCHTOWER_POLL_INTERVAL=21600dns:- 8.8.8.8- 1.1.1.1restart: always -
Replace
your-uuid-hereandyour-key-herewith your actual credentials. -
Start the containers:
Terminal window docker compose up -d
Watchtower automatically updates the sync agent every 6 hours when new versions are released.
Verify the connection
Section titled “Verify the connection”Check the logs to confirm the agent connected:
docker compose logs -f sync-agentYou should see:
INFO:__main__:Authenticating with serverINFO:__main__:Successfully authenticated with the serverIn Resplendent, the Last Connection column on the Sync Agents page should show the current time. The agent sends a heartbeat every 30 seconds.
Using the agent with an integration
Section titled “Using the agent with an integration”Once your agent is running, you can use it when connecting a data source:
- Go to Data Settings → Integrations
- Click Connect on the integration card (e.g., QuickBooks Desktop)
- Fill in the connection details
- Scroll down to On-Premise Sync Agent
- Toggle Enable On-Premise Sync
- Select your agent from the list
- Click Save & Test
The connection test runs through your sync agent. If it succeeds, you can start syncing datasets.
Managing agents
Section titled “Managing agents”Common commands
Section titled “Common commands”Run these from the directory containing docker-compose.yaml:
# View logsdocker compose logs -f sync-agent
# Restart the agentdocker compose restart sync-agent
# Stop the agentdocker compose down
# Update manually (Watchtower does this automatically)docker compose pull && docker compose up -dEditing an agent
Section titled “Editing an agent”- Go to Data Settings → Sync Agents
- Click the agent name
- Update the name if needed
- Click Save
You can’t change the UUID or Key after creation. If you need new credentials, delete the agent and create a new one.
Deleting an agent
Section titled “Deleting an agent”- Go to Data Settings → Sync Agents
- Click the agent name
- Click Delete
You can’t delete an agent that’s still assigned to an integration. Remove the agent from all integrations first.
Troubleshooting
Section titled “Troubleshooting”Agent shows “Never connected”
Section titled “Agent shows “Never connected””- Check the container is running:
docker ps - Verify the UUID and Key match what’s in Resplendent
- Check logs for errors:
docker compose logs sync-agent - Ensure outbound connections to
wss://app.resplendentdata.comon port 443 aren’t blocked
”Connection refused” when testing integration
Section titled “”Connection refused” when testing integration”- Verify the sync agent can reach your data source on the network
- Check firewall rules between the agent and data source
- For QuickBooks Desktop, ensure the CData Gateway is running
Agent keeps disconnecting
Section titled “Agent keeps disconnecting”- Check for network instability
- The agent automatically reconnects after disconnection
- If the problem persists, check
docker compose logs sync-agentfor error patterns
Integration-specific guides
Section titled “Integration-specific guides”For detailed setup instructions with specific data sources:
- QuickBooks Desktop on-premise setup — Includes CData Gateway installation
Tier availability
Section titled “Tier availability”Sync agents are available on Business tier and above. See Tier Limits for details.
Frequently asked questions
Section titled “Frequently asked questions”Does the sync agent require inbound firewall ports?
Section titled “Does the sync agent require inbound firewall ports?”No. The agent only makes outbound connections to Resplendent’s cloud on port 443 (HTTPS/WSS). No inbound ports, port forwarding, or firewall rules are needed.
What happens if the agent goes offline?
Section titled “What happens if the agent goes offline?”Syncs pause until the agent reconnects. The agent automatically reconnects when the network is restored. No data is lost.
Can I run multiple sync agents?
Section titled “Can I run multiple sync agents?”Yes. Create a separate agent in Resplendent for each location or network segment. Each agent needs its own UUID and Key.
How do I update the sync agent?
Section titled “How do I update the sync agent?”Watchtower (included in the Docker Compose file) automatically pulls new versions every 6 hours. For manual updates: docker compose pull && docker compose up -d.
What are the system requirements?
Section titled “What are the system requirements?”Any machine with Docker that can reach your data source and has outbound internet access. We recommend a dedicated Linux VM with at least 1GB RAM. The agent is lightweight.
Can I see sync agent logs in Resplendent?
Section titled “Can I see sync agent logs in Resplendent?”Basic connection status appears in Data Settings → Sync Agents. For detailed logs, check the container directly: docker compose logs -f sync-agent.