Skip to content

Integrations

What Refik connects to today.

Shopify here is the product itself. Every other connection is listed in the state it is actually in, and where one leg is still open, that leg is named at the same size as the rest.

Working shipping in the app today

Partly built one leg is missing, and it is named

Decided, not built a record exists, the blocker is named

Working today

Four connection points a store owner can use today. Refik is the only install, and every switch lives in Shopify’s own theme editor.

Platform

Shopify

Working

Refik is a Shopify app and a theme app extension. Setup and the console are screens in your Shopify admin; the storefront surfaces are theme blocks you switch on in Shopify’s own theme editor. Shopper requests reach Refik through Shopify’s app proxy, and each one is signature-checked before Refik answers it.

What Refik reads, and the two things it writes, are listed step by step on the setup page.

The edges this install is held inside

Catalogue changes

Product updates

Working

When you edit, unpublish or delete a product, Shopify tells Refik and the knowledge it answers from follows your catalogue instead of a nightly copy. Deletions are subscribed separately, because an update webhook fires only for a product that still exists.

Uninstalling the app, and Shopify’s mandatory data-request and deletion notices, arrive as webhooks too — each on its own route.

Your edit, and the minutes after it

Product data

Complementary products

Working

The routine suggestion block on a product page is built from Shopify’s own complementary-products data. The model is out of this loop entirely: the block reads the metafield and renders in Liquid, and it checks stock once more before it shows a product.

Where that data is empty for a product the block stays closed, so every pairing a shopper sees is one you set in Shopify.

Your pairings, with nothing clever in between

Back-in-stock

Klaviyo

Working

When a shopper asks about something that is out of stock, Refik can take their email and write it to Klaviyo twice: a sign-up at the moment they ask, and a second event when that exact variant is back. It waits for the exact variant, so the note goes out for the colour they asked about.

Back in Stock is the event your flow listens for, and Back in Stock Request is the sign-up. Your public site ID is the whole configuration; saving it records that ID, and the email itself goes out when a live flow in your own Klaviyo account is triggered by the event. An empty field leaves sign-ups off.

Two events, and who sends the email

Partly built

Built, wired and usable, with one leg still open. That leg is written out below, at the same size as the rest of the row.

Partly built Handoff

A ticket in your helpdesk

When Refik hands a conversation to your team, it can also open a ticket in your helpdesk with the shopper’s contact details and the conversation itself. It looks for new handoffs about once an hour, sends each one with its own reference so a handoff opens exactly one ticket, keeps your key encrypted, and sends the shopper’s side of the conversation. The window is the last seven days, so connecting it today leaves older handoffs where they already are.

Where the ticket fails to open, the handoff stays in the Refik inbox exactly as it would have anyway, and the inbox names the step that failed. The ticket is the second copy; the inbox is the first.

The leg that is still open

  • One helpdesk vendor is supported, and it is named inside the app on the screen where you connect it. A second vendor is on the plan and still to be written.
  • Refik connects with your own API key. Whether that is accepted for an app distributed to many stores is an open question with that vendor, and it is open on our side too — which is why the row sits under Partly built until the answer arrives.

Decided, not built

Both of these were decided and written down, and both wait on something outside the code. That is why each row carries a state where a date would otherwise go.

Decided, not built Channels

Chat channels: the web only

Refik answers on your storefront. The web is the one channel wired today, so a question asked in WhatsApp, Instagram DM or Messenger waits for you to answer it.

The groundwork is already in: every conversation Refik stores carries the channel it arrived on, and the web is one adapter among however many come later — so adding a channel is wiring. What it waits on sits outside the code: business verification and app review on the platform’s side, and a number to send from.

Decided, not built Notifications

Email notifications

Today the console inbox is where a waiting handoff, a half-finished setup and a quota warning appear, and the console is where you read them.

The triggers are written and tested and the sending provider is chosen. Sending stays switched off until its domain is verified, and while it is off the queue stays empty — so switching it on sends the next event, and only that one.

Everything runs through Shopify, and one thing leaves

The boundary is worth as much as the list, so here is the other half: the four paths in, and everything your storefront carries because of Refik.

It goes through Shopify

  • The storefront surfaces are theme app extension blocks, so your theme files stay as you wrote them
  • Setup and the console are Shopify admin screens, and Refik is the only install
  • Shopper requests are signed by Shopify and checked by Refik before an answer is written
  • Catalogue changes arrive as Shopify webhooks, and orders are read from Shopify’s own records

What your storefront carries

  • The blocks you switched on, each loading its own script from Refik and nothing else
  • A hidden cart attribute the chat writes, which Shopify carries onto the order — that is how a conversation is tied to a sale, read back on the server
  • One outbound write: the back-in-stock sign-up above, and only where you filled in your own site ID
  • Your catalogue, stock, orders, returns and policies, all read through Shopify’s own APIs
The boundary this section describes, drawn as a boundary: four paths in, all of them Shopify’s, and a single write that leaves. Each arrow is one of the four bullets to the left of it, and the outbound arrow is the one row on this page that reaches a provider.

Two things are worth saying plainly beyond that list: the only thing we read from a review, loyalty or subscription app is Shopify’s own product-rating metafield, whichever app writes it, and only once a product has at least five ratings — anything beyond that star figure has to come from the answers you write; and the conversation-to-order figure is a server-side read of Shopify’s own record, which is why it holds up when a browser blocks scripts. What leaves our own system to reach a provider is listed row by row on the security page.

Questions about this list

Why is the list this short?
Because it lists what is built. Refik is aimed at reading one store deeply, and a row appears here on the day it works; the two decided rows above sit in their own section for exactly that reason.
What decides the order they get built in?
For the rows above, the answer sits outside engineering. One waits on business verification and app review at another company; one waits on a verified sending domain; the helpdesk row waits on an answer about how a multi-store app is allowed to authenticate. All three belong to somebody else’s calendar, which is why each row carries a state.
If the helpdesk ticket fails, do I lose the conversation?
The handoff waits in the Refik inbox exactly as it does with the helpdesk switched off, and the inbox shows which step failed so you can tell a wrong key apart from an outage. The ticket is the second copy; the inbox is the first.
Does connecting anything change my theme?
Every storefront surface is a theme app extension block that you turn on in Shopify’s theme editor, and the switch stays yours. The blocks belong to the extension, so your theme files stay byte for byte as you wrote them, and they leave with the app.
Will this page tell me when something changes?
It is the page that gets edited when a state changes, and the three states are the only ones it uses. Refik reaches the Shopify App Store first; this list becomes switchable on the same day, and a changelog arrives with it.