← All ivy-agents
IVYXSTUDIO · IVY AGENT
S

Social reply

ivy.agent.social-reply · v0.1.0

ivyx

Sends an approved reply to a conversation on its platform (an Instagram comment, a LinkedIn comment, an X post, a YouTube comment), the responder behind an if, and answers whether it went. Speaks for the brand: each responder is held for a person by this project's policy, after IVYX Social's own approval.

Steps

In the order the agent's file lists them, each with where its inputs come from and the values the file fixes. A branch or a loop is a step too.

  1. 01
    Which responder?
    ivy.node.reply-plan

    Reads an IVYX Social reply request (the conversation, its platform, the approved text, the connection) and says which responder runs.

    takes
    conversation_id from the agent's input
    platform from the agent's input
    post_key from the agent's input
    author from the agent's input
    connection from the agent's input
    text from the agent's input
    Ivy Node
  2. 02
    Instagram?

    Lets what follows run only when has_instagram of step 1 is true.

    Branch
  3. 03
    Reply on Instagram
    ivy.node.ig-reply

    Replies to a comment on an Instagram post as the account, through the Graph API with a Meta connection.

    Runs only on the then branch of step 2.

    takes
    connection from the agent's input
    comment_id from step 1
    text from step 1
    Ivy Node
  4. 04
    LinkedIn?

    Lets what follows run only when has_linkedin of step 1 is true.

    Branch
  5. 05
    Reply on LinkedIn
    ivy.node.li-reply

    Replies to a comment on a LinkedIn post as the company page through the Community Management API with a LinkedIn connection.

    Runs only on the then branch of step 4.

    takes
    connection from the agent's input
    post_key from the agent's input
    author from the agent's input
    comment_id from step 1
    text from step 1
    Ivy Node
  6. 06
    X?

    Lets what follows run only when has_x of step 1 is true.

    Branch
  7. 07
    Reply on X
    ivy.node.x-publish

    Posts as the X account through the X API v2 with an X connection: one post, a thread (each text replies to the one before), or a reply to a given post.

    Runs only on the then branch of step 6.

    takes
    connection from the agent's input
    reply_to from step 1
    text from step 1
    Ivy Node
  8. 08
    YouTube?

    Lets what follows run only when has_youtube of step 1 is true.

    Branch
  9. 09
    Reply on YouTube
    ivy.node.yt-reply

    Replies to a comment on one of the channel's videos as the channel, through the Data API with a Google connection.

    Runs only on the then branch of step 8.

    takes
    connection from the agent's input
    comment_id from step 1
    text from step 1
    Ivy Node
  10. 10
    The reply's record
    ivy.node.reply-pack

    Packs the responder's answer as one record of kind reply-result for an IVYX Social conversation: sent or not, and why.

    Runs only on the else branch of step 8.

    takes
    conversation_id from the agent's input
    reason from step 1
    reply_a from step 3
    reply_b from step 5
    reply_c from step 7
    reply_d from step 9
    returns
    kind, conversation_id, sent, id, reason
    Ivy Node

What it touches

Collected from what each of its nodes declares, plus the model call when a step is a model turn. A declaration is the author's statement, and it is what policy rules select on.

message-sendNetwork

Inputs

FieldTypeDescription
firmstringThe firm's slug in IVYX Social; the destination routes the delivery by it.
conversation_idrequiredstringThe conversation's id as the inbox sync named it.
platformrequiredstringNot declared
post_keystringFor LinkedIn: the post the comment is under.
authorstringFor LinkedIn: the page's URN.
connectionNot declaredThe platform's connection, as the stored secret connection.<id>.
textrequiredstringThe approved reply.

Outputs

FieldTypeDescription
kindrequiredstringreply-result
conversation_idstringNot declared
sentrequiredbooleanNot declared
idstringNot declared
reasonstringNot declared

Tests

2 of 2 test cases passed on Oct 25, 2026, in the publisher's own environment, before this version was published. The registry keeps that record; it does not run the cases again.

Requires: python:3.9, tools/connectors-standin.py on 127.0.0.1:18911, its connections stored as the secrets connection.standin-<platform>

  • instagram

    An approved reply to an Instagram comment is sent and carries the reply's id.

    given
    firm ivyx
    conversation_id ig:c1
    platform instagram
    connection {"$secret":"connection.standin-meta"}
    text Thanks, we wrote to you.
    expects
    kind equals reply-result
    sent equals true
    id equals c1-reply
  • no-connection

    A reply with no connection is not sent, and says which platform could not answer.

    given
    firm ivyx
    conversation_id yt:ct1
    platform youtube
    text Thanks.
    expects
    kind equals reply-result
    sent equals false
    reason equals No responder for youtube with what was given.