Teams use Zapier when they need Affino to hand data off to the rest of the operational stack without building a custom integration first. In practice that usually means workflows such as syncing contacts into a CRM, pushing article events into editorial or distribution tooling, reacting to orders and award entries in downstream systems, or triggering customer-lifecycle actions from behaviour already captured in Affino.
This guide should be read as a technical integration guide, not as a light feature tour. The important thing to understand first is that Affino does not expose one giant, undifferentiated Zapier connection. It exposes a Zapier Profile, and that profile acts as the contract between Affino and Zapier.
A Zapier Profile controls four things that matter operationally:
That design matters because the same Affino site can have very different automation needs. A profile used for CRM synchronisation should not usually carry article publishing, awards triggers, and event-attendee workflows as well. In practice, a good Zapier setup in Affino is not just about connecting credentials. It is about designing the right profile boundaries so the right triggers, actions, logs, and ownership sit together.
Two traffic directions matter here:
Affino makes this integration materially broader than earlier iterations. The method set now covers CRM objects, audience and list objects, article publishing, Customer Signals, orders, event attendees, and awards. It also adds profile management screens, API Logs, pagination support for higher-volume trigger polling, and staff-level service-management controls.
That wider scope is why a proper Zapier guide for Affino has to go deeper than a normal feature help guide. You need to know:
If you are setting up your first connection, go to step 3 after reading step 2. If you are designing a production workflow, read steps 4 to 11 before you take anything live.
The biggest implementation mistake with Zapier is to treat the connection as a technical checkbox rather than an operating model. Before you create the first live profile, decide what the workflow is actually for and which system is supposed to be authoritative.
Work through these questions first:
usercode, accountcode, contactlistcode, mailinglistcode, taxonomycategorycode, articlecode, externalarticleid, and so on?
For most clients, the safest profile design is one profile per meaningful workflow. Good names make the support boundary obvious:
HubSpot Contact Sync - UKEditorial Syndication - USCustomer Signals - Event Follow-upAwards Reporting - 2027
Best-practice planning rules for production use:
usercode or accountcode
Worked example: HubSpot Contact Sync - UK
Use this as the mental model for a clean first CRM integration:
Profile name: HubSpot Contact Sync - UK
Zone: UK
Methods enabled: create_contact, update_contact
Zap trigger: HubSpot new or updated contact
Affino field mapping:
firstname = Sarah
lastname = Ellis
email = sarah.ellis@example.com
tel = +44 20 7946 0100
topics = Events|VIP
Expected API Log row:
profile = HubSpot Contact Sync - UK
method = create_contact
result = Success
warnings = none
In Affino, the result should be a contact in the intended zone with the mapped name, email, phone number, and topics. The next design decision is whether HubSpot will keep the returned usercode for later updates. If it does, future sync becomes predictable. If it does not, the integration starts life already depending on email or lookup logic.
If you skip this design step, Zapier often looks broken when the real problem is simply that the wrong profile, wrong zone, or wrong identifier strategy was chosen at the start.
The fastest path from zero to first successful Affino and Zapier transaction. Five steps, five minutes.
1. Create one profile. Go to Control > System > Zapier Profiles. Add one profile for one workflow only, choose the correct Zone, and enable a single method family.
2. Turn it live and copy the credentials. Save the profile, switch Live on, and copy the generated API Key and API Secret.
3. Connect Affino in Zapier. Add Affino as the app in Zapier and paste in the credentials from that exact profile.
4. Build one small test. Choose one trigger or one action only. For a simple first proof, use a small contact or account action, or one trigger you can immediately observe.
5. Verify in Affino, not only in Zapier. Check the record, then go to Control > System > Zapier API Logs and confirm the intended profile, method, result, and any warnings.
That is the first full loop. The rest of this guide goes deeper on profile design, supported method families, field mappings, and troubleshooting.
Before you start:
Use this matrix before you design a workflow in detail. It is the fastest way to answer the practical question, "can Affino and Zapier actually do this combination today?"
Affino's Zapier method set is broad, but it is not uniform. Some object families have both triggers and actions. Some are trigger-only. Some have important scope rules that are easy to miss.
| Object family | Triggers | Actions | Important notes |
|---|---|---|---|
| Contacts | Contact add, edit, and delete activity | create_contact, update_contact | Use usercode for updates. Contact type and privacy rules matter. |
| Accounts | Account add, edit, and delete activity | create_account, update_account | Use accountcode for updates. Country fields use ISO plus name. |
| Contact Lists | Contact list created or updated and contact-added activity | create_contact_list, update_contact_list, add_contact_list_contact, remove_contact_list_contact | Contact Lists are not zone-specific. System and Auto-Assign lists are excluded. |
| Mailing Lists | Mailing list created or updated plus subscribe and unsubscribe activity | create_mailing_list, update_mailing_list, subscribe_contact_mailing_list, unsubscribe_contact_mailing_list | Mailing Lists are tied to the profile zone. Unsubscribe creates a real unsubscribe state. |
| Topic Lists / Topics | Separate topic-list and topic triggers | create_topic_list, update_topic_list, create_topic, update_topic | taxonomycode identifies the topic list; taxonomycategorycode identifies the topic. |
| Articles | article_published, article_updated | create_article, update_article | This is one of the deepest method groups. Field mapping matters. |
| Orders | Order triggers | None in current shipped scope | Action specs were discussed, but current shipped scope is triggers only. |
| Event Attendees | attendee_created, attendee_updated | None in current scope | Trigger-focused event operations. |
| Awards | award_entry_created, award_entry_updated | None in current scope | Awards payload includes entrant, nominee, order, and judges data. |
| Customer Signals | Customer Signal fired | trigger_customer_signal | Action only supports valid live Custom Triggers for the profile zone. |
Two operating implications follow from this matrix.
First, do not enable methods just because they exist. If your profile is intended only for contact sync, do not also expose article, awards, and orders methods. The longer the method menu becomes, the easier it is to build or support the wrong Zap.
Second, do not assume that every object family behaves the same way. Contacts and accounts are straightforward create and update families. Contact Lists and Topic Lists have scope quirks. Articles are content-heavy and field-heavy. Orders, Event Attendees, and Awards are currently much more trigger-oriented than action-oriented.
Treat this matrix as the boundary of what you are designing. The remaining steps go object family by object family.
A Quick Start gets you to first success fast. This step is the slower, production-safe version: it explains what to configure on the Affino side, what to verify in Zapier, and what should count as a real proof of life before you expand the workflow.
In Affino:
HubSpot Contact Sync - UK, Editorial Syndication - US, Awards Reporting - 2027.
On first save, Affino generates the API Key and API Secret for that specific profile. Those credentials belong to that one profile only. They are not generic site credentials, and they do not automatically expose every method family.
Profile settings that matter operationally:
In Zapier:
Note: if the app-connection step fails before you can test a trigger or action, troubleshoot the app connection first and re-copy the credentials from the intended Affino profile before you create a second profile. Most early failures here come from the wrong profile, the wrong Zone, or a profile that is not yet Live.
What should count as a real proof of life:
Caution: do not build a long multi-step Zap before the Affino step itself has been proved. A one-step test with one profile and one method is far easier to debug than a large workflow with several moving parts.
Note: for article and Customer Signal workflows, test the exact edge case you care about before go-live. These families have deeper validation rules than a simple contact create or account update.
Contacts and accounts are usually the first serious two-way workflows people build in Zapier. They are also the method groups most likely to break when the identifier strategy has not been thought through.
Contacts
Description
Contacts are the main person-level action family in the integration. Use them when Zapier needs to create or update an Affino contact from an external CRM, form, registration flow, or enrichment tool.
Example Usage
Zap: HubSpot new contact -> Affino create_contact
firstname = Sarah
lastname = Ellis
email = sarah.ellis@example.com
tel = +44 20 7946 0100
topics = Events|VIP
For later updates, keep the returned usercode in the external system and switch the action to update_contact.
Argument Reference
usercode - (Required for update_contact, Optional for create_contact) Affino contact identifier.firstname - (Optional) Given name.lastname - (Optional) Family name.email - (Optional, but required when the resulting contact becomes Full Member) Primary email address.email2 - (Optional) Secondary email address.tel - (Optional) General or primary telephone number.businessphone - (Optional) Business phone number.mobile - (Optional) Mobile phone number.addressone - (Optional) First address line.addresstwo - (Optional) Second address line.towncity - (Optional) Town or city.countystate - (Optional) County, region, or state.postcode - (Optional) Postcode or zip code.country - (Optional) Country text value.membertype - (Optional) Contact or member type.privacytype - (Optional) Privacy setting.topics - (Optional) Pipe-delimited taxonomy values such as Events|VIP.
Attribute Reference
usercode - Affino contact identifier returned by the contact record and used for future updates.firstname - Contact first name where present.lastname - Contact last name where present.email - Primary email where present.membertype - Contact type after the change.topics - Pipe-delimited topics where present.
Notes
Note: persist usercode as early as possible. The cleanest integrations are the ones that stop guessing contact identity after the first create.
Warning: updating a contact to an email address already used by another active contact is rejected.
Caution: setting a contact to Public Persona forces Public Profile privacy and unsubscribes the contact from all marketing.
Note: validation for Full Member checks the resulting record state, not only the incoming field fragment. If the final record would be a Full Member without an email, the action is rejected.
Accounts
Description
Accounts are the organisation-level companion to contacts. Use them when Zapier needs to create or update a company, client, or parent organisation record in Affino.
Example Usage
Zap: external CRM company update -> Affino update_account
accountcode = 44012
name = Example Publishing Ltd
tel = +44 20 7000 1234
email = partnerships@examplepublishing.com
countryiso = GB
countryname = United Kingdom
active = true
Argument Reference
accountcode - (Required for update_account, Optional for create_account) Affino account identifier.name - (Optional on update, typically required in practice on create) Account name.notes - (Optional) Free-text notes.topics - (Optional) Pipe-delimited taxonomy values.accounttype - (Optional) Account-type classification.tel - (Optional) Main telephone number.email - (Optional) Main email address.web - (Optional) Website URL.companynumber - (Optional) Company registration number.vatnumber - (Optional) VAT registration number.accountmanager - (Optional) Affino account-manager value.address1 - (Optional) First address line.address2 - (Optional) Second address line.address3 - (Optional) Third address line.towncity - (Optional) Town or city.countystate - (Optional) County, region, or state.postcode - (Optional) Postcode or zip code.countryiso - (Optional) ISO country code.countryname - (Optional) Human-readable country name.parentaccount - (Optional) Parent-account label.parentaccountcode - (Optional) Parent-account identifier.active - (Optional) Account active state.
Attribute Reference
accountcode - Affino account identifier used for future updates.name - Account name.email - Main email where present.topics - Pipe-delimited account topics where present.active - Current account active state.countryiso - ISO country value where present.countryname - Human-readable country value where present.
Notes
Note: treat accountcode the same way you treat usercode on contacts. Store it once and keep future updates key-based.
Note: active accepts string-like boolean values such as true and false as well as 1 and 0.
Caution: use countryiso for the machine-readable country value and countryname when you also want the readable label carried through. Do not assume a generic country field will behave the same way here.
Note: topic mapping uses pipe-delimited values. Send Blue|Green|VIP, not sentence-style text.
These method groups are where Affino's Zapier integration stops looking like a simple CRM bridge and starts looking like an audience and classification toolkit. They also contain several scope rules that are easy to miss.
Contact Lists
Description
Contact Lists are audience buckets for Affino contacts. They are unusual in this integration because they are not zone-specific, so the profile zone does not narrow list access in the same way it narrows articles or Mailing Lists.
Example Usage
create_contact_list
name = Event Prospects
description = Contacts who clicked event emails
topics = Events|VIP
contactsstatuslist = Invited|Registered|Attended
Then use add_contact_list_contact with the returned contactlistcode and the target usercode.
Argument Reference
name - (Required for create_contact_list) Human-readable list name.description - (Optional) Free-text list description.topics - (Optional) Pipe-delimited topic values.contactsstatuslist - (Optional) Pipe-delimited list-status options.contactlistcode - (Required for update_contact_list, add_contact_list_contact, and remove_contact_list_contact) Affino contact-list identifier.usercode - (Required for add_contact_list_contact and remove_contact_list_contact) Affino contact identifier.status - (Optional for add_contact_list_contact) Contact-list membership status.
Attribute Reference
contactlistcode - Affino contact-list identifier.name - Contact-list name.topics - Pipe-delimited list topics where present.contactsstatuslist - Pipe-delimited configured status values where present.usercode - Contact identifier on list-membership events.
Notes
Note: Contact Lists are not zone-specific. Check this first if a builder expects the profile zone to narrow list visibility.
Caution: topics replaces the entire topic set on update. If you need additive behaviour, construct the full outgoing list deliberately.
Note: [_null_] can be used to clear nullable fields such as description, topics, or contactsstatuslist.
Caution: the optional status value on membership updates must match a configured status label, case-insensitively. If it does not match, Affino ignores it.
Warning: System and Auto-Assign Contact Lists are excluded from this integration layer.
Warning: adding a contact already in the list returns 409; removing a contact who is not in the list returns 404.
Mailing Lists
Description
Mailing Lists are zone-scoped audience objects for communication and subscription workflows. Unlike Contact Lists, their create and update behaviour is tightly tied to section and subscription state.
Example Usage
create_mailing_list
name = Weekly Briefing
sectionname = Newsletters
teaser = Top stories every Friday
description = Editorial weekly digest
live = true
hidden = false
Argument Reference
name - (Required for create_mailing_list) Mailing List name.sectioncode - (Required on create unless sectionname is used) Destination section identifier.sectionname - (Required on create unless sectioncode is used) Destination section label.teaser - (Optional) Short teaser text.description - (Optional) Mailing List description.live - (Optional) Live state.hidden - (Optional) Hidden state.unsubscribeconfirmationmessage - (Optional) Confirmation text used on unsubscribe.mailinglistcode - (Required for update_mailing_list, subscribe_contact_mailing_list, and unsubscribe_contact_mailing_list) Mailing List identifier.usercode - (Required for subscribe and unsubscribe actions) Affino contact identifier.
Attribute Reference
mailinglistcode - Affino Mailing List identifier.name - Mailing List name.sectioncode - Section identifier where resolved.live - Live state where present.hidden - Hidden state where present.usercode - Contact identifier on subscription events.
Notes
Note: if both sectioncode and sectionname are supplied on create, sectioncode takes priority.
Note: boolean-style fields accept true and false as well as 1 and 0.
Caution: [_null_] clears nullable fields such as description and unsubscribeconfirmationmessage. For teaser, [_null_] clears to an empty string rather than SQL null.
Warning: unsubscribe is not the same as ordinary removal from a list. Affino records a real unsubscribe state in the unsubscribe table.
Topic Lists and Topics
Description
Topic Lists define the taxonomy container. Topics are the individual taxonomy values inside that container. The integration supports both, but the identifier distinction matters a lot.
Example Usage
create_topic
name = Awards
taxonomycode = 42
topiccolor = FF6600
parenttopics = Events|Campaigns
externalid = awards-category
Argument Reference
title - (Optional for Topic List create and update) Topic-list title.description - (Optional) Topic-list description.publisher - (Optional) Topic-list publisher label.source - (Optional) Topic-list source label.language - (Optional) Topic-list language value.name - (Required for create_topic and typically on update_topic) Topic name.taxonomycode - (Required for create_topic unless topiclist resolves it) Topic-list identifier.topiclist - (Optional alternative to taxonomycode on create) Topic-list label.taxonomycategorycode - (Required for update_topic unless id is used) Topic identifier.id - (Optional alternative to taxonomycategorycode on update) Topic identifier.topiccolor - (Optional) Six-character hex value without #.customlink - (Optional) Custom URL or link value.externalid - (Optional) External topic identifier.parenttopics - (Optional) Pipe-delimited parent topic names or codes.
Attribute Reference
taxonomycode - Topic-list identifier.taxonomycategorycode - Topic identifier.name - Topic name.topiccolor - Topic colour value where present.parenttopics - Pipe-delimited parent-topic values where present.
Notes
Warning: taxonomycode identifies the topic list. taxonomycategorycode identifies the topic. Mixing them up is one of the easiest ways to misconfigure this area.
Note: parenttopics adds parent links on create but replaces the full parent set on update.
Note: [_null_] clears parent-topic links.
Caution: invalid topic values or invalid parent-topic references are ignored rather than corrected for you.
Caution: Topic Lists and Topics have known awkwardness around zone handling. If taxonomy is business-critical in the workflow, test it more deeply than you would a simple contact or account action.
If you are using Zapier for editorial publishing or behavioural automation, this is the most important section of the guide. Articles and Customer Signals both expose deeper rules than the lighter CRUD-style methods.
Articles
Description
Article actions are designed for real publishing workflows, not just tiny metadata edits. The field surface is wider than it is for contacts or accounts, and the trigger payload is rich enough to drive downstream editorial, syndication, and alerting workflows.
Example Usage
create_article
sectioncode = 12345
title = Spring Summit 2027 opens for registration
teaser = Registration is now live for the annual summit.
presentationstyle = Standard Article
externalarticleid = hubspot-article-8812
topics = Events|Summit
live = true
mainimage = https://example.com/images/summit-hero.jpg
Treat the example section code and presentation style above as illustrative values. Use the real destination section code and a presentation style that exists on the target channel.
Argument Reference
articlecode - (Required for update_article when updating by Affino article ID) Affino article identifier.externalarticleid - (Optional on create, Optional on update but commonly used) External article identifier.screenname - (Optional) External or friendly article slug value where used.title - (Optional on update, typically required in practice on create) Main article title.alternativetitle - (Optional) Alternate title.articletype - (Optional) Article-type value.sectioncode - (Required for create_article) Destination section identifier.teaser - (Optional) Short teaser text.summary - (Optional) Summary text.introduction - (Optional) Introductory rich-text field.text1 - (Optional) Rich-text body field.text2 - (Optional) Rich-text body field.text3 - (Optional) Rich-text body field.text4 - (Optional) Rich-text body field.text5 - (Optional) Rich-text body field.calltoaction - (Optional) Call-to-action text.quotationtext - (Optional) Quote text.informationboxtitle - (Optional) Information-box title.informationboxtext - (Optional) Information-box body.credits - (Optional) Credits text.thumbnailimage - (Optional) Remote image URL for the thumbnail slot.mainimage - (Optional) Remote image URL for the main-image slot.introimage - (Optional) Remote image URL for the intro-image slot.topimage - (Optional) Remote image URL for the top-image slot.baseimage - (Optional) Remote image URL for the base-image slot.image1 - (Optional) Remote image URL for image slot 1.image2 - (Optional) Remote image URL for image slot 2.image3 - (Optional) Remote image URL for image slot 3.categorytopic - (Optional) Category topic value.topics - (Optional) Pipe-delimited topic values.presentationstyle - (Required for create_article, Optional for update_article) Presentation-style name.multidisplay - (Optional) Comma-delimited section-code list for multi-display placement.live - (Optional) Live state.publishstart - (Optional) Publish-start datetime.publishend - (Optional) Publish-end datetime.pagetitle - (Optional) SEO page title.pagedescription - (Optional) SEO page description.priority - (Optional) Priority value.so - (Optional) Sort-order or related publishing value where used.securitycode - (Optional) Security-code value.
Attribute Reference
articlecode - Affino article identifier.externalarticleid - External article identifier where present.title - Article title.articletype - Article-type value.sectioncode - Section identifier.teaser - Teaser text.introduction - Introductory body content.text1 to text5 - Main body fields.image fields - Image URLs plus related alt-text and caption variants where present.topics - Topic values where present.presentationstyle - Presentation-style value.live - Live state.created and updated timestamps - Publishing timestamps carried by the trigger payload.
Notes
Warning: sectioncode is required on create in the current implementation.
Warning: presentationstyle is required on create and must match a valid presentation-style name on the relevant channel.
Warning: duplicate externalarticleid on create returns 409 Conflict. It is not treated as an upsert.
Note: introduction and text1 to text5 preserve HTML. Other text fields are subject to plain-text storage rules.
Note: when the zone has a media section configured, Affino fetches the remote image URL and stores the image in the media library. If that fails, the platform can fall back to storing the original URL.
Caution: only live articles are included in the shipped trigger behaviour, and article_published does not re-fire on republication of the same article code because Zapier deduplicates on article code.
Note: if you need section-specific or article-type-specific routing, let the Affino trigger fire and narrow the workflow with a Zapier Filter step downstream.
Customer Signals
Description
Customer Signals work in both directions, but with tighter validation than the lighter method groups. Use them when Zapier needs to react to behavioural milestones or explicitly fire a lifecycle action against an Affino contact.
Example Usage
trigger_customer_signal
conversioneventcode = 501
usercode = 88421
Argument Reference
conversioneventcode - (Required) Customer Signal or Custom Trigger identifier.usercode - (Required) Affino contact identifier.
Attribute Reference
usercode - Affino contact identifier.
Notes
Warning: the action only accepts events that exist, are live, are Custom Trigger type, and are valid for the profile zone or configured across all zones.
Warning: the zone also needs a Customer Lifecycle profile configured or the action cannot complete.
Caution: the profile only exposes signals that match the selected zone or are zone-agnostic. If a signal is missing in Zapier, check profile scope before you rebuild the Zap.
Caution: if the incoming action path fails while the outgoing trigger path works, check Zapier API Logs first and compare the payload against the validation rules before assuming the Customer Signal definition is wrong.
These method groups are important because they expose operational and commercial data, but they are not all equally mature as action surfaces. In current shipped scope, treat them primarily as outbound signal families.
Orders
Description
Orders are currently a trigger-led family. They are useful when Affino is the source of commercial truth and another system needs to react to purchases, fulfilment, payment state, or line-item detail.
Example Usage
Trigger: order updated in Affino
Downstream Zapier actions:
- send order summary to finance system
- push fulfilment request to operations tool
- update reporting sheet or warehouse
Argument Reference
Attribute Reference
order_no - Order number.order_type - Order type.order_sub_type - Order sub-type.order_status - Order status.payment_method - Payment method.payment_provider - Payment provider.payment_amount - Payment amount.payment_date - Payment date.payment_status - Payment status.line_items array - Catalogue ID, item name, price, tax, quantity, totals, and currency information.
Notes
Note: even without inbound actions, the order trigger payload is rich enough for reporting, fulfilment, notification, and finance workflows.
Warning: do not design around inbound order CRUD unless the relevant action has been explicitly shipped and confirmed.
Event Attendees
Description
Event Attendees are currently a trigger family rather than an inbound-action family. Use them when downstream systems need to react to attendee creation, updates, or booking-linked profile changes.
Example Usage
Trigger: attendee_created
Downstream Zapier actions:
- notify event operations
- send attendee to badge-printing workflow
- update hospitality or accessibility checklist
Argument Reference
Attribute Reference
usercode - Affino contact identifier where the attendee is linked to a user.custom1, custom2, custom3 - Custom attendee fields.
Notes
Caution: address data is pulled from the attendee's linked user record. If the attendee does not have a linked user account, those address fields will be blank.
Caution: attendee payload completeness can differ when the attendee is linked to an order versus when the attendee exists without an order. If your downstream workflow depends on address or order-linked fields, test both cases before go-live.
Awards
Description
Awards are also trigger-led in the current implementation. Use them when downstream systems need to react to award-entry creation, award-entry updates, judging workflow, or related order data.
Example Usage
Trigger: award_entry_created
Downstream Zapier actions:
- notify awards operations team
- create judging task in project tool
- push entry summary into reporting workflow
Argument Reference
Attribute Reference
entrantusercode and country ISO where present.referencenumber - Reference number.datesubmitted - Submission date.entrystage - Entry stage.judges array - Judge detail returned with the entry.
Notes
Note: live trigger naming was refined to award_entry_created and award_entry_updated.
Note: the judges array now includes both regular judges and lead judges, with judgetype distinguishing them.
Warning: as with Orders and Event Attendees, treat Awards as an outbound signal family unless and until inbound actions are explicitly confirmed.
The practical support story for Zapier in Affino lives in the log screens and service controls, not only in the trigger and action list. If Zapier says a step passed but the workflow still looks wrong, the Affino log is the source of truth.
Why the log matters
Zapier can tell you that a step completed. Affino can tell you what actually arrived, which profile handled it, which method ran, whether the request was accepted cleanly, and whether warnings were raised even though the top-line result looked successful. That is why experienced support work starts with the Affino log row, not with repeated blind retesting.
Row layout
A typical Zapier API Log row should be read like this:
| Profile | Method | Result | Warnings | Timestamp |
|---|---|---|---|---|
HubSpot Contact Sync - UK | create_contact | Success | none | 2026-04-19 09:14:22 |
Use the row to answer five immediate questions:
Warnings versus errors
A successful row with warnings is not the same thing as a clean row.
Typical warning-style situations in this integration include:
Drill into a row, end to end
When a row looks wrong, open the row detail and walk it in this order:
That sequence is how you catch problems such as wrong profile credentials, the wrong identifier field, unresolved taxonomy values, duplicate external IDs, or a missing zone-specific configuration.
Pagination
Pagination support was added to improve reliability for larger trigger sets. In practice, this matters when one polling cycle needs to work through more than one page of results while preserving a stable timestamp window.
That matters most for higher-volume families such as:
Note: pagination is a reliability feature. It does not turn the integration into real-time delivery. You still need to design Zapier workflows with normal polling expectations in mind.
Most Zapier issues in Affino come down to scope, identifiers, or expectations rather than dramatic system failure. Use this checklist before you rebuild a Zap from scratch.
What to avoid
If the expected trigger or action is missing in Zapier:
If an update lands on the wrong record:
usercodeaccountcodecontactlistcodemailinglistcodetaxonomycode is the topic-list identifier while taxonomycategorycode is the topic identifierarticlecode, externalarticleid, or screenname
If article workflows fail or behave inconsistently:
sectioncode is being supplied on createpresentationstyle is valid for the channel and is supplied on createexternalarticleid on create returns 409 Conflictintroduction and text1 to text5 preserve HTML as-is
If list workflows seem odd:
If taxonomy workflows misbehave:
topiccolor as a six-character hex value
If trigger timing feels slow:
If volume-related behaviour changes after go-live:
If you are using Customer Signals, Event Attendees, or other newer method groups:
Common questions
usercode, accountcode, contactlistcode, and similar identifiers is one of the biggest reliability improvements you can make.
Good Zapier support in Affino comes from clarity more than heroics: clear profile boundaries, clear identifiers, clear expectations about polling, and disciplined use of API Logs.
Meetings:
Google Meet and Zoom
Venue:
Soho House, Soho Works +
Registered Office:
55 Bathurst Mews
London, UK
W2 2SB
© Affino 2026