Google Contacts Sync

How Remy keeps your contact book aligned with Google — what flows where, who owns which fields, and what happens when both sides change at once.

Overview

Remy is built to live next to your Google Contacts, not replace them. Connect your Google account once and Remy pulls every contact in — names, emails, phones, companies, photos, birthdays — and layers your own enrichment (notes, tags, "introduced by") on top.

There are two modes of sync. The one you get is decided by the Google permission you grant when you link the account. You can switch any time.

The Two Modes

ModeWhat flowsDefault for
BidirectionalIdentity fields and tags sync both ways. Manual contacts you add in Remy are uploaded to Google.Users who sign up with Google and grant the contacts permission
Read-onlyGoogle → Remy only. Edits and deletions you make in Remy stay in Remy and don't push back.Anyone who grants the read-only contacts permission

The mode is derived from the Google permission you granted, not a separate Remy setting:

  • Granting Google's contacts permission → bidirectional.
  • Granting Google's contacts (read-only) permission → read-only.

Switching modes any time from Settings → Integrations re-prompts Google for the matching permission. Nothing changes inside Remy until Google confirms.

Who Owns Which Field

Once a contact is in Remy, identity (name, email, phone, etc.) and enrichment (notes, tags, intros) follow different rules.

FieldOwned by
Name, email, phone, company, photo, birthday on Google contactsGoogle
Same fields on manual contacts you added in RemyYou (Remy)
Notes, tags, "introduced by"You (Remy) — on every contact, regardless of source
Google Labels ↔ Remy TagsMirrored, bidirectional mode only

Notes and "introduced by" links never go to Google. They live only in Remy.

System labels Google manages on its own — myContacts, Starred, contact groups Google created — are deliberately ignored by the tag mirror. Only the labels you create are mirrored.

When Both Sides Change

If you edit the same field on Google and in Remy between syncs, Remy resolves the conflict with last-write-wins by timestamp. Whichever edit was saved most recently wins.

Remy distinguishes edits you make from writes the sync itself performs, so a contact you just edited in Remy isn't immediately "overwritten" by Remy's own push to Google on the next run. The system isn't fighting itself.

Onboarding

How you get here depends on how you signed up.

You signed up with Google. Sync is set up for you with zero clicks. Remy notices you already granted the contacts permission at sign-up, runs a first sync in the background, and drops you into your contact list as it fills in. The mode is bidirectional if you granted the write permission, read-only if you granted the read-only one.

You signed up with email. You'll see a Connect Google button in Settings → Integrations. The wizard asks which mode you want, sends you to Google for permission, and runs the first sync once you come back.

Running a Sync

You don't have to do anything for sync to happen. Background syncs run every hour, on the hour. They're incremental — Remy only asks Google for what changed since the last run.

If you don't want to wait, click Sync now in Settings → Integrations to trigger an immediate refresh.

Sync runs that show zero changes are normal

Remy records every sync attempt to your Activity Log, including ones where nothing changed. The added: 0, updated: 0, deleted: 0 runs are how you can confirm sync is healthy even on quiet days.

What Gets Logged

Every meaningful event is captured in your Activity Log — useful when something looks off or you want to verify a recent change came from Google rather than your own edit.

  • Google Sync Ran — every hourly run, every Sync now click, every first-time sync after linking. Includes how many contacts and tags were added, updated, and deleted.
  • Google Onboarding Completed — captured the first time sync is set up, with the chosen mode.
  • Google Sync Mode Changed — recorded when you switch between read-only and bidirectional.
  • Google Contact Pushed — in bidirectional mode, when a local change is sent to Google.
  • Google Disconnected — when you unlink the Google integration.

Tag-related sync activity (Tag Pushed To Google, Tag Push Failed) is captured under the Tags category. See Tags for how those work.

Frequently Asked Questions

What happens to my contacts if I disconnect Google?

Already-synced contacts stay in Remy as a read-only history — you keep all your notes, tags, and "introduced by" links. New changes in Google will no longer reach you. Reconnecting later resumes sync from your current state.

Can I sync only some of my Google contacts?

Not today. Sync is all-or-nothing across your Google contact book. Filtering by Google Label or contact group is on the roadmap.

Does Remy sync my Google Calendar or email?

No. Only Google Contacts. Email ingestion and calendar logging are deliberately out of scope for v1.

Why didn't a contact I just edited show up in Google?

In bidirectional mode, pushes happen as part of the sync process — usually within seconds, but tag-membership updates are batched in the background to stay inside Google's API quotas. If a push fails (auth error, quota hit, version conflict), the row stays queued and retries on the next sync. You'll see Tag Push Failed in the Activity Log if it does.

What if I deleted a contact in Remy and it came back?

That's the resurrection problem and only happens in read-only mode. See Why some deletes are blocked.

On this page