[{"data":1,"prerenderedAt":329},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Fintegrations\u002Fattio":121,"\u002Fdocs\u002Fintegrations\u002Fattio-surround":324},[4,15,34,41,48,95,107,114],{"title":5,"path":6,"stem":7,"children":8},"Getting Started","\u002Fdocs\u002Fgetting-started","1.docs\u002F1.getting-started\u002F1.index",[9,11],{"title":10,"path":6,"stem":7},"Introduction",{"title":12,"path":13,"stem":14},"Quickstart","\u002Fdocs\u002Fgetting-started\u002Fquickstart","1.docs\u002F1.getting-started\u002F2.quickstart",{"title":16,"path":17,"stem":18,"children":19,"icon":33},"Forms & Fields","\u002Fdocs\u002Fforms","1.docs\u002F2.forms\u002F1.index",[20,21,25,29],{"title":16,"path":17,"stem":18},{"title":22,"path":23,"stem":24},"Form Settings","\u002Fdocs\u002Fforms\u002Fsettings","1.docs\u002F2.forms\u002F2.settings",{"title":26,"path":27,"stem":28},"Notifications & Auto-responses","\u002Fdocs\u002Fforms\u002Fnotifications","1.docs\u002F2.forms\u002F3.notifications",{"title":30,"path":31,"stem":32},"After Submission","\u002Fdocs\u002Fforms\u002Fafter-submission","1.docs\u002F2.forms\u002F4.after-submission","i-lucide-file-text",{"title":35,"path":36,"stem":37,"children":38,"icon":40},"Submissions","\u002Fdocs\u002Fsubmissions","1.docs\u002F3.submissions\u002F1.index",[39],{"title":35,"path":36,"stem":37},"i-lucide-inbox",{"title":42,"path":43,"stem":44,"children":45,"icon":47},"Spam Protection","\u002Fdocs\u002Fspam-protection","1.docs\u002F4.spam-protection\u002F1.index",[46],{"title":42,"path":43,"stem":44},"i-lucide-shield-check",{"title":49,"path":50,"stem":51,"children":52,"icon":94},"Integrations","\u002Fdocs\u002Fintegrations","1.docs\u002F5.integrations\u002F1.index",[53,54,58,62,66,70,74,78,82,86,90],{"title":49,"path":50,"stem":51},{"title":55,"path":56,"stem":57},"Pipedrive","\u002Fdocs\u002Fintegrations\u002Fpipedrive","1.docs\u002F5.integrations\u002F10.pipedrive",{"title":59,"path":60,"stem":61},"Attio","\u002Fdocs\u002Fintegrations\u002Fattio","1.docs\u002F5.integrations\u002F11.attio",{"title":63,"path":64,"stem":65},"Webhooks","\u002Fdocs\u002Fintegrations\u002Fwebhooks","1.docs\u002F5.integrations\u002F2.webhooks",{"title":67,"path":68,"stem":69},"Slack","\u002Fdocs\u002Fintegrations\u002Fslack","1.docs\u002F5.integrations\u002F3.slack",{"title":71,"path":72,"stem":73},"Zapier","\u002Fdocs\u002Fintegrations\u002Fzapier","1.docs\u002F5.integrations\u002F4.zapier",{"title":75,"path":76,"stem":77},"Microsoft Teams","\u002Fdocs\u002Fintegrations\u002Fteams","1.docs\u002F5.integrations\u002F5.teams",{"title":79,"path":80,"stem":81},"Discord","\u002Fdocs\u002Fintegrations\u002Fdiscord","1.docs\u002F5.integrations\u002F6.discord",{"title":83,"path":84,"stem":85},"Make","\u002Fdocs\u002Fintegrations\u002Fmake","1.docs\u002F5.integrations\u002F7.make",{"title":87,"path":88,"stem":89},"n8n","\u002Fdocs\u002Fintegrations\u002Fn8n","1.docs\u002F5.integrations\u002F8.n8n",{"title":91,"path":92,"stem":93},"Airtable","\u002Fdocs\u002Fintegrations\u002Fairtable","1.docs\u002F5.integrations\u002F9.airtable","i-lucide-webhook",{"title":96,"path":97,"stem":98,"children":99,"icon":106},"Domains","\u002Fdocs\u002Fdomains","1.docs\u002F6.domains\u002F1.index",[100,102],{"title":101,"path":97,"stem":98},"Custom Domains",{"title":103,"path":104,"stem":105},"Import forms from your website","\u002Fdocs\u002Fdomains\u002Fimport-forms","1.docs\u002F6.domains\u002F2.import-forms","i-lucide-globe",{"title":108,"path":109,"stem":110,"children":111,"icon":113},"Teams & Members","\u002Fdocs\u002Fteams","1.docs\u002F7.teams\u002F1.index",[112],{"title":108,"path":109,"stem":110},"i-lucide-users",{"title":115,"path":116,"stem":117,"children":118,"icon":120},"Billing & Plans","\u002Fdocs\u002Fbilling","1.docs\u002F8.billing\u002F1.index",[119],{"title":115,"path":116,"stem":117},"i-lucide-credit-card",{"id":122,"title":59,"body":123,"dateModified":316,"datePublished":316,"description":317,"extension":318,"meta":319,"navigation":320,"path":60,"seo":321,"sitemap":322,"stem":61,"__hash__":323},"docs\u002F1.docs\u002F5.integrations\u002F11.attio.md",{"type":124,"value":125,"toc":307},"minimark",[126,135,140,147,169,172,176,231,235,243,260,267,271,278,293,296,300],[127,128,129,130,134],"p",{},"The Attio integration writes one record per submission to an object you pick.\nUnlike most integrations it ",[131,132,133],"strong",{},"upserts",": if a record already matches on the\nattribute you nominate, that record is updated instead of a duplicate being\ncreated.",[136,137,139],"h2",{"id":138},"connect-your-attio-workspace","Connect your Attio workspace",[127,141,142,143,146],{},"Connecting is a one-time step per team, and requires a ",[131,144,145],{},"team admin",":",[148,149,150,158],"ol",{},[151,152,153,154,157],"li",{},"In Attio, go to ",[131,155,156],{},"Workspace settings → Developers"," and create an API key\nwith read access to object configuration and write access to records.",[151,159,160,161,164,165,168],{},"In Formiary, go to ",[131,162,163],{},"Settings → Integrations",", click ",[131,166,167],{},"Connect Attio\naccount",", and paste the key.",[127,170,171],{},"Formiary verifies the key with Attio before saving it (stored encrypted; it's\nnever shown again). Pasting a new key for the same workspace later — for\nexample after rotating it — updates the existing connection.",[136,173,175],{"id":174},"add-the-integration-to-a-form","Add the integration to a form",[148,177,178,184,194,214,221,224],{},[151,179,180,181,183],{},"Open the form and go to its ",[131,182,49],{}," tab.",[151,185,186,187,190,191,193],{},"Click ",[131,188,189],{},"Add integration"," and choose ",[131,192,59],{},".",[151,195,196,197,200,201,204,205,209,210,213],{},"Pick the ",[131,198,199],{},"workspace"," (pre-selected if your team has exactly one), then the\n",[131,202,203],{},"object"," to write to — ",[206,207,208],"code",{},"Person",", ",[206,211,212],{},"Company",", or one of your custom objects.",[151,215,216,217,220],{},"Choose what to ",[131,218,219],{},"match records on",". Only Attio attributes marked unique can\nbe used, since that's what Attio deduplicates against.",[151,222,223],{},"Map your form's fields onto the object's attributes. The matching attribute\nmust be mapped — a record can't be matched on a value the submission never\nsupplies.",[151,225,226,227,230],{},"Use ",[131,228,229],{},"Send test event"," to write a sample record and confirm the setup.",[136,232,234],{"id":233},"how-matching-works","How matching works",[127,236,237,238,242],{},"Each submission is sent to Attio's ",[239,240,241],"em",{},"assert"," endpoint with your chosen matching\nattribute:",[244,245,246,253],"ul",{},[151,247,248,249,252],{},"If a record already has the same value for that attribute, it is ",[131,250,251],{},"updated","\nwith the mapped fields.",[151,254,255,256,259],{},"If nothing matches, a ",[131,257,258],{},"new record"," is created.",[127,261,262,263,266],{},"Matching on ",[206,264,265],{},"Email addresses"," for people is the usual choice: repeat\nsubmissions from the same address enrich one record instead of piling up\nduplicates.",[136,268,270],{"id":269},"how-fields-map","How fields map",[127,272,273,274,277],{},"The mapping is ",[131,275,276],{},"explicit",": you choose which form field fills each attribute.",[244,279,280,286],{},[151,281,282,283,193],{},"Form fields you don't map are ",[131,284,285],{},"not sent",[151,287,288,289,292],{},"A mapped field left blank on a submission is ",[131,290,291],{},"omitted",", so it won't\noverwrite a value already on the record.",[127,294,295],{},"Only attribute types Formiary knows how to format are offered — text, number,\ncheckbox, date, select, status, email, phone, domain, and name attributes.",[136,297,299],{"id":298},"what-happens-on-failure","What happens on failure",[127,301,302,303,306],{},"Deliveries that fail are retried with exponential backoff. A rejected key\n(401\u002F403), a missing object (404), or a request Attio will always refuse (400 —\nusually a mapped value that doesn't suit its attribute type) stops retrying\nimmediately and is marked ",[131,304,305],{},"dead-lettered"," in the delivery log.",{"title":308,"searchDepth":309,"depth":309,"links":310},"",2,[311,312,313,314,315],{"id":138,"depth":309,"text":139},{"id":174,"depth":309,"text":175},{"id":233,"depth":309,"text":234},{"id":269,"depth":309,"text":270},{"id":298,"depth":309,"text":299},"2026-07-26","Create or update an Attio record for each form submission.","md",{},true,{"title":59,"description":317},{"loc":60},"ltwQ8S8gjyfU74w1OQBHkHfg5Y1JTGbyqfrPKjOY2fI",[325,327],{"title":55,"path":56,"stem":57,"description":326,"children":-1},"Create a Pipedrive person for each form submission.",{"title":63,"path":64,"stem":65,"description":328,"children":-1},"Receive, verify, and respond to Formiary webhook deliveries.",1785813501896]