This use case explains how to sync only new contacts from one app to another app (ie HubSpot to Klaviyo) on a recurring basis, while keeping contact volume (and costs) under control. This approach is ideal if you want predictable usage and only need to transfer newly created contacts each month.
Goal
Sync only new contacts one-way
Limit sync volume to a fixed number (e.g. 1,000 contacts/month)
Avoid syncing historical or duplicate contacts
How it works
While Outfunnel excels in bi-directional sync that runs constantly, you can easily also create a controlled, list-based workflow that runs at a set interval.
There are two approaches depending on what you want to happen when contacts stop matching your sync rules in the destination app.
Approach A: Rolling list (recommended when supported)
Create a single list or filter with a rolling time window (e.g. "contacts created in the last 30 days"). The list membership updates automatically β new contacts enter, older contacts drop off. You set up the sync once and leave it running.
This approach works best when the destination app does nothing when a contact stops matching. For example:
In Mailchimp, you can configure the sync to "do nothing" when a contact stops matching
In CRMs like Pipedrive or HubSpot, contacts simply remain in the database when they stop matching a filter
Because the contact is not removed or unsubscribed in the destination, you can safely let them fall off the rolling list β they've already been synced and will stay put.
Approach B: New list each month
Create a separate, fixed list for each month (e.g. "April 2026 β New Contacts"), sync it, then pause or delete the sync. Repeat with a new list the following month.
Use this approach when the destination app automatically removes or unsubscribes contacts that stop matching. For example:
In Klaviyo, contacts are always removed from the list when they stop matching β this is not yet configurable (reach out to support as we are looking to make this configurable)
In ActiveCampaign, contacts are unsubscribed when they stop matching
With a rolling list, contacts that age out would get removed from the destination β defeating the purpose. A fixed list avoids this because you pause the sync before contacts can drop off.
π‘ Not sure what your destination app does? See What happens when contacts start or stop matching sync rules for a full overview.
Step-by-step: Approach A (rolling list)
1. Create a rolling list or filter in your source app
Create a list or filter with a time-based condition, such as "Create date is in the last 30 days". This list will automatically update as new contacts are created and older ones age out.
π‘ Depending on your CRM, the method differs. HubSpot uses active lists, Pipedrive uses People filters, Salesforce uses reports, and Copper uses tags or contact types.
2. Set up the sync
In Outfunnel's App connector, create a new sync. Choose your source app, select your destination app, and pick the rolling list as the audience.
3. Activate and leave running
Once activated, the sync runs continuously. New contacts that enter the list are synced. Contacts that age out of the list are ignored by the destination app (no removal or unsubscribe action is taken).
No monthly maintenance required.
Step-by-step: Approach B (new list each month)
1. Create a monthly contact list in your source app
Create a static or active list with fixed date criteria, such as:
"Create date is after April 1, 2026"
"Create date is before May 1, 2026"
Name the list clearly (e.g. "April 2026 β New Contacts").
π‘ Depending on your CRM, the method differs. HubSpot uses active or static lists, Pipedrive uses People filters, Salesforce uses reports, and Copper uses tags or contact types.
2. Set up the sync
In Outfunnel's App connector, create a new sync. Choose your source app, select your destination app, and pick the monthly list as the audience.
3. Run the sync
Allow the sync to process all contacts in the list. Monitor progress on the Status page in Outfunnel to ensure all contacts are successfully synced.
4. Pause or delete the sync
Once all contacts have been synced, pause or delete the sync. This prevents contacts from being removed if they stop matching later.
5. Repeat monthly
Create a new list for the next month, set up a new sync using that list, and repeat the process.
Example workflow (Approach B)
Month | List name | Contacts synced |
April | April 2026 β New Contacts | 850 |
May | May 2026 β New Contacts | 920 |
June | June 2026 β New Contacts | 1,000 |
As long as each list stays within your monthly contact limit, your usage remains predictable.
Benefits
Cost control β Only pay for the contacts you actively sync
Clean data flow β Avoid re-syncing existing contacts
Operational clarity β Each sync is tied to a specific timeframe
Considerations
Approach B is manual and requires monthly maintenance
Ensure list criteria are accurate to avoid overlaps
With Approach B, do not reuse lists across months, as this may result in duplicate syncing
When to use this approach
This workflow is ideal if:
You have a predictable number of new contacts each month
You want strict control over sync volume
You do not require real-time or continuous syncing
Need help?
If you'd like assistance setting up your first monthly sync or validating your list criteria, reach out to support and we'll be happy to help.
