Meta tags:
description= Trigger email, push, in-app, SMS, webhooks, and more with Customer.io. Gain control over behaviorial data to personalize customer communication and drive engagement.;
Headings (most frequently used words):
how, in, python, it, and, data, if, events, messages, errors, for, source, can, we, make, better, works, getting, started, identify, track, page, group, alias, configuration, library, options, selecting, destinations, backfilling, historical, batching, logging, you, re, our, eu, center, enable, automatic, geolocation, support, development, settings, deduplicate, time, zones, what, happens, there, are, too, many, flush, on, demand, do, gzip, requests, detecting, latest, features, at, customer, io, structure, example, set, your, own, exit, conditions, campaigns, dark, mode, styles, app, design, studio, find, fix, with, the, new, review, panel,
Text of the page (most frequently used words):
the (169), you (160), and (129), your (101), messages (85), app (84), push (77), data (76), events (69), set (65), #customer (59), with (57), track (57), for (57), can (55), this (51), people (51), integrations (50), event (50), identify (46), started (45), send (44), time (42), that (42), use (41), notifications (38), email (37), page (37), object (36), analytics (35), how (30), our (29), from (29), get (29), are (28), metrics (28), default (27), when (27), timestamp (27), troubleshooting (27), api (25), enabled (25), person (25), message (24), datetime (24), tracking (24), false (24), anonymous (24), library (23), account (22), requests (21), string (21), objects (21), all (21), campaigns (21), properties (21), create (20), links (20), python (19), group (19), calls (19), what (18), getting (18), true (18), capture (18), multiple (17), any (17), mobile (17), changelog (17), want (16), empty (16), server (16), additional (16), integration (16), start (16), traits (16), import (15), options (14), google (14), name (14), disabled (14), activity (14), support (13), need (13), client (13), call (13), information (13), date (13), new (13), userid (13), manage (13), users (13), listeners (13), deep (13), test (13), campaign (13), about (12), journeys (12), destinations (12), alias (12), like (12), user (12), add (12), custom (12), quick (12), guide (12), inbox (12), not (11), flush (11), configuration (11), works (11), queue (11), lifecycle (11), update (11), authentication (11), subscription (11), make (10), logging (10), on_error (10), using (10), zone (10), field (10), type (10), useful (10), reverse (10), inline (10), android (10), channels (10), screen (10), segments (10), privacy (9), backfilling (9), settings (9), method (9), but (9), contains (9), aware (9), naive (9), find (9), iso (9), they (9), leave (9), out (9), backfill (9), sending (9), required (9), anonymousid (9), actions (9), past (9), content (9), edit (9), handling (9), providers (9), migrate (9), advanced (9), editor (9), transactional (9), errors (8), enable (8), source (8), 2016 (8), have (8), code (8), might (8), value (8), associate (8), 8601 (8), current (8), list (8), behavior (8), url (8), javascript (8), location (8), addresses (8), version (8), notification (8), webhooks (8), design (8), studio (8), liquid (8), emails (8), conditions (8), gzip (7), geolocation (7), center (7), more (7), example (7), tzinfo (7), dateutil (7), identified (7), their (7), don (7), based (7), originally (7), took (7), place (7), mostly (7), boolean (7), booleans (7), indicating (7), returning (7), groups (7), other (7), message_id (7), workspace (7), security (7), flutter (7), packages (7), introduction (7), forms (7), components (7), service (6), company (6), documentation (6), features (6), overview (6), help (6), deduplicate (6), customerio (6), error (6), them (6), request (6), should (6), one (6), 939388 (6), parser (6), pass (6), cdp (6), mixpanel (6), each (6), user_id (6), own (6), non (6), https (6), website (6), json (6), workflows (6), billing (6), updates (6), segment (6), sms (6), ios (6), react (6), native (6), amazon (6), inbound (6), pipelines (5), address (5), there (5), debug (5), logs (5), before (5), performance (5), web (5), know (5), also (5), tzutc (5), only (5), filters (5), number (5), sources (5), some (5), online (5), domain (5), relationships (5), category (5), single (5), audience (5), activities (5), attributes (5), servers (5), analysis (5), reference (5), best (5), practices (5), whatsapp (5), earlier (5), rules (5), frequently (5), asked (5), questions (5), legacy (5), hubspot (5), syntax (5), link (5), styles (5), welcome (5), css (5), triggered (5), broadcasts (5), policy (4), program (4), platform (4), part (4), copy (4), zones (4), standard (4), module (4), items (4), your_write_key (4), setting (4), per (4), batch (4), seconds (4), every (4), does (4), libraries (4), pytz (4), isoformat (4), now (4), parse (4), 2015 (4), two (4), types (4), include (4), filter (4), case (4), bool (4), int (4), won (4), side (4), another (4), trigger (4), structure (4), take (4), respond (4), common (4), assign (4), personalize (4), host (4), write_key (4), 2026 (4), docs (4), builder (4), understand (4), conversion (4), workspaces (4), rich (4), messaging (4), apis (4), conversions (4), snowflake (4), reporting (4), storage (4), bigquery (4), redshift (4), mode (4), webhook (4), understanding (4), tests (4), recipes (4), statuses (4), preferences (4), global (4), component (4), faq (4), opt (4), layouts (4), delete (4), exit (4), branches (4), style (4), review (4), team (3), will (3), feedback (3), helpful (3), demand (3), happens (3), historical (3), automatic (3), level (3), different (3), print (3), argument (3), thread (3), avoid (3), sure (3), just (3), than (3), means (3), max_queue_size (3), maximum (3), control (3), upload_interval (3), upload_size (3), which (3), cases (3), 06t01 (3), format (3), created (3), class (3), amplitude (3), destination (3), adding (3), recommend (3), changes (3), tab (3), aren (3), proxies (3), timeout (3), size (3), sent (3), background (3), change (3), separate (3), already (3), 1234 (3), plan (3), sign (3), profiles (3), identities (3), where (3), entity (3), course (3), store (3), same (3), shoes (3), f4ca124298 (3), receive (3), these (3), shape (3), complete (3), fields (3), below (3), video (3), criteria (3), see (3), log (3), setup (3), directory (3), cloud (3), connections (3), mcp (3), agent (3), beta (3), roles (3), audit (3), upgrade (3), expo (3), implementation (3), certificates (3), visual (3), twilio (3), slack (3), salesforce (3), facebook (3), ads (3), cohorts (3), triggers (3), map (3), etl (3), live (3), deliverability (3), broadcast (3), goals (3), multi (3), attribute (3), templates (3), feature (3), surveys (3), phone (3), validate (3), integrate (3), preview (3), drag (3), drop (3), smtp (3), workflow (3), why (3), dark (3), export (3), via (3), csv (3), software (2), status (2), contact (2), release (2), notes (2), resources (2), pricing (2), parcel (2), optional (2), close (2), detecting (2), too (2), many (2), batching (2), selecting (2), development (2), uses (2), verbose (2), warning (2), def (2), failed (2), compress (2), blocks (2), until (2), cleanup (2), faster (2), receiving (2), simply (2), has (2), last (2), 100 (2), flushes (2), then (2), operation (2), batches (2), usage (2), handle (2), 05t21 (2), 499635 (2), localize (2), timezone (2), 25200 (2), none (2), tzoffset (2), 2012 (2), 05t00 (2), previous (2), supports (2), without (2), things (2), accept (2), timestamped (2), tools (2), writing (2), schema (2), disables (2), supported (2), lets (2), turn (2), times (2), blocking (2), handler (2), called (2), whenever (2), someone (2), merge (2), into (2), profile (2), action (2), 92734232 (2), 2342423423 (2), 973945 (2), switch (2), may (2), automatically (2), unique (2), groupid (2), between (2), associates (2), project (2), title (2), stuff (2), routes (2), flattened (2), com (2), products (2), visited (2), qty (2), revenue (2), product (2), added_to_cart (2), within (2), hours (2), generally (2), generate (2), both (2), perform (2), meet (2), tells (2), values (2), convert (2), listed (2), system (2), cool (2), who (2), etc (2), available (2), key (2), target (2), prevent (2), trouble (2), configure (2), logger (2), debugging (2), troubleshoot (2), problems (2), context (2), helps (2), schedule (2), right (2), parameter (2), ready (2), individual (2), making (2), install (2), index (2), survey (2), suggestions (2), accounts (2), cli (2), browser (2), issues (2), cookies (2), expiration (2), search (2), members (2), tasks (2), verification (2), provisional (2), sound (2), sdks (2), html (2), comparing (2), pixel (2), sendgrid (2), rudderstack (2), azure (2), blob (2), audiences (2), braze (2), classic (2), deleting (2), services (2), postgresql (2), mysql (2), microsoft (2), sql (2), incoming (2), csp (2), proxying (2), disconnect (2), backend (2), form (2), lead (2), semantic (2), compliance (2), results (2), dashboard (2), personalization (2), files (2), brand (2), parameters (2), localization (2), line (2), adoption (2), upcoming (2), promotions (2), nps (2), display (2), flow (2), build (2), sender (2), senders (2), text (2), headers (2), adapting (2), template (2), relay (2), reusable (2), fix (2), concepts (2), newsletters (2), reminders (2), trial (2), book (2), customers (2), frequencies (2), collaborate (2), automation (2), connected (2), accessibility (2), shortcuts (2), devices (2), work (2), segmentation (2), collections (2), academy (2), structured (2), learning (2), panel (2), releases (2), demo (2), 2024, peaberry, inc, terms, 9450, gemini, suite, 43920, beaverton, oregon, 97008, 7105, win, startup, partners, careers, guides, competitors, community, blog, soon, possible, appreciate, bot, please, provide, valid, improve, yes, better, download, copied, clipboard, setlevel, getlogger, log_level, failure, listen, attempts, batched, constructing, calling, scripts, end, nothing, left, stop, accepting, never, crash, because, backed, 10000, 32kb, 500kb, passed, since, invoke, result, http, instead, memory, allows, efficient, built, high, environments, safe, serves, hundreds, second, edge, pacific, yourself, 911000, 17t18, 911z, constructor, omitted, would, info, section, newly, correctly, happen, real, started_class, 019mr8mf4r, 2538, most, notable, doesn, switched, easier, involving, developers, flags, top, sensitive, membership, upgraded, specifies, vero, except, ones, explicitly, specify, certain, off, passing, dict, retry, fail, due, defaults, max_retries, upload, frequency, sends, float, elements, allowed, hitting, max, identifying, let, synchronously, otherwise, queued, sync_mode, occur, function, description, 500, 100000, remember, runs, clients, keep, haven, canonical, previousid, free, signs, aliased, under, here, provides, anonymous_user, previous_id, used, once, general, try, identification, gracefully, combines, previously, unassociated, reconcile, identifiers, whether, trait, expects, kinds, represented, incrementing, integer, beginning, assume, objecttypeid, accounting, initech, group_id, details, including, spec, payload, maintain, larger, organizations, relationship, organization, collective, noun, come, concept, showes, retail, disable, combination, captures, records, views, along, extra, message_id_here, itself, backdate, first, instance, given, ignore, operations, hash, uuid, ulid, ensure, inadvertently, next, require, describing, did, series, providing, beyond, provided, writable, associated, indicators, performs, videos, enjoy, item, purchased, viewed, automated, site, represents, strings, fit, appropriate, createdat, reserved, last_name, first_name, identifies, sets, assigns, creates, again, shown, typical, visitor, pair, were, during, testing, save, cleaning, bogus, later, basicconfig, order, occurred, response, directly, while, integrating, able, infer, look, everyone, after, collection, geolocate, gather, relevant, communities, note, regional, endpoints, locations, initialize, initialization, production, responsible, block, execution, pip, dependencies, pin, breaking, give, click, friendly, recognize, pick, internal, fast, asynchronously, record, route, representing, saves, updated, june, llms, txt, cursor, ides, claude, chatgpt, command, routines, skills, ask, har, file, login, qualifications, respecting, gdpr, allowlist, session, sensitivity, experimental, regions, sso, factor, credentials, customize, canceling, payment, reducing, overages, credits, bill, sdk, channel, swift, zendesk, yandex, wisepops, optimizer, vwo, twitter, engage, tiktok, talon, sprig, marketing, saleswings, ripe, qualtrics, playerzero, pipedrive, pinterest, moengage, metronome, meta, logrocket, livelike, launchdarkly, koala, intercom, heap, tag, manager, gtm, sheets, gtag, gainsight, fullstory, friendbuy, criteo, cordial, commandbar, clevertap, bing, attio, algolia, insights, adobe, actable, predictive, resend, filtering, mapping, database, warehouse, zoho, zapier, mparticle, platforms, node, calculator, scheduled, syncs, invalid, transform, utility, methods, identity, management, managing, frameworks, wordpress, wpforms, webflow, unbounce, typeform, squarespace, jotform, formstack, playback, chat, ecommerce, specs, attempted, conclusive, reports, home, composer, reusing, snippets, deliveries, drafts, image, requirements, assets, outside, language, preference, faqs, pages, unsubscribes, universal, checking, translations, translate, languages, milestones, achievements, promote, offers, step, compose, hipaa, regulations, kind, registration, compliant, register, numbers, keyword, smart, character, encoding, keywords, shortening, mms, payloads, registering, device, tokens, provider, trustpilot, reviews, gmail, fake, bcc, option, preheader, avatar, logo, mailchimp, column, foundation, basic, view, amp, pre, processing, archive, customizing, basics, choose, editors, oracle, dyn, sparkpost, postmark, mandrill, mailjet, mailgun, verify, deliverable, kickbox, anonymized, authenticating, apple, private, unsubscribe, rfc, 8058, postmaster, suppression, lists, suppressions, spamhaus, blocklist, listings, shared, dedicated, warming, attachments, creating, transitioning, limits, formats, recommended, draft, direct, mail, lob, randomized, delay, wait, window, delays, random, split, reformat, inconsistent, names, journey, holdout, llm, decisions, examples, inactive, trips, rss, feed, cohort, optimize, words, onboarding, double, cart, abandonment, birthday, anniversary, recipe, grace, periods, tickets, syncing, sync, stripe, follow, responses, entering, state, tags, history, submit, teammates, stylesheet, loop, through, conditionals, directives, modifiable, placeholder, scratch, publish, connect, quality, mso, emmet, fixes, variables, formatting, inlining, mjml, framework, transformers, responsive, keyboard, specific, purposes, match, days, building, manual, driven, activate, waitlist, awareness, announce, drive, upsell, monetize, power, tutorials, external, merging, storing, suppress, ids, resolve, duplicate, could, images, score, against, color, fills, borders, early, longer, depend, latest,
Text of the page (random words):
l when you backfill data past events if you re not backfilling data you can leave this field empty and we ll use the current time or server time deduplicate events generally we ll generate a message_id for each event you send to customer io but you can set your own message_id which might be helpful if you need to deduplicate events we ll accept the first instance of any operation with a given message_id and ignore any operations with the same message_id for the next 12 hours the message_id is can be any string value but we recommend a hash of the event data or a uuid ulid to ensure that you don t inadvertently deduplicate events if you backdate events you ll need to deduplicate them before you send them to customer io we deduplicate the message_id within 12 hours from when we receive the event not the timestamp on the event itself analytics track user_id f4ca124298 event added_to_cart properties product shoes revenue 39 95 qty 1 size 9 message_id message_id_here page the page method records page views on your website along with optional extra information about the page a person visited if you re using customer io s client side javascript library in combination with our python library then the client side javascript library already captures page calls for you by default but if you have a single page app or you don t use our javascript client library on your website you ll need to send your own page calls structure structure analytics page user_id category name properties any options integrations enable disable integrations by default all destinations are enabled example example analytics page user_id retail page shoes url https example com products showes integrations object contains a list of booleans indicating the integrations that are enabled true or disabled false by default all integrations are enabled returning an empty object set all false to reverse this behavior enabled disabled integrations boolean name string required the name of the page properties object additional properties for your event category string the category of the page this might be useful if you have a single page routes or have a flattened url structure page properties any type additional properties that you want to send with the page event by default we capture url title and stuff timestamp string date time the iso 8601 timestamp when the event originally took place this is mostly useful when you backfill data past events if you re not backfilling data you can leave this field empty and we ll use the current time or server time integrations object contains a list of booleans indicating the integrations that are enabled true or disabled false by default all integrations are enabled returning an empty object set all false to reverse this behavior enabled disabled integrations boolean name string required the name of the page properties object additional properties for your event category string the category of the page this might be useful if you have a single page routes or have a flattened url structure page properties any type additional properties that you want to send with the page event by default we capture url title and stuff timestamp string date time the iso 8601 timestamp when the event originally took place this is mostly useful when you backfill data past events if you re not backfilling data you can leave this field empty and we ll use the current time or server time group the group method associates an identified person with a group like a company organization project online class or any other collective noun you come up with for the same concept in customer io journeys we call groups objects an object is a non person entity that you can associate with one or more people like a company account or online course group calls are useful for integrations where you maintain relationships between people and larger organizations like in customer io in customer io journeys you can store groups as objects an object is a non person entity that you can associate with one or more people like a company account or online course and trigger campaigns based on a person s relationship to an object like an account online class and so on find more details about group including the group payload in our api spec analytics group user_id group_id name initech domain accounting software include objecttypeid when you send data to customer io customer io supports different kinds of groups called objects an object is a non person entity that you can associate with one or more people like a company account or online course where each object has an object type represented by an incrementing integer beginning at 1 if you send group calls to customer io you should include the object type id or we ll assume that the object type is 1 groupid string required id of the group integrations object contains a list of booleans indicating the integrations that are enabled true or disabled false by default all integrations are enabled returning an empty object set all false to reverse this behavior enabled disabled integrations boolean timestamp string date time the iso 8601 timestamp when the event originally took place this is mostly useful when you backfill data past events if you re not backfilling data you can leave this field empty and we ll use the current time or server time traits object additional information about the group group traits any type additional traits you want to associate with this group groupid string required id of the group integrations object contains a list of booleans indicating the integrations that are enabled true or disabled false by default all integrations are enabled returning an empty object set all false to reverse this behavior enabled disabled integrations boolean timestamp string date time the iso 8601 timestamp when the event originally took place this is mostly useful when you backfill data past events if you re not backfilling data you can leave this field empty and we ll use the current time or server time traits object additional information about the group group traits any type additional traits you want to associate with this group alias the alias method combines two previously unassociated user identities some integrations automatically reconcile profiles with different identifiers based on whether you send anonymousid userid or another trait that the integration expects to be unique but for integrations that don t you may need to send alias requests to do this in general you won t need to use the alias call we try to handle user identification gracefully so you don t need to merge profiles but you may need to send alias calls to manage user identities in some data out integrations for example in mixpanel it s used to associate an anonymous user with an identified user once they sign up analytics alias previous_id user_id here s how you might use the alias call in this case we start with an anonymous_user and switch to an email address when a person provides their userid the anonymous user does actions under an anonymous id analytics track 92734232 2342423423 973945 anonymous event the anonymous user signs up and is aliased to their new user id analytics alias 92734232 2342423423 973945 1234 the user is identified analytics identify 1234 plan free the identified user does actions analytics track 1234 identified action previousid string required the anonymousid or userid value that you want to merge into the canonical profile userid string required the userid that you want to keep this is required if you haven t already identified someone with one of our web or server side libraries configuration and library options if you want to change the library s default settings want to send data to multiple sources you can create your own client s remember that each client runs a separate background thread so you won t want to create new clients on every request from customerio analytics import client client your_write_key debug true on_error on_error send true max_queue_size 100000 upload_interval 5 upload_size 500 gzip true field description debug bool set true to enable verbose logging false by default send bool set false to avoid sending data to customer io true by default on_error function set an error handler to be called whenever errors occur sync_mode bool set true to send requests synchronously blocking otherwise requests are queued and sent in the background false by default max_queue_size int the maximum number of elements allowed in the queue hitting the max queue size means you re identifying tracking faster than you can flush if this happens let us know upload_interval float the frequency in seconds of sends to customer io default value is 0 5 upload_size int the number of items per batch upload default value is 100 timeout int request timeout in seconds default value is 15 seconds max_retries int maximum number of times to retry requests that fail due to e g timeout defaults to 10 proxies dict proxies to use for requests in the requests module format for proxies gzip bool set true to compress data with gzip before sending false by default selecting destinations you can pass an integrations object to alias group identify page and track calls that lets you turn certain destinations on or off by default all destinations are enabled passing false for an integration disables the call to that destination you might want to do this for things like alias calls which aren t supported by all destinations in this case customer io specifies the track to only go to vero all false disables all destinations except the ones you explicitly specify analytics track user_id membership upgraded integrations all false mixpanel true google analytics false destination flags are case sensitive you ll find each integration s name at the top of each integration s page in our documentation you can filter track calls on the source s schema tab we recommend that you filter events in our ui if you can it s easier than writing code and you can update your source or make changes to your filters without involving developers backfilling historical data you can backfill data by adding a timestamp to your calls this can be helpful if you ve just switched to customer io you can only do this for destinations that accept timestamped data most analytics tools like mixpanel and amplitude do the notable destination that doesn t support timestamped data is google analytics import datetime from dateutil tz import tzutc timestamp datetime datetime 2538 10 17 0 0 0 0 tzinfo tzutc analytics track 019mr8mf4r started_class class how to use cdp timestamp timestamp leave out the timestamp if you re tracking real time events if you re only tracking things as they happen you can leave the timestamp out of your calls and we ll timestamp requests for you time zones in python python s datetime module supports two types of date and time objects naive objects without time zone information and aware objects that include time zones by default newly created datetime objects are naive make sure that you use time zone aware objects when you import data so that you send time zone information correctly we created an aware datetime object in the previous section using the tzinfo argument to the datetime constructor if you omitted this argument we would not pass time zone info naive datetime datetime 2015 1 5 0 0 0 0 aware datetime datetime 2015 1 5 0 0 0 0 tzinfo tzutc naive isoformat 2015 01 05t00 00 00 aware isoformat 2015 01 05t00 00 00 00 00 if you have an iso format timestamp string that contains time zone information dateutil parser can create aware datetime objects import dateutil parser dateutil parser parse 2012 10 17t18 58 57 911z datetime datetime 2012 10 17 18 58 57 911000 tzinfo tzutc dateutil parser parse 2016 06 06t01 46 33 939388 00 00 datetime datetime 2016 6 6 1 46 33 939388 tzinfo tzutc dateutil parser parse 2016 06 06t01 46 33 939388 07 00 datetime datetime 2016 6 6 1 46 33 939388 tzinfo tzoffset none 25200 dateutil parser parse 2016 06 06t01 46 33 939388 07 00 datetime datetime 2016 6 6 1 46 33 939388 tzinfo tzoffset none 25200 if you find yourself with a naive object and know what time zone it should be in you can also use pytz to create an aware datetime object from the naive one import datetime import pytz naive datetime datetime now aware pytz timezone us pacific localize naive naive isoformat 2016 06 05t21 52 14 499635 aware isoformat 2016 06 05t21 52 14 499635 07 00 the pytz documentation contains additional information on time zone usage and can help you handle edge cases batching our libraries are built to support high performance environments it s safe to use this library on a web server that serves hundreds of requests per second but every method you invoke does not result in an http request instead we queue requests in memory and then flush them in batches which allows for more efficient operation by default our python source library flushes every 100 messages control with upload_size if 0 5 seconds has passed since the last flush control with upload_interval there is a maximum of 500kb per batch request and 32kb per call what happens if there are too many messages if our python module can t flush calls faster than it s receiving them it ll simply stop accepting requests this means your program will never crash because of a backed up analytics queue the default max_queue_size is 10000 flush events on demand you can flush your queue on demand for example at the end of your program you ll want to flush to make sure there s nothing left in the queue just call the flush method analytics flush this method blocks the calling thread until there the message queue is empty you ll want to use it as part of your cleanup scripts and avoid using it as part of the request lifecycle how do i gzip requests you can compress batched requests before you send them to customer io by setting the gzip argument when constructing your client from customerio analytics import client client your_write_key gzip true detecting errors you can listen to events on failed flush attempts def on_error error items print failure error analytics on_error on_error logging our library uses the standard python logging module by default logging is enabled and set at the warning level if you want more verbose logs you can set a different log_level import logging logging getlogger customerio setlevel debug copied to clipboard how it works getting started if you re in our eu data center enable automatic geolocation support development settings identify track deduplicate events page group alias configuration and library options selecting destinations backfilling historical data time zones in python batching what happens if there are too many messages flush events on demand how do i gzip requests detecting errors logging copy page copy page download md is this page helpful how can we make it better close do you need help from customer io support no yes what part of customer io do you need hel...
|